각 노드가 별도의 브로커로 사용되는 2 노드 카프카 클러스터 (EC2 인스턴스)가 있습니다. 나는 다음과 같은 명령을 사용하여 리더 인스턴스의 프로듀서를 실행하면 :메시지를 생성 할 때 주제를 찾을 수 없습니다. UNKNOWN_TOPIC_OR_PARTITION
kafka-console-producer.sh --broker-list localhost:9092 --topic test
을 나는 다음과 같은 오류를 얻을.
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) ...
kaka-topics.sh
과 함께 항목을 나열하면 해당 항목이 있음을 알 수 있습니다.
와 주제에 대한 설명 : 나는 카프카 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
내가 두 번째 호스트에서 메시지를 생성 할 때 나는 아래의 메시지가? 감사합니다. .
'--broker-list'에 모든 브로커를 지정하십시오. 이 오류는 제작자가 브로커에서 제공하지 않는 파티션에 메시지를 보내려고 할 때 나타날 수 있습니다. AFAIK,'advertised. * '설정은 더 이상 사용되지 않습니다. –
두 호스트를'--broker-list'에 넣었을 때 나는 여전히 같은 오류가 발생합니다. – saloua
port, host.name, advertised.host.name 및 advertised.port 설정이 필요하지 않습니다. 시스템 외부의 클라이언트가 서비스가 수신 대기중인 주소와 다른 주소를 볼 경우에만 listers 및 advertised.listeners를 사용하십시오. 그런 다음 설정을 위해 브로커가 실행중인 시스템의 개인 IP와 동일한 브로커 목록을 사용하십시오. –