`
rrsy23
  • 浏览: 186270 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

apache MINA 源码级分析-[零]

阅读更多

最近,项目结束[项目主要是大量文件处理,所以自己用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

 

 

 

 

  • 大小: 27.4 KB
3
0
分享到:
评论
2 楼 季铵盐 2012-06-20  
看了兄弟你的分析  似乎mina的思想和一些开源的譬如IOSERVER 差不多,我在自己的项目中也是采用的这个设计思想,不知兄弟是否研究过mina中IoHandler的对象是怎样派发处理session的(换句话就是创建的IoHandler怎么来维持的?),在我的项目中采用 的是把处理session的对象给池化! 有兴趣可以讨论下 
1 楼 drprise 2011-02-20  
哥们,有的地方的句子都读不通啊

相关推荐

    apache-mina-2.0.16-jar包-代码.zip

    压缩包子文件的文件名称列表中只有一个条目:"apache-mina-2.0.16-jar包-代码",这意味着压缩包内仅包含Apache Mina 2.0.16的源码JAR文件。开发者通常会用这个文件来导入到IDE中,例如Eclipse或IntelliJ IDEA,然后...

    深入理解Apache Mina (6)---- Java Nio ByteBuffer与Mina ByteBuffer的区别

    4. 零拷贝:Mina在某些情况下支持零拷贝技术,比如在NIO与Mina ByteBuffer之间进行数据传递时,可以避免不必要的数据复制。 5. 高效的API:Mina ByteBuffer的API设计更贴近网络编程需求,提供了如writeInt、readUTF...

    apache-mina-2.0.7-src.zip

    从压缩包子文件的文件名称列表"apache-mina-2.0.7"来看,解压后应该会得到一个包含MINA框架源码目录结构的文件夹,里面可能包括以下组成部分: 1. **核心库**:包含MINA的核心组件,如Buffer、Filter、Session、...

    apache-mina源码

    在这个"apache-mina源码"中,我们可以深入理解MINA的设计原理和实现细节。 MINA的核心概念包括: 1. **IoSession**:IoSession是MINA中的核心组件,代表了服务端和客户端之间的连接。它包含了会话的状态信息,如...

    apache-mina-3.0.0-M2-src.zip

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个开源框架,主要设计用于简化网络应用程序的开发,尤其是TCP/IP和UDP/IP协议的应用。MINA提供了一种高级的、高性能的、异步事件驱动的...

    apache-mina-2.0.4.rar_apache mina_mina

    对于希望提高网络应用性能或熟悉Java NIO编程的开发者来说,Apache Mina 2.0.4的源码分析是一次宝贵的学习机会。你可以通过阅读源码学习到如何有效地处理高并发场景,如何设计和实现高效的网络协议,以及如何利用...

    apache-mina-2.0.4架包及源码各pdf学习教程

    apache-mina-2.0.4 架包 源码 学习教程.apache mina是Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序...

    深入理解Apache Mina (2)---- 与IoFilter相关的几个类

    在Apache Mina框架中,IoFilter是核心组件之一,用于拦截和过滤I/O操作中的各种信息,可以类比于Servlet中的过滤器。这些过滤器提供了强大的机制来控制数据的传输和处理流程。Apache Mina的IoFilter主要有以下作用:...

    apache_mina--2.0.7

    关于apache组织的mina通信框架,可替代 java.NIO.Selector 的更好选择, 里面包括 mina 2.07版本的源码,编译好的jar文件,以及一些网络上找来的网摘资料文档 [截至2013年10月止]。 打包文件名:...

    apache-mina-2.0.7架包与源码

    描述中的"源码"指的是Apache MINA的源代码,这部分是项目的原始程序文本,包含了MINA的所有类、方法和注释。源码包("apache-mina-2.0.7-src.zip")对于开发者来说非常有价值,因为它允许他们深入理解MINA的工作原理...

    apache mina-spring 服务端程序

    Apache Mina是一个高度可扩展的网络通信框架,主要用于构建高性能、高并发的网络应用程序,如服务器端应用。它提供了一种简单而强大的编程模型,使得开发者可以专注于业务逻辑,而不是底层的网络通信细节。Spring...

    mina源码+例子mina-2.0.0-M6.zip

    2. **分析源码**:通过阅读MINA的源码,了解其内部处理流程,如读写事件的处理、过滤器链的工作方式等。 3. **编写简单的应用**:从例子入手,创建一个简单的MINA服务器和客户端,理解它们之间的通信机制。 4. **...

    mina 源码

    在分析"apache-mina-2.0.4"源码时,我们可以深入理解其设计理念、架构以及核心组件。 1. **MINA的设计理念** MINA的核心理念是异步非阻塞I/O,它利用Java NIO(New I/O)库来实现高效的网络通信。通过非阻塞I/O,...

    apache-mina-2.1.3所有jar和源文件.7z

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序框架,主要用于简化开发高质量的网络服务。MINA 提供了一个高级的网络应用编程接口(API),支持...

    Mina2源码分析

    ### Mina2源码分析——核心模块解析 #### 概述 Mina2是一个高性能、可扩展的网络应用框架,支持多种传输协议如TCP、UDP等,并提供了丰富的API供开发者使用。本文旨在深入剖析Mina2的核心部分,帮助读者更好地理解和...

    Apache MINA框架相关资料

    标题中的“Apache MINA框架相关资料”涵盖了对MINA框架的全面学习材料,包括中文参考手册、源码分析、API文档和与Spring框架的整合指南。 1. **中文参考手册**(Apache_Mina_Server_2.0中文参考手册V1.0.pdf):这...

    mina-core-2.0.0-RC1

    《mina-core-2.0.0-RC1:Apache MINA框架的核心组件解析》 Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高度可扩展的网络应用开发框架,主要用于构建高性能、高可用性的网络服务器...

    mina-2.0.0-M3.zip

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个Java框架,专为开发高性能、高可用性的网络应用程序而设计。MINA提供了异步事件驱动的网络应用编程接口(API),支持多种传输协议,如...

Global site tag (gtag.js) - Google Analytics