Коэффициент увеличения реплики кластера Кафки не работает

Привет, я столкнулся со странной проблемой с увеличением коэффициента репликации Кафки при выполнении шагов в этом документе: https://kafka.apache.org/documentation/

Симптом выглядит так, что увеличение коэффициента репликации не работает вообще.

Пожалуйста помоги

Моя настройка Кафки

Кафка версия: кафка_2.12-2.1.0

Сервер: имя хоста server-0 (192.168.0.1)

  • Kafka Broker Id: 0
  • Порт Кафка: 9092
  • Порт зоопарка: 2181

Сервер: имя хоста сервер-1 (192.168.0.2)

  • Kafka Broker Id: 1
  • Порт Кафка: 9092
  • Нет Zookeeper на сервере-1

темы

  • Количество тем: 1
  • Название темы: ДАННЫЕ
  • Количество разделов: 1

Тема DATA создается только с репликой-фактором 1 с сервера-0

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic DATA

результат выглядит

bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic DATA Topic:DATA PartitionCount:1 ReplicationFactor:1 Configs: Topic: DATA Partition: 0 Leader: 0 Replicas: 0 Isr: 0

после создания темы я выдал несколько тестовых сообщений

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic DATA message 1 message 2

Затем фактор реплики для темы DATA увеличивается до 2 путем запуска команд только на сервере 0.

ниже файл json используется с Kafka-reassign-partitions.sh для увеличения коэффициента репликации

{ "version":1, "partitions":[ {"topic":"DATA","partition":0,"replicas":[0,1]} ] }

командная строка:

bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file topics-to-expand.json --execute

На первый взгляд, результат выглядит хорошо, описывая темы

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

Я произвел еще несколько тестовых сообщений здесь

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic DATA message 3 message 4

Однако проблема возникает, когда я пытался проверить с сервера-1

Теперь я убил процесс кафки с сервера-0

kill -9 [kafka-pid]

Проблема возникает, когда я запускаю консоль-потребителя с сервера-1

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic DATA --from-beginning

Там нет сообщений, и консоль просто блокируется на пустом экране.

Я думаю, в соответствии с документом, я должен быть в состоянии видеть сообщения, потому что реплика синхронизирована? Нет?

Описание темы показывает

bin/kafka-topics.sh --zookeeper server-0:2181 --describe --topic DATA Topic:DATA PartitionCount:1 ReplicationFactor:2 Configs: Topic: DATA Partition: 0 Leader: 1 Replicas: 0,1 Isr: 1

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

message 1 message 2 message 3 message 4

Похоже, что потребитель с сервера-1 не использовал локально данные с сервера-1, потому что данные тем не реплицируются на сервер-1. Вместо этого он по-прежнему ожидает возвращения сервера 0 для предоставления данных. Даже сервер-1 помечен как лидер.

Кто-нибудь может повторить мою проблему? Я хочу прикрепить свои свойства, но я не знаю, как прикрепить файлы в stackru, извините за это...

1 ответ

Вдохновленный этим постом и выяснил, почему.

Уничтожение узла с помощью __consumer_offsets не приводит к потреблению сообщений у потребителей

Причина моего вышеуказанного симптома заключается в том, что по умолчанию offsets.topic.replication.factor=3 но у меня есть только 2 брокера (узлы) в кластере. Когда Кафка впервые создал __consumer_offsets тема, она не возвращается offsets.topic.replication.factor=1 тихо (яки).

изменения offsets.topic.replication.factor=2 в файле свойств решает вышеуказанную проблему. (да проверено!)

Другие вопросы по тегам