mina框架简介

       Mina是Apache开源的一个网络通信应用框架,事实上它和Netty是同一个开发者写的,主要是基于TCP/IP,UDP/IP协议栈,提供了事件驱动,异步操作的编程模型,其异步IO使用的是Java Nio作为底层支持。Mina主要有1.x以及2.x两种版本支持,1.x几乎已经无人再用,本文讲的都是针对2.x版本。

       谈到通信大家一定会想到微信,QQ这些通讯软件,Mina完全可应用于此类通讯软件的开发,事实上本人所在的公司就是做通讯软件的,而且也选用Mina来做中间网络层架构。Mina处于网络层,完全与应用层程序隔离开来,你只需要关心发送端,接收端,以及接收到的消息如何处理,也就是你的业务逻辑如何处理,非常简单好用。就好比A与B聊天,A发送信息到B,此时A为发送端B为接收端,B收到信息后要如何处理就是你的业务逻辑处理。

Mina的执行流程:                

1.IoService:这个接口程序的入口,它拥有自己的selector,用于监听连接的建立,其实就是发送端和接收端的抽象。

2.IoProcessor:这个接口其实是和IoService绑定的,因为主要是监听接收端、发送端间的通信通道上是否有数据到来,它也有自己的Selector,但是不同于java nio编码,它与IoService的Selector是不同的。另外,IoProcessor 负责调用注册在 IoService 上的过滤器,并在过滤器链之后调用 IoHandler。

3.IoFilter:看名字就知道是过滤器,企业开发项目中,数据的安全性是很重要的,而且数据在网络传输中很容易出现粘包,丢包或者包被拦截,因此需要过滤器进行解编码的设置。另外还可以做日志输出过滤,黑名单设置过滤等。

4.IoHandler:用于业务逻辑处理

5.IoSession:大家都知道Java是面向对象呢,现在接收端、发送端都有抽象接口,缺什么呢?显然,连接也需要抽象,IoSession就是服务器端维护连接用的接口,它就代表发,接收端之间的连接抽象。

整理一下,它的总体流程是这样的:当客户首次采用Mina编写的程序时,接收端负责接收来自客户的请求,当有客户请求连接时,创建一个Session。IoProcessor定时检查客户是否有数据到来,并对客户请求进行处理,依次调用IoService注册的各个IoFilter,最后调用IoHandler进行最终的逻辑处理,再将处理后的结果filter返回给客户端。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值