1

我們知道,在kafka 0.7中,我們可以爲生產者指定zk.connect,因此生產者可以找到經紀人的增加和移除。但在kafka 0.8中,我們無法爲生產者指定zk.connect。卡夫卡0.8生產者能找到那個嗎?如果不是,系統的可擴展性不會比0.7版本差嗎?製造商可以找到卡夫卡0.8經紀人的增加和刪除?

回答

2

,您仍然可以使用ZooKeeper的客戶端來獲取券商名單:

ZkClient zkClient = new ZkClient("localhost:2108", 4000, 6000, new BytesPushThroughSerializer()); 
List<String> brokerList = zkClient.getChildren("/brokers/ips"); 

根據這一點,你不必「硬編碼」的經紀人在客戶端列表中,您是靈活至於系統架構而言。但無論如何,這會再次添加ZooKeeper依賴關係,這對於幾個環境中的生產者來說實際上是一個缺點。

如果你想獲得所謂的「簇元數據API」解決方案的詳細視圖,看看這個鏈接:https://issues.apache.org/jira/browse/KAFKA-369

最佳

PS:對不起,重新發布這你的另一個問題 - 但答案適合兩者;-)

0

有點困惑你到底在找什麼,在0.8我們必須指定metadata.broker.list屬性中的經紀人列表

Properties props = new Properties(); 
    props.put("metadata.broker.list", "broker1:9092,broker2:9092"); 

從卡夫卡消費者example他們說

的財產,「metadata.broker.list」定義了生產者可以找到一個或多個經紀人,以確定負責每個主題。這不需要成爲集羣中的全套經紀商,但至少應包含兩個以防第一個經紀商不可用。無需擔心找出哪個Broker是主題(和分區)的領導者,生產者知道如何連接到Broker並請求元數據,然後連接到正確的Broker。

通過說加入是否意味着將新節點添加到您的羣集?

相關問題