netty4在channel.writeAndFlush()为什么还阻塞延迟?

大汉刺史 发布于 2016/09/05 11:18
阅读 3K+
收藏 0
这个问题在数量少的时候不明显,当我同时向1000个客户端发消息的时候调用writeAndFlush就会一直阻塞着,大约几秒钟的时间。有没有办法不阻塞,不然到时候10W个就要延迟几百秒……
加载中
0
大汉刺史
大汉刺史
又要石沉大海吗
0
大汉刺史
大汉刺史
没人遇到吗??
0
Rcd
Rcd

问题说明比较模糊,请确定以下点并贴出相关代码才能确定:

1. 是否使用NIO。

2. boss group 和 worker group 是否分开。

3. 使用jstack 或 jvisualvm 观察线程等待事件。

0
大汉刺史
大汉刺史

引用来自“Rcd”的评论

问题说明比较模糊,请确定以下点并贴出相关代码才能确定:

1. 是否使用NIO。

2. boss group 和 worker group 是否分开。

3. 使用jstack 或 jvisualvm 观察线程等待事件。

1、当然使用了NIO

2、boss 和 work 分开了



大汉刺史
大汉刺史
大量时间都在select 和 dowrite里面。这些方法都是netty本身 的
Rcd
Rcd
那就使用jstack观察线程状态
0
325G
325G

耗时的业务逻辑可以使用线程池 防止work线程被阻塞

0
大汉刺史
大汉刺史

引用来自“Rcd”的评论

问题说明比较模糊,请确定以下点并贴出相关代码才能确定:

1. 是否使用NIO。

2. boss group 和 worker group 是否分开。

3. 使用jstack 或 jvisualvm 观察线程等待事件。

引用来自“安西都护府首席程序员”的评论

1、当然使用了NIO

2、boss 和 work 分开了



看不出什么,事件消耗最大的是 select 方法。我前面说了 只写不刷新不阻塞,一旦刷新就阻塞了
渣哇
渣哇
在线等
渣哇
渣哇
解决了告诉我下啊,大神赐教
0
渣哇
渣哇

解决了吗?我也遇到这个问题了,大量的都在select ,但是应该不是这个引起的,这个应该是异步通知,有消息时的确在执行行

0
汀雨小吉
汀雨小吉

客户端Thread.sleep(20ms),服务器解析不过来

返回顶部
顶部