MINA是一套成熟的JAVA NIO 框架,在用到Socket通信的Java应用场景中经常会得到使用。其作者还有一套更加知名的框架Netty,其应用程度更加广泛。虽然不及Netty知名,Mina也是一套成熟的NIO框架,有一定的应用,比如Dubbo框架在底层通信上将Mina作为备选方案。引用MINA官网的表述。

Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.

可见,MINA有如下特征:

1. 高性能

2. 高可扩展性

3. 提供事件驱动的异步API

事实上,和Netty类似MINA是对JAVA NIO的封装,使得开发者能够从JAVA NIO通信机制的编写中解放出来(事实上,从MINA本身可以看出来要编写一套稳定并且高效的JAVA NIO通信机制是不容易的),专注于业务代码的编写。Mina本身对Spring有较好的支持,可以通过一定的配置实现客户端或者服务端程序。由于事实上利用MINA实现业务功能是,同时还是需要关注通信层的机制,涉及一些参数的设置,目前未见到Spring Boot下有比较优雅的MINA使用方式。

MINA的整体组成可以用下面这个图来表示,其中:

IO Service,主要实现实际的网络通信部分,可理解为对应 Java NIO的Socket连接管理部分。

IO Filter Chain, MINA利用责任链模式将消息发送前后一些通用的逻辑抽象成IO Filter,并且按照先后顺序进行排列构成Chain。典型的有Logging Filter, Executor Filter, Codec Filter等。

IO Session,即一个连接回话,可以类比成JAVA NIO 中的Channel

IO Handler,这里即是定义实际业务代码的地方,前面的其他组件MINA框架都已经实现或者有了非常友好的组件实现可以进行简单的集成。

最新文章

  1. 打造自定Select样式
  2. 使用WebRTC搭建前端视频聊天室——信令篇
  3. Easyui之datagrid实现点击单元格修改单元格背景颜色
  4. Shader实例:溶解效果(Dissolve)
  5. 数据库为什么要用B+树结构--MySQL索引结构的实现
  6. SQL复杂查询和视图
  7. python中的浅拷贝与赋值不同
  8. MFC 相关文件夹、文件操作
  9. sap快捷搜索菜单栏
  10. USB协议分析
  11. 下载个jquery-easyui-1.3.0使用,把他导入到myeclipse10里,jquery-1.7.2.min.js报错。 错误如下, Syntax error on token "Invalid Regular Expression Options", no accurate correc
  12. MySQL被Oracle并购后的409个日日夜夜
  13. 用vlc SDK创建一个播放视频文件和RTSP流视频的Demo
  14. shell 脚本FTP自动上传文件
  15. XP用户:消除误解,大胆拥抱Linux
  16. NEO从入门到开窗(1) - 一个智能合约的诞生
  17. 【Python3爬虫】用Python中的队列来写爬虫
  18. MangoDb的安装及使用
  19. [转]DB2中需要REORG操作的几种情况
  20. 初学者在Mysql8.0连接时的几个常见基本问题

热门文章

  1. vuejs源码摘抄(二)
  2. yeoman-bower-grunt之间的关系
  3. android Viewpager取消预加载及Fragment方法的学习
  4. 私网IP访问Internet
  5. c 结构体中的变长数组
  6. CentOS 7 使用 yum 安装 jdk 1.8
  7. Flask博客类登录注册验证模块代码(十四)
  8. 文件读取方法(FileHelpers) z
  9. python功能
  10. SQL server 2008 安装报错 reporting services catalog database file existence