2016-12-12 9 views
0

私はカフカCLIを学んでいます。そして質問がある。私たちは、メッセージを作成するときしかし、トピックを作成し、メッセージを消費するとき--zookeeperオプションを使用する必要がなぜ が、私たちはただカフカ自身を指し--brokerリストを使用し、 1.createトピック関係動物園とカフカ

./kafka-topics.sh --create --zookeeper `docker-machine ip bigdata` --replication-factor 1 --partitions 1 --topic bigdata 

2.produceメッセージ

./kafka-console-producer.sh --broker-list `docker-machine ip bigdata`:9092 --topic bigdata 

3.consumeメッセージ

./kafka-console-consumer.sh --zookeeper `docker-machine ip bigdata`:2181 --topic bigdata 

私はカフカがコーディネートのための飼育係を使用する必要があります知っています。しかし、私はまだCLIのcommmandからそれを非常に明確にしていません

+0

この回答はあなたの質問に関連しているようです - http://stackoverflow.com/questions/22444351/why-does-kafka-producer-take-a-broker-endpiont-when-being-initialized-instead-of –

答えて

2

あなたはトピック管理とトピック消費を区別しなければなりません。 ZKはブローカの調整だけでなく、トピック管理にも使用されます。

トピック管理のために、ZKはトピックメタデータを格納するために使用され、ブローカー(現在はKafka 0.10.1)はトピック管理のAPIを提供していません。したがって、admin CLIツールは実際にZK(ブローカではなく)に直接話します。新しい管理者クライアントが完全に実装されたときに変更されます(c.f. https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations

ZKは必須ではなく、消費者とプロデューサのクライアントはブローカーとのみ話します。

+0

ありがとうので、基本的にトピックデータ自体はkakfaノードに格納されています。 – nathan

+0

はい。 ZKはメタデータのみを格納します。トピックペイロードはKafkaブローカーに保管されています。 –

関連する問題