Apche Mina 2.X 入门解析

Apache Mina 2.x 入门

前言

这里输入引用文本本博文借鉴于梦筑小屋博文IBM文库html

简介

  • Apache Mina(Multipurpose Infrastructure Networked Applications)是一个网络应用框架,用以开发高可用、高扩展的典型C/S网络应用程序(网络套接字类库、事件驱动的异步API);

Apache MINA 提供的是事件驱动的 API。它把与网络相关的各类活动抽象成事件。网络应用只须要对其感兴趣的事件进行处理便可。事件驱动的 API 使得基于 Apache MINA 开发网络应用变得比较简单。应用不须要考虑与底层传输相关的具体细节,而只须要处理抽象的 I/O 事件。好比在实现一个服务端应用的时候,若是有新的链接进来,I/O 服务会产生 sessionOpened这样一个事件。若是该应用须要在有链接打开的时候,执行某些特定的操做,只须要在 I/O 处理器中此事件处理方法 sessionOpened中添加相应的代码便可。java

  • 封装了底层IO操做,并提供上层操做API的网络通信框架!

Apache MINA 的网络应用的架构

架构图

  • IoService(I/O服务):负责一个线程上套接字的创建,拥有本身的Selector(选择器),监听连接的创建。

Mina基于JAVA NIO,属于典型的Reactor架构模式,采用事件驱动编程;须要了解 NIO的机制!编程

  • IoFilter(I/O过滤器):定义一组过滤器(过滤器链),过滤器能够包括日志输出、黑名单过滤、数据的编码(write 方向)与解码(read 方向)等数据处理功能;其中数据的encode 与 decode是最为重要的、也是你在使用Mina 时最主要关注的地方。网络

  • IoProcessor(I/O处理器):负责在另外一个线程上检查信道上是否有数据读写,拥有本身的Selector(选择器);session

与JAVA NIO不通之处:JAVA NIO中使用一个Selector,不区分IoService与 IoProcessor 两个功能接口;IoProcessor 负责调用注册在IoService 上的过滤器,并在过滤器链以后调用IoHandler。架构

  • IoHandler:负责编写业务逻辑,也就是接收、发送数据的地方。

** 未完待续:源码DEMO地址后续会补上 **框架

相关文章
相关标签/搜索