должен ли брокер kafka зафиксировать диск перед тем, как потребитель сможет прочитать - PullRequest
1 голос
/ 15 марта 2019

Как только производитель отправляет сообщение брокеру, нужно ли брокеру выполнить сброс на диск, прежде чем он сможет сделать его доступным для потребителя? Или может быть отправлено непосредственно из кеш-памяти страниц перед фиксацией на диск.

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

1 Ответ

2 голосов
/ 15 марта 2019

Кафка поддерживает согласованность данных с помощью репликации.Система не будет согласованной, если данные передаются потребителю перед записью / сбросом, а затем лидер раздела теряется перед сбросом данных на диск.

Сообщения доступны потребителю только после того, как они были записаны в определенный сегмент раздела.

Сообщения могут быть прочитаны только из ведущего раздела, и могут быть прочитаны только те сообщения, которые имеютбыли реплицированы на все реплики in-sync. Мы получим пустой ответ, если попытаемся извлечь те сообщения, которые не реплицированы на репликах sync.

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

replica.lag.time.max.ms, replica.fetch.wait.max.ms и реплика.fetch.min.bytes

enter image description here

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