如何在Netty 4中丢弃拥挤的连接
使用Netty 4,如果远程端无法跟上,我如何检测我写入的数据在我的连接端被阻塞并关闭连接 我在检查 ChannelHandlerContext.channel.outboundByteBuffer.readableBytes> MaxWriteBuffer 但对于最新的Netty 4版本,这给了我一个例外: java.lang.IllegalStateException:从调用的NextToutBoundByteBuffer() 事件循环之外如何在Netty 4中丢弃拥挤的连接,netty,Netty,使用Netty 4,如果远程端无法跟上,我如何检测我写入的数据在我的连接端被阻塞并关闭连接 我在检查 ChannelHandlerContext.channel.outboundByteBuffer.readableBytes> MaxWriteBuffer 但对于最新的Netty 4版本,这给了我一个例外: java.lang.IllegalStateException:从调用的NextToutBoundByteBuffer() 事件循环之外 您需要从EventLoop执行此操作,否则它不是线
您需要从EventLoop执行此操作,否则它不是线程安全的 比如说:
ChannelHandlerContext ctx = ....
final Channel channel = ctx.channel();
channel.eventLoop().execute(new Runnable() {
public void run() {
if (channel.outboundByteBuffer.readableBytes() > MaxWriteBuffer) {
// do something
}
}
});
有人知道如何在Netty 4.0.20中准确地做到这一点(检测连接是否拥塞)吗?我在最近的netty版本中找不到任何与outboundByteBuffer相关的内容(看起来它是在早期的4.0版本之后被删除的),我也不知道它被替换了什么。