2017-02-28 37 views
0


我正在使用kafka控制檯工具並試圖設置它,如果至少有一個kafka服務器實例保持聯機狀態,則仍然可以在使用複製時發送和接收消息。配置:Zookeeper(localhost:2181),kafka1(localhost:9092),kafka2(localhost:9093),producer1(localhost:9092),producer2(localhost:9093),consumer1(localhost:9092),consumer2(本地主機:9093)原始kafka實例關閉後,Kafka使用者無法獲取數據,直至重新啓動?

主題:分區= 6,複製= 2

如果kafka1服務器聯機,發送和接收總是工作的消息,kafka2的不管狀態。但是,如果kafka1處於離線狀態且kafka2處於在線狀態,則發送的消息將被提交 - 偏移量會增加,但消費者1和消費者2將無法讀取它,直到kafka1恢復聯機 - 在消息傳遞後。

對我來說,消息需要複製到kafka1才能發送。

所以,我的問題:
1)爲什麼kafka1需要聯機爲兩個消費者能夠接收消息?
2)當kafka1離線時,producer1是否將自己配置爲寫入kafka2?
3)如果2)爲真,爲什麼consumer1不配置自己讀取kafka2?
4)雖然kafka1處於離線狀態,但爲什麼消費者2沒有收到消息?

感謝您的任何迴應:)

回答

0

我想我想通了。我讓製作者只設置一個kafka實例,所以如果它離線,消息被緩存在的某處。在它恢復在線之後,消息得到提交併正常交付。

相關問題