Topic can't be found when producing messages: UNKNOWN_TOPIC_OR_PARTITION

匿名 (未验证) 提交于 2019-12-03 03:10:03

问题:

I have a two-nodes kafka cluster (EC2 instances) where each node is used as a separate broker. When I run a producer on the leader instance with the following command:

kafka-console-producer.sh   --broker-list localhost:9092 --topic test 

I get the following errors.

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) ...

Listing the topics with kaka-topics.sh shows that the topic exists.

The description of the topic with:

kafka-topics.sh --zookeeper localhost:2181 --describe --topic test 

returns

 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 

I am using kafka 0.10.1.1.

server.propertes file contains:

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 

When I try to produce messages from the second host I get the message below:

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) ....

Can anyone please help? Thanks.

回答1:

Make the replication factor 2 for topic test and you won't get this exception anymore. Since you have a 2 broker cluster, execute the command below to produce messages:

kafka-console-producer.sh   --broker-list localhost:9092,localhost:9093 --topic test 

This will send messages to both of the brokers in the clusters.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!