阻止Kafka代理关闭空闲连接

时间:2017-09-29 07:59:55

标签: apache-kafka

在我的情况下,我的制作人使用librdkafka,topic.metadata.refresh.interval.ms默认为5分钟。 在经纪人方面connections.max.idle.ms是2小时,我们的qps相当低,但我们想要在rtt 20ms内获得99.9%的请求,但如果经纪人关闭连接,生产者将重新建立频道并发送消息,这将获得高延迟。似乎元数据刷新不起作用。

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

对于每个元数据刷新,librdkafka将选择一个合适的代理连接来发送请求,它不会发送所有代理连接,也不会发送真正的随机连接,因此主题元数据刷新不能过去常常保持所有联系。

Kafka协议实际上没有一种廉价或无副作用的“心跳”#34; (不要与HeartbeatRequest混淆)空闲连接。

使用broker> = v0.11,可以仅为集群信息发送元数据请求(不请求任何主题,因此便宜)。 我建议为librdkafka创建一个功能请求github问题,如果这是你想要的。

但如果你不想要空闲连接,为什么不设置connections.max.idle.ms真的很高?