Kafka кластер не работает, если брокер с ID = 0 не работает - PullRequest
0 голосов
/ 06 июня 2018

У меня есть кластер Kafka с 3-мя брокерами, настроенными следующим образом:

Broker-0 : broker.id=0 ; listeners=PLAINTEXT://localhost:9092 ; log.dirs=/opt/data/kafka/logs-0
Broker-1 : broker.id=1 ; listeners=PLAINTEXT://localhost:9093 ; log.dirs=/opt/data/kafka/logs-1
Broker-2 : broker.id=2 ; listeners=PLAINTEXT://localhost:9094 ; log.dirs=/opt/data/kafka/logs-2

Производитель нацелен на Broker-2 для публикации сообщений

sh-3.2# ./kafka-console-producer.sh --broker-list localhost:9094 --topic clusterTopic

Я начал тестирование со всеми брокерами иработает

sh-3.2# ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic clusterTopic
Topic:clusterTopic  PartitionCount:1    ReplicationFactor:3 Configs:
Topic: clusterTopic Partition: 0    Leader: 0   Replicas: 0,1,2 Isr: 2,0,1
sh-3.2#

На этом этапе все сообщения, опубликованные производителем, получены потребителем

Затем я убил Broker-0 (текущего лидера)

sh-3.2# ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic clusterTopic
Topic:clusterTopic  PartitionCount:1    ReplicationFactor:3 Configs:
Topic: clusterTopic Partition: 0    Leader: 1   Replicas: 0,1,2 Isr: 2,1
sh-3.2#

В этот момент потребитель не получает сообщений, опубликованных производителем.

Затем я включил обратно Broker-0

sh-3.2# ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic clusterTopic
Topic:clusterTopic  PartitionCount:1    ReplicationFactor:3 Configs:
Topic: clusterTopic Partition: 0    Leader: 1   Replicas: 0,1,2 Isr: 2,1,0
sh-3.2#

. В этот момент все сообщения, опубликованные производителемполучатель получает должным образом

Затем я убил Broker-1 (текущий лидер)

sh-3.2# ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic clusterTopic
Topic:clusterTopic  PartitionCount:1    ReplicationFactor:3 Configs:
Topic: clusterTopic Partition: 0    Leader: 0   Replicas: 0,1,2 Isr: 2,0
sh-3.2#

На этом этапе все сообщения, опубликованные производителем, все еще должным образом принимаются потребителем.

Почему поведение такого брокера отличается от брокера?

Обновление # 1

Я заметил кое-что полезное:

Когда я убиваю Брокера-1, я вижуна консоли потребителя появляется предупреждение (куча раз)

[2018-06-07 13:59:00,866] WARN [Consumer clientId=consumer-1, groupId=console-consumer-20882] Connection to node 1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

Но когда я убиваю Broker-0, я вижу эти предупреждения (кучу раз)

[2018-06-07 14:04:08,433] WARN [Consumer clientId=consumer-1, groupId=console-consumer-20882] Connection to node 2147483647 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2018-06-07 14:04:08,434] WARN [Consumer clientId=consumer-1, groupId=console-consumer-20882] Connection to node 0 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

IИнтересно, что это за брокер с ID = 2147483647?

...