摘要:
1主要流程read in data:IO读入(IoProcessor)---日志记录、解码、threadPool(IoFilter)---业务逻辑处理(IoHandler)write out data:业务逻辑处理(IoHandler)---日志记录、编码、threadPool(IoFilter)---IO写出(IoProcessor)由以上可以看出,IO读入和IO写出的过程是相反的。2线程这里主要讨论一下Mina中的线程,使用线程,线程池可以提高性能,Mina中就使用了几种线程:IoAcceptor/IoConnector线程IoProcessor线程IoHandler线程2.1IoAcce 阅读全文
摘要:
Mina是Apache社区维护的一个开源的高性能IO框架,在业界内久经考验,广为使用。Mina与后来兴起的高性能IO新贵Netty一样,都是韩国人Trustin Lee的大作,二者的设计理念是极为相似的。在作为一个强大的开发工具的同时,这两个框架的优雅设计和不俗的表现,有很多地方是值得学习和借鉴的。本文将从Mina工作原理的角度出发,对其结构进行分析。总体结构Mina的底层依赖的主要是Java NIO库,上层提供的是基于事件的异步接口。其整体的结构如下:IoService最底层的是IOService,负责具体的IO相关工作。这一层的典型代表有IOSocketAcceptor和IOSocketC 阅读全文
摘要:
MINA架构这里,我借用了一张Trustin Lee在Asia 2006的ppt里面的图片来介绍MINA的架构。Remote Peer就是客户端,而下方的框是MINA的主要结构,各个框之间的箭头代表数据流向。大家可以对比刚刚的例子来看这个架构图,IoService就是整个MINA的入口,负责底层的IO操作,客户端发过来的消息就是由它处理。刚刚我们使用的IoAcceptor就是一个IoService,之所以抽象成IoService,是因为MINA用同样的架构来处理服务器和客户端编程,IoService的另一个子类就是IoConnector,用于客户端。不过根据笔者的使用经验,使用非阻塞的模型进行 阅读全文