mina源码解析之---数据接收处理流程


        如果想通过Mina来实现一个自定义协议的网络应用程序,用户只需要编写自定义协议编解码处理器和业务处理逻辑即可。由于每一个Session关联一个Processor处理线程,多个Session共享有限的Processor线程池,如果Handler中的业务逻辑处理比较耗时,会导致后续请求阻塞等待,严重降低效率,所以,一般会向Acceptor的FilterChain添加一个ExecutorFilter来缓解该问题,典型代码如下:

 

            DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
            // 日志
            LoggingFilter filter = new LoggingFilter();
            chain.addLast("logger", filter);
            // 协议处理
            chain.addLast("codec", new ProtocolCodecFilter(codecFactory));
            // 线程池
            chain.addLast("executor", new ExecutorFilter(Executors.newCachedThreadPool()));

 

当server接收到client发送数据后的处理流程如下:

呵呵,用jude画的序列图,不是很规范。备忘。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值