首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > Apache >

apache MINA 源码级分析-[0]

2012-11-09 
apache MINA 源码级分析-[零]最近,项目结束[项目主要是大量文件处理,所以自己用jdk5与spring做了很多线程

apache MINA 源码级分析-[零]

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

闲暇回顾哈NIO学习哈MINA;

?

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

?

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

?

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

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

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

?

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

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

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

?

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

?

apache MINA 源码级分析-[0]

?

从上图我们可以把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

?

?

?

?

热点排行