(一)Mina源码解析之整体架构
2016-04-05 23:11
453 查看
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。
Mina 同时提供了网络通信的Server 端、Client 端的封装,无论是哪端,Mina 在整个网通通信结构中都处于如下的位置:
Mina的内部结构如下:
上图中,我们可以很明显的看出,基于mina的应用被分成3层
第一层I/O Service:处理真实的I/O
第二层I/O FilterChain:过滤盒传输字节流成指定的数据结构
第三层I/O Handler:处理真实的业务逻辑
server结构:
server在我们指定的端口监听请求,处理请求发送应答信息,当我们使用TCP和UDP传输协议时它还会为每个client创建和处理session
IoAcceptor监听是否有连接或数据包的到来,对于一个新的连接,一个新的session会被创建随后所有的从这个IP端口的请求会被在这个session中处理,从session中接收的所有数据包会横穿FilterChain ,Filter可以用来修改数据包的内容,例如将字节流转化成Object,我们还可以通过自定义的编解码器将字节流转化成我们指定的任何类型,最终数据包或Object会到达IoHandler,IoHandler用来处理我们的业务逻辑
Client结构
client需要连接server,发送消息处理应答
client第一次创建IoConnector,初始化和server的连接,一个session会被创建然后和这个连接绑定,client向这个session中写入数据,穿过过滤器链然后发送给server,所有从这个server接收的应答穿过过滤器链来到IoHandler,进行业务逻辑处理
Mina 同时提供了网络通信的Server 端、Client 端的封装,无论是哪端,Mina 在整个网通通信结构中都处于如下的位置:
Mina的内部结构如下:
上图中,我们可以很明显的看出,基于mina的应用被分成3层
第一层I/O Service:处理真实的I/O
第二层I/O FilterChain:过滤盒传输字节流成指定的数据结构
第三层I/O Handler:处理真实的业务逻辑
server结构:
server在我们指定的端口监听请求,处理请求发送应答信息,当我们使用TCP和UDP传输协议时它还会为每个client创建和处理session
IoAcceptor监听是否有连接或数据包的到来,对于一个新的连接,一个新的session会被创建随后所有的从这个IP端口的请求会被在这个session中处理,从session中接收的所有数据包会横穿FilterChain ,Filter可以用来修改数据包的内容,例如将字节流转化成Object,我们还可以通过自定义的编解码器将字节流转化成我们指定的任何类型,最终数据包或Object会到达IoHandler,IoHandler用来处理我们的业务逻辑
Client结构
client需要连接server,发送消息处理应答
client第一次创建IoConnector,初始化和server的连接,一个session会被创建然后和这个连接绑定,client向这个session中写入数据,穿过过滤器链然后发送给server,所有从这个server接收的应答穿过过滤器链来到IoHandler,进行业务逻辑处理
相关文章推荐
- 从源码安装Mysql/Percona 5.5
- DVI 视频接口图文解析
- IE6不能正常解析CSS文件问题的解决方法及原因分析
- C#自写的一个HTML解析类(类似XElement语法)
- ruby 过程对象 解析
- 浅析Ruby的源代码布局及其编程风格
- C#域名解析简单实现方法
- ruby 类常量 解析
- PHP抓取网页、解析HTML常用的方法总结
- asp.net 抓取网页源码三种实现方法
- 分享ajax的三种解析模式
- 一些javascript一些题目的解析
- JS小游戏之仙剑翻牌源码详解
- Javascript URI 解析介绍
- JS使用eval解析JSON的注意事项分析
- JS小游戏之宇宙战机源码详解
- jQuery解析json格式数据简单实例
- jQuery源码分析之jQuery中的循环技巧详解
- 本人自用的global.js库源码分享
- 解析映像劫持技术第1/3页