2017-07-11 61 views
0

按照本文件的Kafka tutoria連接到zookeeper的消費者不是代理消息消費的代理?

Zookeper在港啓動2181 經紀人/卡夫卡開始於9092

開始生產者將消息發送

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Hello-Kafka // producer is producing directly to broker not zookeeper which is correct 

開始消費者收到的消息

bin/kafka-console-consumer.sh --zookeeper localhost:2181 —topic Hello-Kafka --from-beginning 

每礦瞭解消費者直接消費的消息從經紀人,但在上述消費者命令,我們沒有提到的經紀人,但只有飼養員。消費者會連接到zookeeper(而不是代理)來使用消息嗎?

回答

1

有老卡夫卡消費(0.8.2及更早版本)和一個新的卡夫卡的消費者(0.9以上)。對於新的消費是如何工作在這裏看到

https://www.confluent.io/blog/tutorial-getting-started-with-the-new-apache-kafka-0-9-consumer-client/

的公告原文博客一個偉大的描述老用戶將連接到動物園管理員,但仍然會取從卡夫卡的所有消息。

新的消費者有沒有動物園管理員的依賴,並沒有連接到所有的ZooKeeper。

控制檯生產者和控制檯消費者既支持老視的新API上的選項,你給它。您所提供的例子控制檯消費者是老客戶,因爲它指定--bootstrap服務器現在

+0

只有老客戶0.8或更早版本的商店偏移從'的https Iinstalled最新卡夫卡即卡夫卡0.11.0.0-SRC。作爲第一步,我試圖讓zookeeper服務器起來。我正在使用捆綁上述卡夫卡下載的zookeeper。我導航到' \ bin \ windows'並執行了這個命令'zookeeper-server-start.bat .. \ .. \ config \ zookeeper.properties',但是它說'命令的語法不正確。類路徑是空的。請先構建項目,例如通過運行gradlew jarAll'我不知道我在這裏錯過了什麼? – user3198603

+0

您下載了源代碼。你想下載二進制版本,以便它可以運行。由於您在Windows上支持得不好,我建議您使用docker鏡像。完整的快速入門在這裏http://docs.confluent.io/current/cp-docker-images/docs/quickstart.html –

+0

感謝二進制下載工作。我執行了以下消費命令'kafka-console-consumer。bat --bootstrap-server localhost:9092 --topic test --from-beginning'它說'缺少必需的參數[zookeeper]'。即使卡夫卡最新版本的消費者期待動物園管理員? – user3198603

-1

消費者訂閱主題,通過動物園管理員羣集連接到zookeeper.The卡夫卡服務器共享信息。 Kafka在Zookeeper中存儲基本的元數據,例如有關主題,經紀人,消費者偏移量(隊列讀者)的信息等。爲了更好地理解zookeeper的角色,請查看下面的鏈接。

https://www.quora.com/What-is-the-actual-role-of-ZooKeeper-in-Kafka

+0

消費者偏移量存儲在卡夫卡,不是動物園管理員的--zookeeper代替。 // kafka.apache.org/downloads':在動物園管理員 –

1
你與--zookeeper參數使用什麼

是老消費者。新的卡夫卡消費者(您應該使用它)直接連接到卡夫卡經紀人。爲此,您可以使用--bootstrap-server選項而不是指定localhost:9092的--zookeeper。新消費者不再在Zookeeper上保存偏移量,而是在Kafka代理上將其保存到名爲__consumer_offsets的特定主題。

相關問題