如何使用netty4实现高吞吐量服务器?
在我的基准测试中,封装小约16byte~0.5K,tps约为8.8w / s,不能上升,netty4中是否有一些参数调整建议以便小包装?
代码是RocketMQ,它是一个具有自定义存储结构的MQ,也使用代理和客户端之间的私有协议。
非常感谢。
答案 0 :(得分:1)
由于每个数据包都很小,因此你需要花费大量的开销来单独发送它们,这是因为Netty的设计方式。一旦发送消息,它就会通过一个完整的链(管道),虽然有用但它有助于保持简单和模块化,但如果你发送几个小尺寸的消息,它会很快加起来。
作为一种解决方案,您可以尝试将它们放在每10毫秒刷新一次的队列中,或者在100个数据包填满之后。请注意, WILL 会导致延迟增加,特别是在只发送少量数据包时。