apache MINA 源码级分析-[零]

本文通过将网络通信抽象为三个车间的方式,详细介绍了MINA框架的内部结构与工作原理。从IoService接受客户端请求到IoProcessor进行IO处理,再到IoHandler进行业务处理,层层深入剖析MINA的高效运作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近,项目结束[项目主要是大量文件处理,所以自己用jdk5与spring做了很多线程池异步协作处理],

闲暇回顾哈NIO学习哈MINA;

 

首先我们需要了解MINA是什么?

 

我们首先需要明确第一步;一个网络通信到底可以抽象为几步;

 

方式一:从请求道响应看成一个流水线[呵呵想想福特汽车的流水线]

方式二:服务器接收客户请求,剩下处理[两个车间了哦]

方式三:服务器接收请求,读取客户信息,处理业务[三个车间了]

 

传统的:tomcat等服务器怎么处理的,简单看做方式二,一般开多线程[线程池]作为第二个车间

         问题,线程多了上下文切换等问题,这个网络很多说这个问题的

现在的:grizzly,mina,netty等看做第三种,但是每个车间的写作才是关键,第二个车间 可以注册在第一个车间当来料处理第一个车间自动找到第二个,还有就是第二个车间可以通过回调函数

 

那看看MINA的结构[图片来源互联网]

 

 

从上图我们可以把MINA分作三个车间

1 车间 IoService----主要任务接受客户请求构造session[客户所有信息以及mina上下文信息],调用[异步]2车间处理

2 车间 IoProcessor[IoFilter包括在此车间]--主要任务IO处理意见filter执行然后 同步或者异步执行 3车间

3 车间 IoHandler--主要是我们的业务处理[mina使我们不关心网络,IO只关心这里]

但是实际情况望望比想象的复杂,如果MINA拿过来就用你很可能发现不是那样效率

特别是你的3车间 处理的连接数据库 或者链接其他网络信息,你的服务器编程blocking了

为什么?

请看下篇:

http://rrsy23.iteye.com/blog/422689

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值