Как лучше в Apache Kafka изменить состав кворума в хранилище метаданных?
Ссылка скопирована
По вводным: подскажите, как изменить состав кворума в кластере Apache Kafka 3.9.1, зафиксированный в хранилище метаданных без потери данных (возможно ли такое в принципе)? Кластер разделен на две части: ч.1 и ч.2. Нужно поднять ч.2 после отключения из сети ч.1.
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
1 ответ
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
Linux
Как диагностировать зависание RK3568 U-boot на Starting kernel?
1 ответ

В Kafka 3.9.1 с KRaft-кворумом состав контроллеров нельзя менять так же свободно, как список обычных брокеров. Метаданные кворума завязаны на controller.quorum.voters и storage metadata. Если одна часть кластера отключена, а вторая не имеет большинства контроллеров, “просто поднять ч.2” без потери данных может быть невозможно: кворум не сможет легитимно выбрать лидера.
Главное правило: для KRaft нужен majority quorum. Если было 3 controller voter, то для нормальной работы нужно 2. Если было 5 - нужно 3. Если в отключенной части осталась большая часть voter-ов, вторая часть не должна самовольно продолжать работу, иначе возможен split-brain.
Сначала нужно понять текущую конфигурацию:
grep -R "controller.quorum.voters" /path/to/kafka/config grep -R "process.roles" /path/to/kafka/config kafka-metadata-quorum.sh --bootstrap-server broker:9092 describe --status kafka-metadata-quorum.sh --bootstrap-server broker:9092 describe --replication
Если кворум доступен, изменение состава нужно делать штатной процедурой для KRaft reconfiguration, с поэтапным добавлением/удалением voter-ов и сохранением большинства на каждом шаге. Если кворума уже нет, это аварийное восстановление, и там сначала выбирают: сохранить данные любой ценой или поднять часть кластера с риском потери последних metadata changes.
Чего не стоит делать: вручную править meta.properties, копировать storage directory между узлами без понимания cluster.id/node.id, запускать две независимые половины с одинаковым cluster.id и разными метаданными. Это прямой путь к трудноисправимому состоянию.
Если задача - плановая миграция контроллеров, делайте ее при живом большинстве: добавили новый controller, дождались синхронизации, удалили старый voter, проверили quorum status. Если это авария после отключения ч.1, сначала восстановите связь хотя бы с большинством старых controller-ов. Если это невозможно, готовьтесь к процедуре disaster recovery из бэкапа metadata log и четко фиксируйте, какие данные могут быть потеряны.