Apche Mina 2.X 入门解析

Apache Mina 2.x 入门

前言

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

简介

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

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

  • 封装了底层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(选择器);

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

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

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

转载于:https://my.oschina.net/wyy007/blog/752763

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值