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

apache MINA 源码级分析-[贰]

阅读更多

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

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

 

需要先看前面的2篇 才能理解在说什么!

 

通过分离业务与io处理的线程池 这样 业务的阻塞不会导致IO处理的阻塞

 

[16:24:14] INFO [org.apache.mina.transport.socket.nio.NioSocketAcceptor] - accept an client connection thread info-->NioSocketAcceptor-1 [16:24:14] INFO [org.apache.mina.filter.logging.LoggingFilter] - OPENEDThread info--> NioProcessor-1 nextFilter is class org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1 [16:24:15] INFO [org.apache.mina.example.echoserver.EchoProtocolHandler] - OPENED Thread info--> pool-3-thread-1 [16:24:15] INFO [org.apache.mina.transport.socket.nio.NioSocketAcceptor] - accept an client connection thread info-->NioSocketAcceptor-1 [16:24:15] INFO [org.apache.mina.filter.logging.LoggingFilter] - OPENEDThread info--> NioProcessor-2 nextFilter is class org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1 [16:24:16] INFO [org.apache.mina.transport.socket.nio.NioSocketAcceptor] - accept an client connection thread info-->NioSocketAcceptor-1 [16:24:16] INFO [org.apache.mina.filter.logging.LoggingFilter] - OPENEDThread info--> NioProcessor-3 nextFilter is class org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1 [16:24:17] INFO [org.apache.mina.transport.socket.nio.NioSocketAcceptor] - accept an client connection thread info-->NioSocketAcceptor-1 [16:24:17] INFO [org.apache.mina.filter.logging.LoggingFilter] - OPENEDThread info--> NioProcessor-1 nextFilter is class org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1 [16:24:35] INFO [org.apache.mina.example.echoserver.EchoProtocolHandler] - --sleeping wake up 20 seconds---

 

从日志可以看出 现在 accept  ioprocess iohandler各自自己的线程池 这样才 真的异步

 

chain.addLast("threadPool", new ExecutorFilter(Executors.newSingleThreadExecutor()));

关键所在 不加则2,3车间公用一个线程池

实践不可能单线 一般

chain.addLast("threadPool", new ExecutorFilter(Executors.newCachedThreadPool()));

用什么线程池 自己实际考虑

分享到:
评论
12 楼 季铵盐 2012-06-20  
11 楼 rrsy23 2009-12-20  
不错哦 ,其实自己可以研究哈
我很少用mina只是自己简单学习哈
10 楼 wxq594808632 2009-12-20  
经过别人的提醒.明白了

引用
还有更简单的方法,可以自己定义一个协议啊,很简单的比如
数据包总长度+字符串字节长度+字符串+字节流长度+字节流数据
就可以啦,解析起来也很方便
9 楼 rrsy23 2009-12-19  
我没有传过文件!

不过我想文件也好 字符也好 在网络系统中 都是流

只是在客户端 服务器段 解析不同

你看看 有没有 StreamIoHandler 这样相关的 handler

可以试验哈 buffer考虑哈
8 楼 wxq594808632 2009-12-17  
我最近在做程序的自动更新.使用mina的时候不知道怎么既可以传送字符串.又可以传输文件.官网上我也没找到相关的例子..请教下..
7 楼 michaelxz 2009-10-13  
您好,看完你的文章我想请教个问题
2和3默认的线程大小是CPU的数量+1,这种情况下当3端(IoHandler)有一些复杂的操作时,CPU的利用率就很低了
你的意思是让2和3分别使用单独的线程池,我想请教下:
如果我们在 new NioSocketAcceptor(Runtime.getRuntime().availableProcessors()+100)
当然这里的100是个虚数,可以根据系统的负载来定
这样的话和分别使用线程池有什么差别?
还有个问题就是:以前2和3共用的线程大小是清楚的,那么我们配置了
new ExecutorFilter(Executors.newCachedThreadPool())后
那么2,3的线程池大小是怎么设定的?
6 楼 rrsy23 2009-07-13  
世界本没有相同的东西 相同是因为抽象;
所以设计之所以是设计就是不同;

没有什么对与错!

就看适合与否!

欢迎探讨交个朋友fjlyxx
5 楼 fjlyxx 2009-07-13  
rrsy23 写道
福特汽车不是简单的顺序;

他有线程池,有队列,看你怎么看了

我认为一个车间是一个线程池 产品需要转到下一车间 中间是队列


对了里面放什么..没有统一的领域是很难转的.寻找统一领域是这种流水线最难的设计.
4 楼 rrsy23 2009-07-13  
福特汽车不是简单的顺序;

他有线程池,有队列,看你怎么看了

我认为一个车间是一个线程池 产品需要转到下一车间 中间是队列

3 楼 fjlyxx 2009-07-12  
rrsy23 写道
那张图 每个人看了不一样,开始看是个顺序结构

后来看是个回调结构

在看是个 线程模型结构

目前看 是个 福特汽车的流水线


呵呵!

欢迎探讨一起进步


楼主 我怎么和你认识的顺序相反啊
是个 福特汽车的流水线-->有个字节缓冲区所以具备条件(统一领域)
是个顺序结构-->有个字节缓冲区所以具备条件(统一领域)
是个回调结构-->节缓冲协议
2 楼 rrsy23 2009-07-12  
那张图 每个人看了不一样,开始看是个顺序结构

后来看是个回调结构

在看是个 线程模型结构

目前看 是个 福特汽车的流水线


呵呵!

欢迎探讨一起进步
1 楼 fjlyxx 2009-07-10  
个人觉得MINA的那张图(处理链的那张...) 看明白了基本就了解MINA了.
chain.addLast("threadPool", new ExecutorFilter(Executors.newCachedThreadPool())); 线程模型是可以替换的.

一系列的回调 Executors 这个类的回调

相关推荐

    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的区别

    Apache Mina是一个高性能的网络应用框架,主要用于简化网络服务的开发,如TCP/IP和UDP通信。在Mina中,ByteBuffer的使用是至关重要的,因为它提供了高效的数据读写机制。本篇将深入探讨Java NIO(非阻塞I/O)中的...

    apache-mina-2.0.7-src.zip

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

    apache-mina-3.0.0-M2-src.zip

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

    apache-mina源码

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

    apache-mina-2.0.4.rar_apache mina_mina

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

    深入理解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.4架包及源码各pdf学习教程

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

    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