Записывается ли запись в Kafka, когда существует несинхронизированная реплика и ACK = -1? - PullRequest
0 голосов
/ 21 марта 2019

работает confluent-kafka 3.3.1e Kafka 0.11.0x

  • У меня один раздел с репликами = 3.
  • Мой производитель работает с ack = -1
  • Раздел имеет 1 реплику из несинхронизированных
  • Максимальное время задержки реплики мс = 10000
  • Минимальное количество асинхронных реплик = 2

1) Будет ли записьполучить подтверждение от производителя, когда ack = -1

2) Как я могу получить обратно синхронизированную реплику в синхронизации?

1 Ответ

1 голос
/ 21 марта 2019

1) С помощью acks=-1 Кафка будет принимать записи, пока существует min.insync.replicas синхронных реплик.

Таким образом, если предположить, что min.insync.replicas равно 1 или 2 для вашей темы, с одной репликой внесинхронизации да, запись будет принята Кафкой

2) В обычном случае Кафка всегда пытается сохранить все реплики в синхронизации.Если этого не происходит, вы должны проверить посредника, на котором размещена несинхронизированная реплика, как что-то не так.Этот брокер работает?Это здорово?Это перегружено?Другие разделы в этом посреднике также не синхронизированы?

В старых версиях Kafka также были некоторые проблемы с репликацией, которые могли вызывать несинхронизированные реплики.Хороший обходной путь - принудительное переизбрание контроллера:

zookeeper-shell [ZK_HOST:ZK_POST] rmr /controller
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...