Apache Kafka потребляет из узла ISR

#apache-kafka #high-availability

#apache-kafka #высокая доступность

Вопрос:

Я понимаю концепцию лидеров и репликации данных в Kafka, но я не понимаю, почему потребители и производители всегда будут перенаправляться на главный узел при записи / чтении из раздела вместо возможности чтения из любого ISR (синхронизированной реплики)

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

Возможно ли чтение и запись в репликах узлов или потребители / производители всегда будут обращаться к главному узлу этого раздела?

Ответ №1:

В Кафке у нас есть концепция Лидера и Последователя для Разделения.

Все операции чтения / записи для определенного раздела выполняются через «Лидера» раздела, а «Последователь» синхронизируется с «Лидером» для получения обновлений.

В Kafka приложения-производители / потребители или любые клиентские приложения всегда будут связываться с «Лидером» раздела.

Если лидер по какой-либо причине умирает / отключается, новый лидер будет избран из ISR (список синхронизированных реплик)

ISR: Реплики / Подписчики, у которых есть все обновления или, другими словами, которые синхронизированы с Лидером, будут избраны в качестве нового лидера для раздела.

Более подробная информация: https://medium.com/nerd-for-tech/apache-kafka-quick-start-1edeef53773e

Комментарии:

1. Почему это так? В чем причина, по которой для раздела должен быть лидер вместо того, чтобы потребитель мог фактически использовать данные из любого раздела, поскольку все они все равно реплицируются? Я не понимаю, почему он централизован для одного «ведущего» узла вместо того, чтобы разрешать использование реплик.