`
scriptguy
  • 浏览: 35541 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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画的序列图,不是很规范。备忘。
 

  • 大小: 46.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics