首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Netty返回数据丢包的问题之一

这个问题是在一个群友做压力测试的时候发现的。使用客户端和netty创建一条连接,然后写了一个for循环不停的给服务器发送1500条信息,发现返回只有几百条。另外几百条不知道哪去了。查看代码,发现在服务器发送前做了一个判断:

通过查看源码,问题就在isWriteable()里面,下面看一下源码,在AbstractChannel里面:

再看buf.isWritebale()的实现:

这里有一个变量,控制了是否可以写,那这个变量什么时候发生变化呢,我们接着找,先看看是什么情况下被修改为非0的

这个方法是在这里被调用 的:

我们看到这个值是在channel config中配置的,那么就可以在channel config中修改这个值,

ctx.channel().config().setWriteBufferHighWaterMark(1024*1024 * 8);

也可以在服务启动的时候设置:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181019G27QEH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券