2017-08-06 37 views
2

retries參數,因爲它規定在Kafka中,如果參數「retries」設置爲1或更多,那麼是否會自動執行重試?

設定一個大於零的值將導致客戶端重新發送它的發送失敗有可能引起暫時的錯誤的任何記錄。請注意,此重試與客戶端收到錯誤時重新發送記錄沒有區別。

我想確認的是由kafka框架自動進行重試,或者需要客戶端進行任何其他處理。
如果它自動完成,並且說retries設置爲1。如果record的發送也在第二次嘗試時失敗,那麼kafka會在重試和停止重試時以不同的方式告知我相應的錯誤消息。

回答

2

是的你是對的,重試是由Kafka客戶端自動完成的,無需用戶應用程序進行額外處理。 客戶端庫在重試時不會通知您,但它會在您的配置中使用retry.backoff.ms參數進行配置,該參數定義了「在嘗試向指定主題分區重試失敗請求之前等待的時間量」,如官方所述文檔。 當所有嘗試都失敗時,您將在傳遞給KafkaProducer send方法的回調(由於沒有記錄被髮送而導致RecordMetadata爲null)或通過發送返回Future時收到異常。

+0

你想評論:https://stackoverflow.com/questions/45528743/kafka-how-to-obtain-failed-messages-details-in-producer-class。我需要立即在我的公司提供一個基於kafka的解決方案,非常抱歉入侵。 – samshers

相關問題