Выборы лидера Kafka Провал Zookeeper
Контроллер выбирает нового лидера из ISR для раздела, когда умирает текущий. Насколько я понимаю, эти данные сохраняются в Zookeeper. Что происходит, когда узел Zookeeper умирает во время этой записи? Может ли это означать, что некоторые брокеры могут по-прежнему иметь другого лидера для раздела, избранного новым лидером?
Я попытался покопаться в документации, но не нашел ничего удовлетворительного.
1 ответ
Насколько я понимаю, эти данные сохраняются в Zookeeper.
Да, этот набор ISR сохраняется в ZooKeeper при каждом изменении. ( Ссылка)
Что происходит, когда узел Zookeeper умирает во время этой записи?
Zookeeper работает на кворуме, то есть на большинстве серверов кластера. (См. Этот SO-ответ) (фрагмент ниже)
В кластере с 3 узлами большинство составляет 2 узла. Таким образом, вы можете допустить, чтобы только 1 узел не был синхронизирован одновременно.
В кластере из 5 узлов большинство составляет 3 узла. Таким образом, вы можете допустить, чтобы только 2 узла не были синхронизированы одновременно.
Пока есть большинство, решение принимается, и выборы лидера продолжаются.