2ノードのカフカクラスタ(EC2インスタンス)があり、各ノードは別々のブローカーとして使用されています。リーダーインスタンスで次のコマンドを使用してプロデューサを実行すると、メッセージを生成するときにトピックが見つかりません:UNKNOWN_TOPIC_OR_PARTITION
kafka-console-producer.sh --broker-list localhost:9092 --topic test
次のエラーが発生します。 kaka-topics.sh
でトピックをリスト
test message [2017-01-09 13:22:39,483] WARN Error while fetching metadata with correlation id 0 : {test=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient) [2017-01-09 13:22:39,562] WARN Error while fetching metadata with correlation id 1 : {test=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient) [2017-01-09 13:22:39,663] WARN Error while fetching metadata with correlation id 2 : {test=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient) ...
はトピックが存在することを示しています。
で話題の説明:私はカフカ0.10.1.1を使用しています
kafka-topics.sh --zookeeper localhost:2181 --describe --topic test
戻り
Topic:test PartitionCount:8 ReplicationFactor:1 Configs:
Topic: test Partition: 0 Leader: 1 Replicas: 1 Isr: 1
Topic: test Partition: 1 Leader: 2 Replicas: 2 Isr: 2
Topic: test Partition: 2 Leader: 1 Replicas: 1 Isr: 1
Topic: test Partition: 3 Leader: 2 Replicas: 2 Isr: 2
Topic: test Partition: 4 Leader: 1 Replicas: 1 Isr: 1
Topic: test Partition: 5 Leader: 2 Replicas: 2 Isr: 2
Topic: test Partition: 6 Leader: 1 Replicas: 1 Isr: 1
Topic: test Partition: 7 Leader: 2 Replicas: 2 Isr: 2
。
server.propertes
ファイルが含まれています
WARN Got error produce response with correlation id 1 on topic-partition test-4, retrying (2 attempts left). Error: NOT_LEADER_FOR_PARTITION (org.apache.kafka.clients.producer.internals.Sender) ....
は誰が助けてください:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://0.0.0.0:9092
port=9092
host.name=kafka-node1(kafka-node1 for the second host)
advertised.host.name=kafka-node1(kafka-node2 for the second host)
advertised.port=9092
私は2番目のホストからのメッセージを生成しようとすると、私は以下のメッセージが表示されますか?おかげさまで
すべてのブローカーを '--broker-list'に指定してみてください。このエラーは、プロデューサがブローカによってサービスされていないパーティションにメッセージを送信しようとしたときに表示されることがあります。 AFAIK、 'advertised。* 'の設定は廃止予定です。 –
両方のホストを '--broker-list'に置くと、私は同じエラーが表示されます。 – saloua
port、host.name、advertised.host.name、およびadvertised.portの設定は必要ありません。マシン外のクライアントがサービスが待機しているアドレスとは異なるアドレスを参照する場合にのみ、listersとadvertised.listenersを使用してください。次に、ブローカが実行されているマシンのプライベートIPに等しいブローカリストを使用してください。 –