(一)Mina源码解析之整体架构

来源:互联网 发布:跟淘宝一样的购物平台 编辑:程序博客网 时间:2024/05/04 20:04

        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,进行业务逻辑处理



1 0
原创粉丝点击