2015-10-16 39 views
0

我在本地主機上設置了Kafka,並試圖監控Kafka Producer在網絡問題情況下的行爲。Kafka Producer行爲

即使所有經紀人都關門,製片人也不會給出任何錯誤。 我正在使用同步製作者和Kafka版本0.8。

如果所有的經紀人都失敗了,生產者是否可以接收異常?

+0

你如何運行你的製作人?它是控制檯生產者? – Bector

+0

不,我使用Producer API在Java中製作了一個生產者 – Hubble

回答

0

請您製作添加異常處理:

try{ 
     Producer logic 
} 
catch (Exception ex) { 
     String errorMsg = "Failed to publish events"; 
     logger.error("Failed to publish events", ex); 
     result = Status.BACKOFF; 

請讓我知道,如果它仍然無法工作。

1

這取決於你的生產配置(producer config

尤其要對參數注意:

(METADATA_FETCH_TIMEOUT_CONFIG, 60000), 
    (TIMEOUT_CONFIG, 10000), 
    (RETRY_BACKOFF_MS_CONFIG, 100), 
    (RECONNECT_BACKOFF_MS_CONFIG, 1000) 

你肯定必須改變對您的設置參數。所有這些參數都會影響生產者行爲。

0

Java/Scala(Async producer)中的新8.2生產者爲每條消息都有一個回調方法。您可以嘗試處理回調中的故障,可能會重試。回調方法需要兩個參數(Exception和MessageMetatData)。隨時只有一個設置。當您的消息被成功發送時,肉食元數據會被設置,異常情況下會出現問題。

使用同步生產者,雖然你將不得不將max.retries和其他配置設置爲@leshkin指出的。

相關問題