2017-09-29 142 views
0

在我的情況下,我的製作人使用librdkafka,topic.metadata.refresh.interval.ms默認爲5分鐘。 在經紀方connections.max.idle.ms是2小時,我們有很低的qps,但我們希望在rtt 20ms內請求99.9%,但是如果經紀人關閉連接,製作人將重新建立頻道併發送消息,高延遲。看來元數據刷新不起作用。防止卡夫卡經紀人關閉空閒連接

我該如何解決這個問題?

+0

它似乎高延遲或高延遲?你有關於重新建立連接的時間的數字嗎? – dawsaw

回答

0

對於每個元數據刷新,librdkafka將選擇合適的代理連接來發送請求,它不會在所有代理連接上發送,並且也不會發送真正的隨機連接,因此無法使用主題元數據刷新保持所有連接的連貫性。

卡夫卡協議並沒有真正的廉價或無副作用的「心跳」(不會與HeartbeatRequest混淆)空閒連接。

通過代理> = v0.11,可以僅爲羣集信息(不請求任何主題,因此便宜)發送元數據請求。 我建議爲librdkafka創建一個功能請求github問題,如果這是你想要的東西。

但是,如果你不希望閒置連接收割,爲什麼不設置connections.max.idle.ms真的很高?

相關問題