Mina的ProtocolEncoderOutput之坑
这个问题是之前测试上万个连接的pingpong发现的,调了很久,但当时急着做其他事,就没有详细记录下来,现在回想起来也有点记不清具体哪儿了。
表现是在测试上万个连接的pingpong时会出现服务器挂起的现象,服务端无法收到任何消息,由于服务器用了OrderedThreadPoolExecutor,debug时发现OrderedThreadPoolExecutor的idleWorkers显示有15个空闲线程,但workers里一个Worker线程都没有,所以NioProcessor提交的任务都无法继续,服务器整个被挂起……
后排排查发现mina的encoder最后手动调用了out.flush();,加了这行会在收发负载量大时因为mina的OrderedThreadPoolExecutor多线程模型导致内部抛异常、状态异常。。。
在此记下这个坑
Mina的ProtocolEncoderOutput之坑的更多相关文章
- 我的微信小程序入门踩坑之旅
		
前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...
 - mina框架详解
		
转:http://blog.csdn.net/w13770269691/article/details/8614584 mina框架详解 分类: web2013-02-26 17:13 12651人 ...
 - 第一次使用Linux服务器所栽之坑
		
一直以来想拥有一个服务器,但是一直舍不得.9.21日终于心血来潮,买了一个腾讯云服务器.对比了一下腾讯云和阿里云,发现腾讯云比较良心,不仅有学生价1元/月,而且整体价格也比阿里云便宜.之前用过一次阿里 ...
 - java socket 多线程通讯 使用mina作为服务端
		
客户端代码不变,参照 http://www.cnblogs.com/Westfalen/p/6251473.html 服务端代码如下: import java.io.IOException; impo ...
 - Apache MiNa 实现多人聊天室
		
Apache MiNa 实现多人聊天室 开发环境: System:Windows JavaSDK:1.6 IDE:eclipse.MyEclipse 6.6 开发依赖库: Jdk1.4+.mina-c ...
 - Mina传输大数组,多路解码,粘包问题的处理
		
我的实际情况: 1,传递的业务数据种类很多,这就决定了我们要用多路解码器,MINA的中文手册提供的是DemuxingProtocolCodecFactory; 2,,有的数据长度达到8K,网上有资料说 ...
 - Mina、Netty、Twisted一起学(五):整合protobuf
		
protobuf是谷歌的Protocol Buffers的简称,用于结构化数据和字节码之间互相转换(序列化.反序列化),一般应用于网络传输,可支持多种编程语言. protobuf如何使用这里不再介绍, ...
 - NIO的一坑一惑小记
		
前言 不知不觉,已那么长时间没有更新东西了,说来真是汗颜啊.(主要是最近在技术上豁然开朗的感觉越来越少了-_-|||) 最近一直在学习Linux相关的东西.又一次接触到了I/O复用模型(select/ ...
 - Mina、Netty、Twisted一起学(四):定制自己的协议
		
在前面的博文中,介绍一些消息分割的方案,以及MINA.Netty.Twisted针对这些方案提供的相关API.例如MINA的TextLineCodecFactory.PrefixedStringCod ...
 
随机推荐
- cmd常用命令符
			
想成为电脑高手必须掌握的八个cmd 命令 http://www.cr173.com/html/3917_1.html ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值 ...
 - spring @condition 注解
			
spring @condition注解是用来在不同条件下注入不同实现的 demo如下: package com.foreveross.service.weixin.test.condition; im ...
 - Kafka 0.9+Zookeeper3.4.6集群搭建、配置,新Client API的使用要点,高可用性测试,以及各种坑   (转载)
			
Kafka 0.9版本对java client的api做出了较大调整,本文主要总结了Kafka 0.9在集群搭建.高可用性.新API方面的相关过程和细节,以及本人在安装调试过程中踩出的各种坑. 关于K ...
 - 《编写可维护的JavaScript》——JavaScript编码规范(三)
			
啦啦啦啦啦,今天第二篇随笔\(^o^)/~ ////////////////////////////////正文分割线////////////////////////////////////// 直接 ...
 - 【转】工控老鬼】西门子S7200入门&精通【1】S7200硬件大全
			
转载地址:http://blog.sina.com.cn/s/blog_669692a601016i5f.html 工控老鬼提醒以下的信息和资料可能不全或者不准确,如有疑问可以查阅西门子中国网 ...
 - java.sql.SQLException: 关闭的 Resultset: next
			
根据异常信息判断是数据库查询出来的结果集被关闭了,所以就了next 我的代码是一个Impl方法(假设为A方法)中调用另一个Impl方法(假设为B方法),我在执行完B方法后,调用了一下关闭数据库连接的方 ...
 - javascript中怎样区分元素和节点?
			
1.所谓元素,即html文档里面,所有的标签都可以称之为元素,比如说<p>.<tr>等,也就是说元素是个统称,一个文档里面有很多的元素.2.所谓节点,是js为了对html文档进 ...
 - [原]ComFriendlyWaitForSingleObject
			
structThreadParam { unsignedint p1;// +00h ebp-24h unsignedint p2;// +04h ebp-20h unsignedint cookie ...
 - Javascript > Eclipse > Code completion (Content Assist)
			
分享一下,整体理清的思路,关于Eclipse中代码的 自动完成,可配置自定义Library文件地址 其实这个思路的通用的,不管任何Eclipse支持的编辑语言,都可以适用.下面已Javascript来 ...
 - centos6.6_64位操作系统安装时候出现kernel  panic - not syncing: Attempted to kill init 解决办法
			
最近在VM上安装centos时候经常被这个问题虐,后来进入单用户模式在 kernel /vmlinuz-XXXXro root=/dev/vogroup00/logvol00 rhgb quie ...