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

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

某些記錄的 Azure eventhub Kafka org.apache.kafka.

某些記錄的 Azure eventhub Kafka org.apache.kafka.

梵蒂岡之花 2023-08-09 15:15:06
有一個包含 80 到 100 條記錄的 ArrayList,嘗試流式傳輸并將每個單獨的記錄(POJO,不是整個列表)發送到 Kafka 主題(事件中心)。安排一個 cron 作業,例如每小時將這些記錄 (POJO) 發送到事件中心。能夠看到消息發送到 eventhub ,但在 3 到 4 次成功運行后出現以下異常(其中包括多條正在發送的消息和幾條因以下異常而失敗的消息)    Expiring 14 record(s) for eventhubname: 30125  ms has passed since batch creation plus linger time以下是使用的 Producer 的配置,    props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);    props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);    props.put(ProducerConfig.ACKS_CONFIG, "1");    props.put(ProducerConfig.RETRIES_CONFIG, "3");消息保留期 - 7 分區 - 6 使用 spring Kafka(2.2.3) 發送標記為@Asynckafka send 寫入位置的事件方法    @Async    protected void send() {       kafkatemplate.send(record);    }預期 - kafka 不會拋出異常 實際 - 拋出 org.apache.kafka.common.errors.TimeoutException
查看完整描述

2 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

Prakash - 我們已經看到了許多問題,其中尖峰生產者模式會出現批處理超時。

這里的問題是生產者有兩個 TCP 連接可以空閑超過 4 分鐘 - 此時,Azure 負載均衡器會關閉空閑連接。Kafka 客戶端不知道連接已關閉,因此它嘗試在失效連接上發送批處理,該連接超時,此時將開始重試。

  • 將connections.max.idle.ms設置為<4分鐘——這允許Kafka客戶端的網絡客戶端層優雅地處理生產者消息發送TCP連接的連接關閉

  • 將metadata.max.age.ms設置為<4分鐘——這實際上是生產者元數據TCP連接的保持活動狀態

查看完整回答
反對 回復 2023-08-09
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

此異常表明您對記錄進行排隊的速度快于發送記錄的速度。將記錄添加到批次后,發送該批次就有一個時間限制,以確保它已在指定的持續時間內發送。這是由 Producer 配置參數 request.timeout.ms 控制的。如果批次排隊時間超過超時限制,則會拋出異常。該批次中的記錄將從發送隊列中刪除。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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