最近在项目中使用了Apache Mina,看了网站的文档,对于使用来说是比较简单的。
由于之前对于NIO有所了解但是并不深刻,想借这个机会好好研究一下Mina的实现。Java NIO 使用了Reactor模式进行开发,所谓Reactor模式类似于Observer模式,都属于事件触发的。Java NIO的工作模型如下图所示:
<Refer [1]>
首先,需要创建一个Selector, 一般是通过Selector.open()来实现
然后,创建一个ServerSocketChannel,并绑定到本地端口
最后注册此channel到selector,并设置interest ops 为ACCEPT
等到客户端连接产生后,selector会得到相应 的SelectionKey,并根据event类型由相应的Handler处理
但是作为一个服务端程序,要考虑的因素有很多,这样简单的工作模型是远远不够的,常见的NIO 架构往往是这样的:
<Refer [1]>
最前端是一个Acceptor,专门处理客户端的新连接
被accept的socket channel,会注册到一个新的Selector,这个selector只对Read/Write的事件感兴趣,此时这些工作都在一个Dispatcher Pool中完成。 Pool中的Dispatcher则将事件处理Dispatch到Worker线程,由他们进行数据读写,最后调用应用相关的处理器响应请求。
在Mina中,相应的架构略有不同,它的Dispatcher跟Worker是1对1的关系,而且一个Dispatcher是处理多个Session的,同样它的Worker也是需要处理多个连接的。不知道这样会不会导致性能的下降?比如Worker顺序处理的多个任务中,第一个任务耗时比较长,那么后续的请求就会被阻塞。
Reference:
[1] http://today.java.net/pub/a/today/2007/02/13/architecture-of-highly-scalable-nio-server.html
- 大小: 24.7 KB
- 大小: 29.3 KB
- 大小: 19 KB
分享到:
相关推荐
Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)
深入理解Apache_Mina_(1)----_Mina的几个类 深入理解Apache_Mina_(2)----_与IoFilter相关的几个类 深入理解Apache_Mina_(3)----_与IoHandler相关的几个类 深入理解Apache_Mina_(4)----_IoFilter和IoHandler的区别和...
Apache MINA 线程模型配置 Mina配置
收集整理的Apache Mina chm pdf教程和帮助文档
这个是我学的apache mina2.0学习笔记的实例
Apache MINA是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可靠性的网络应用程序。 apache-mina-2.0.7-bin.zip,apache-mina-2.0.7-src.zip,log4j-1.2.17.zip,slf4j-api-1.6.6.jar,slf4j-api-1.6.6-...
Apache MINA是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。 当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版...
apache mina的入门完整学习资料,附加中文参考手册。
apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例
Apache MINA2实用手册 Apache MINA2实用手册
apache mina实例免费下载,有很多实例代码简单易懂欢迎大家下载!
apache mina chm 格式的api帮助文档。
一个Apache MINA使用案例源代码ApacheMina
Apache MINA 2.0 用户指南
最新的Apache Mina v2.0.8 API手册,chm格式,2014年9月下旬制作。
最近做rfid读写,C#和java都用udp不用厂家的动态库,udp自己写也简单,但是试了一下Apache mina ,接收的不是string,二十byte[] 数组,简单实现了UDP,网上也有例子,但是不是我要的。可用。
最近一直在看 Mina 的源码,用了 Mina 这么长时间,说实话,现在才开始对 Mina 有了一 些 深刻的理解,关于 Mina 的基本知识的介绍,这里就不多说了,网上已经有很多不错的文 章 都对 Mina 做了较深刻的剖析,现在...
很详细的描述了apache mina 框架,对于那些对于英文不是很懂得人,这简直就是福音啊,哈哈
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架
本资源包含两个 pdf 文档,一本根据官方最新文档 (http://mina.apache.org/mina-project/userguide/user-guide-toc.html) 整理的 mina_2.0_user_guide_en.pdf,一个中文翻译的 mina_2.0_user_guide_cn.pdf。...