Тестирование Kafka HA и получение NetworkException: сервер отключился до получения ответа - PullRequest
0 голосов
/ 04 апреля 2019

работает сообщество Confluent Kafka 4.1.1.

У меня есть ...

  • мин. Синхронизированные реплики = 2
  • Тема: 1 раздел, количество реплик 3
  • Всего 3 брокера.
  • Производитель установлен в acks = -1
  • Все остальные настройки производителя являются настройками по умолчанию.

Я запускаю свое приложение и, когда оно начинает записывать записи в Kafka Я специально выбрал одного из брокеров и сразу получаю: org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received.

На основании настроек выше. не должен ли продюсер write () преуспеть в этом и не выдать ошибку?

Разъяснение

  • Я специально убиваю брокера
  • Это, кажется, происходит только в том случае, если убит лидер-брокер?

1 Ответ

1 голос
/ 04 апреля 2019

Не видя полного конфига.и регистрировать сообщения, трудно сказать, все еще ..

В Кафке все записи проходят через раздел лидера.В вашей настройке из 3 брокеров вы убили 1. Таким образом, должна быть возможность успешно написать оставшимся 2 и получить подтверждение.Но если убитый брокер является лидером, это может привести к исключению.

Из документов:

acks = all Это означает, что руководитель будет ожидать полного набора синхронных реплик для подтверждения записи.Это гарантирует, что запись не будет потеряна, пока хотя бы одна синхронная реплика остается в живых.Это самая сильная доступная гарантия.

Вы можете в любом случае установить повторные попытки на значение выше 0 и посмотреть поведение - новый лидер должен быть выбран, и ваша запись в конечном итоге должна быть успешной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...