我在librdkafka消费者实现(版本 0.11)中的fetch.max.message.bytes参数有奇怪的性能问题。我在慢速网络链接(4 Mbps)上使用 kafkacat 运行了一些测试,并收到以下结果:
- 1024 字节 = 1.740 秒
- 65536 字节 = 2.670 秒
- 131072 字节 = 7.070 秒
当我开始调试协议消息时,我注意到了一种提高 RTT 值的方法。
|SEND|rdkafka| Sent FetchRequest (v4, 68 bytes @ 0, CorrId 8)
|RECV|rdkafka| Received FetchResponse (v4, 131120 bytes, CorrId 8, rtt 607.68ms)
似乎fetch.max.message.bytes值的增加会导致非常高的网络饱和度,但它每个请求只携带一条消息。
另一方面,当我尝试 kafka-console-consumer 时,一切都按预期运行(我通过同一网络链接每秒获得 500 条消息的吞吐量)。
有什么想法或建议可以在哪里查看?