我在本地主機上設置了Kafka,並試圖監控Kafka Producer在網絡問題情況下的行爲。Kafka Producer行爲
即使所有經紀人都關門,製片人也不會給出任何錯誤。 我正在使用同步製作者和Kafka版本0.8。
如果所有的經紀人都失敗了,生產者是否可以接收異常?
我在本地主機上設置了Kafka,並試圖監控Kafka Producer在網絡問題情況下的行爲。Kafka Producer行爲
即使所有經紀人都關門,製片人也不會給出任何錯誤。 我正在使用同步製作者和Kafka版本0.8。
如果所有的經紀人都失敗了,生產者是否可以接收異常?
請您製作添加異常處理:
try{
Producer logic
}
catch (Exception ex) {
String errorMsg = "Failed to publish events";
logger.error("Failed to publish events", ex);
result = Status.BACKOFF;
請讓我知道,如果它仍然無法工作。
這取決於你的生產配置(producer config)
尤其要對參數注意:
(METADATA_FETCH_TIMEOUT_CONFIG, 60000),
(TIMEOUT_CONFIG, 10000),
(RETRY_BACKOFF_MS_CONFIG, 100),
(RECONNECT_BACKOFF_MS_CONFIG, 1000)
你肯定必須改變對您的設置參數。所有這些參數都會影響生產者行爲。
Java/Scala(Async producer)中的新8.2生產者爲每條消息都有一個回調方法。您可以嘗試處理回調中的故障,可能會重試。回調方法需要兩個參數(Exception和MessageMetatData)。隨時只有一個設置。當您的消息被成功發送時,肉食元數據會被設置,異常情況下會出現問題。
使用同步生產者,雖然你將不得不將max.retries和其他配置設置爲@leshkin指出的。
你如何運行你的製作人?它是控制檯生產者? – Bector
不,我使用Producer API在Java中製作了一個生產者 – Hubble