亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我的 Kafka 消費者投票這么快?

為什么我的 Kafka 消費者投票這么快?

縹緲止盈 2023-03-09 14:05:15
我的 Kafka 消費者的輪詢速度比我預期的要快。是否有一些配置我可以更改以使其一直等待fetch.max.wait.ms?我將 fetch.max.wait.ms 設置為某個秒數 (5)。我設置fetch.min.bytes了一些大字節數 (99,988,800)。我閱讀了文檔(但可能遺漏了一些內容):https://kafka.apache.org/documentation/獲取.min.bytes服務器應為獲取請求返回的最小數據量。如果可用數據不足,則請求將等待積累足夠多的數據,然后再回答請求。1 字節的默認設置意味著一旦單個字節的數據可用或獲取請求在等待數據到達時超時,就會立即響應獲取請求。將其設置為大于 1 的值將導致服務器等待大量數據的積累,這可以稍微提高服務器吞吐量,但會增加一些額外的延遲。fetch.max.wait.ms如果沒有足夠的數據立即滿足 fetch.min.bytes 給定的要求,服務器在回答獲取請求之前將阻塞的最長時間。fetch.max.wait.ms=5000, fetch.min.bytes=99988800根據我的配置選項和數據集,我希望調用poll在返回任何記錄之前始終阻塞 5 秒。相反,對 的調用poll有時會在不到一秒的時間內解決,并且總是有一些少量的記錄。這是示例運行的輸出:// send 100 records// doesn't matter how// timestamp -> records received// (date, hour and minute are not shown, just the relevant seconds.millis)32.475 -> 1033.392 -> 1234.116 -> 1637.477 -> 1638.395 -> 1839.118 -> 1742.479 -> 743.397 -> 4沒有延遲真的接近5s。
查看完整描述

2 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

對于財產,fetch.max.wait.ms=5000您說:“即使沒有足夠的數據可供選擇,也不要等待超過 5 秒”。在執行輪詢之前,您沒有指定最小秒數。您可以通過啟動 2 個 kafka 消費者來測試此行為,其中一個是您設置的fetch.max.wait.ms=20000,另一個是保留默認值。您會看到,在具有默認設置的消費者中,您幾乎會立即收到消息,而在消費者中,fetch.max.wait.ms=20000您將不得不稍等片刻。我在我的機器上嘗試過設置fetch.max.wait.ms=20000,有時需要 15 秒才能接收記錄,有時需要 10 秒等等,但不會超過 20 秒。



查看完整回答
反對 回復 2023-03-09
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

您還需要調整 max.partition.fetch.bytes、message.max.bytes 和 max.message.bytes。如果每條記錄的大小約為100KB,則10條記錄將觸發發送。這可能是你在你的案例中看到的。



查看完整回答
反對 回復 2023-03-09
  • 2 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號