#apache-kafka
#apache-kafka
Вопрос:
Похоже, что реплики не будут переданы другим брокерам в случае сбоев брокера. Я создал простой тест, настроенный с 3 брокерами. Я создал тему с разделом = 13, реплики = 3.
Я отключил одного брокера (брокера 1), я вижу, что «ISR» и «Leader» были обновлены, чтобы отразить этот факт (хотя в списке реплик по-прежнему отображается идентификатор брокера брокера, который только что был закрыт).
Я загрузил другого совершенно нового брокера с идентификатором 4. На данный момент, я предполагал, что кафка может создавать реплики для этого брокера из вышеупомянутой темы, что не кажется таковым, по какой-либо причине?
Итак, почему Kafka не предназначен для создания реплики на других доступных машинах, если один из брокеров не работает, который содержит реплики. Он просто переключает флаг лидера
PS: Я понимаю из документации, что — реплики НЕ будут автоматически восстанавливаться сами по себе. Но, в чем причина, поскольку неявное предположение в распределенной системе заключается в создании реплик на доступных машинах, чтобы обойти тот факт, что некоторые из реплик недоступны.
Внимательно просматривая документацию
Кластер Kafka автоматически обнаружит любое завершение работы или сбой брокера и выберет новых лидеров для разделов на этом компьютере.
Подтверждает, что kafka ничего не будет делать в отношении создания дополнительных реплик, если брокер (ы) не работает.
-
какова была причина, по которой реплика не создается ни на одном доступном компьютере?
-
он вообще не будет создан? Если да, количество реплик может отличаться от исходного количества?
Ответ №1:
Это правильно, по дизайну Kafka не «автоматически лечит».
Перемещение реплик на новых брокеров может быть дорогостоящей операцией. Раздел может содержать терабайты данных, поэтому копирование между брокерами может увеличить нагрузку на кластер. Эта используемая пропускная способность не будет доступна пользователям.
Если вы используете достаточное количество реплик, нет никакого влияния на пользователя, когда брокер не работает. Кроме того, Кафка ожидает, что брокеры вернутся после сбоя. Таким образом, вместо начальной загрузки нового брокера с нуля синхронизация исходного брокера при его возврате является намного более дешевой операцией.
Существуют инструменты (например, круиз-контроль), которые могут автоматически «автоматически лечить» Kafka в некоторых условиях. Также, если вы ожидаете, что некоторые брокеры будут отключены в течение длительных периодов времени, вы можете переместить разделы другим брокерам, чтобы избежать пропуска реплики. Об этом говорится в разделе «Вывод брокеров из эксплуатации» в документах.
Комментарии:
1. итак, что означает, что если брокер не работает и никогда не возвращается (если только не вызывал его вручную или автоматически), это все?