码迷,mamicode.com
首页 > 其他好文 > 详细

MINA简单的介绍

时间:2016-02-16 11:25:37      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

本篇对MINA进行介绍:

技术分享

技术分享
上图说明的是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框架了。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MINA简单的介绍

标签:

原文地址:http://www.cnblogs.com/hpf311/p/5192007.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!