MINA简单的介绍

本篇对MINA进行介绍:java

上图说明的是MINA在咱们的项目中所处的层次。至关于对底层的通讯系统作了一个封装。因为MINA暴露给用户的接口足够友好,因此MINA使用起来至关方便!
 
MINA架构图:
 
一个框架最重要的应该是它的数据流动和线程结构,数据流动可以很好的帮助理解框架,线程结构是理解工做方式的必要前提!
 
1.   MINA数据流
在MINA链接程序中,每一个用户在链接的时候会创建一个TCP链接, 也就是创建了一条通讯管道,客户端(remote peer)在给服务器发送消息的时候所经历的流程如上所示:
在服务端会通过一个IoFilterChain, 也就是java中的责任链模式, 也就是数据包会通过链路上的每一个filter进行处理, 好比(编码,解码,打印数据包内容)。你能够自定义
各类须要的filter。
 
MINA暴露给用户的接口是IoHandler, 在IoHandler中MINA为咱们提供了几个经常使用的事件接口, 好比链接创建, 收到消息, 捕获到异常等等, 这些就是咱们能够插入代码
到MINA框架的地方, 数据包在MINA在框架中通过各类filter后到了咱们自定义的IoHandler中,控制权就转移到了咱们的手中!
 
通常MINA框架给咱们提供插入点就是在filter链上插入filter和在IoHandler实现各类事件接口。
 
2.   MINA线程结构
MINA采用的javaNIO程序, 做为一个服务器框架, 那么MINA必须有一个监听的线程,监听的线程负责响应客户端的各类链接事件。
在接收到各类链接事件后,MINA会分派一个processer线程来处理这个客户端链接上的各类读写事件,这里MINA会启动和CPU核数相关数量的线程,并且一个processer线程
会处理多个客户端链接读写事件。processer线程在处理读写事件的时候就是按照上面的数据流来进行处理的、因而整个结构就清晰了。
 
 
上面说明了Mina的使用方式,省去了JAVA NIO细节, 由于要使用的话基本就只须要作到这个地步就能够了。 如何感兴趣能够去阅读MINA的源码!
若是只须要使用MINA的话,那么上面的数据流细节和线程细节已经能很好的阐释MINA框架了。
相关文章
相关标签/搜索