Кафка: Могут ли потребители читать сообщения до того, как все реплики синхронизируются? - PullRequest
0 голосов
/ 28 февраля 2019

Я разрабатываю управляемую событиями распределенную систему.

Одно из событий, которое нам нужно распределить, требует 1 - Низкая задержка 2 - Высокая доступность

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

При чтении документации Kafka кажется, что потребителям нужно подождать, пока все реплики синхронизации раздела не применят сообщение к своему журналу, прежде чем потребители смогут прочитатьэто из любой реплики .

Правильно ли мое понимание?Если так, то есть ли способ обойти это

1 Ответ

0 голосов
/ 28 февраля 2019

Если настроен неправильно;потребители могут читать данные, которые еще не были записаны в реплику.

Согласно книга ,

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

Рекомендуемая конфигурация для min.insync.replicas зависит от типа приложения.Если вам нет дела до данных, то это может быть 1, если это важная часть информации, вам следует настроить ее на> 1.

Есть 2 вещи, о которых вы должны подумать:

  1. Это нормально, если продюсер не отправляет сообщение Кафке?(включить и забыть стратегию с ack = 0)
  2. Это нормально, если потребитель не читает сообщение?(если min.insync.replica = 1, то при отказе брокера вы можете потерять некоторые данные)
...