mina简介及原理

一、简介

1.基本概念

       Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IPUDP/IP协议栈的通信框架(当然,也可以提供JAVA对象的序列化服务、虚拟机管道通信服务等),Mina可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina提供了事件驱动、异步(Mina的异步IO默认使用的是JAVA NIO作为底层支持)操作的编程模型。Mina主要有1.x2.x两个分支学习mina,需要已掌握JAVA IOJAVA NIOJAVASocketJAVA线程及并发库(java.util.concurrent.*)的知识。Mina同时提供了网络通信的Server端、Client端的封装MinaAPI 将真正的网络通信与我们的应用程序隔离开来,你只需要关心你要发送、接收的数据以及你的业务逻辑即可。

2.执行流程

无论是哪端,Mina的执行流程如下所示:

(1) IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector监听是否有连接被建立。

名词解释:选择器(Selector) 是SelectableChannle 对象的多路复用器,Selector可以同时监控多个 SelectableChannelIO状况,也就是说,利用 Selector可使一个单独的线程管理多个Channelselector是非阻塞 IO的核心。

(2) IoProcessor:这个接口在另一个线程上,负责检查是否有数据在通道上读写,也就是说它也拥有自己的Selector,这是与我们使用JAVA NIO 编码时的一个不同之处,通常在JAVA NIO编码中,我们都是使用一个Selector,也就是不区分IoServiceIoProcessor两个功能接口。另外,IoProcessor负责调用注册在IoService上的过滤器,并在过滤器链之后调用IoHandler

(3) IoFilter:这个接口定义一组拦截器,这些拦截器可以包括日志输出、黑名单过滤、数据的编码(write方向)与解码(read方向)等功能,其中数据的encodedecode是最为重要的、也是你在使用Mina时最主要关注的地方。

(4) IoHandler:这个接口负责编写业务逻辑,也就是接收、发送数据的地方。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值