码迷,mamicode.com
首页 > 其他好文 > 详细

Mina的ProtocolEncoderOutput之坑

时间:2014-08-18 20:28:12      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:io   问题   ad   服务器   on   c   测试   dp   

  这个问题是之前测试上万个连接的pingpong发现的,调了很久,但当时急着做其他事,就没有详细记录下来,现在回想起来也有点记不清具体哪儿了。

  表现是在测试上万个连接的pingpong时会出现服务器挂起的现象,服务端无法收到任何消息,由于服务器用了OrderedThreadPoolExecutor,debug时发现OrderedThreadPoolExecutor的idleWorkers显示有15个空闲线程,但workers里一个Worker线程都没有,所以NioProcessor提交的任务都无法继续,服务器整个被挂起……

  后排排查发现mina的encoder最后手动调用了out.flush();,加了这行会在收发负载量大时因为mina的OrderedThreadPoolExecutor多线程模型导致内部抛异常、状态异常。。。

  在此记下这个坑

Mina的ProtocolEncoderOutput之坑,布布扣,bubuko.com

Mina的ProtocolEncoderOutput之坑

标签:io   问题   ad   服务器   on   c   测试   dp   

原文地址:http://www.cnblogs.com/logicbaby/p/3920278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!