Миграция Apache Kafka с ZooKeeper на KRaft
KRaft заменяет ZooKeeper собственным механизмом консенсуса Kafka для хранения и распространения метаданных кластера. Миграция требует больше внимания, чем переключение одного параметра: брокеры проходят несколько режимов, контроллеры KRaft сначала получают копию метаданных, затем становятся основными, а финализация закрывает путь возврата к ZooKeeper. Мы делаем каждый переход наблюдаемым и сверяем состояние теми же клиентскими сценариями.
Когда стоит обратиться
Обычно к нам обращаются в таких ситуациях:
- Кластер использует ZooKeeper, а команда планирует Kafka 4.x, где режим KRaft является основным способом управления метаданными.
- Отдельный ансамбль ZooKeeper усложняет обновления, мониторинг и аварийные инструкции, особенно при распределённой ответственности команд.
- Потоки сообщений критичны для заказов или отчётности, поэтому миграции нужна репетиция, контроль клиентов и понятная точка финализации.
Что именно мы сделаем
Инвентаризируем брокеры, ZooKeeper, topics, ACL, listeners, версии протокола, clients и систему мониторинга.
Приводим кластер к версии-мосту, создаём KRaft controllers и проверяем quorum отдельно от клиентского трафика.
Запускаем миграционный режим, наблюдаем перенос метаданных и сверяем topics, partitions, лидеров и права доступа.
Переключаем управление на KRaft, проводим тесты producers и consumers, отказа брокера и контроллера.
После выбранного периода стабильности финализируем переход и передаём конфигурацию, журнал и инструкции.
Что входит в стоимость
69 900 ₽ за всю работу
Сначала определяем версию Kafka, роли брокеров, состояние ZooKeeper, контроллеры, listeners, безопасность и совместимость клиентов. Для существующего кластера используем официальный мост версии 3.9 и фазовый процесс миграции в KRaft, затем выполняем финализацию только после контрольных прогонов. Учитываем уникальный cluster ID, controller quorum voters или dynamic quorum, отдельный controller listener, metadata.version, конфигурацию ACL, мониторинг и резервную копию критичных настроек.
Что будет готово
Передадим вам
- Рабочий KRaft quorum и переведённые брокеры с выбранными listeners, безопасностью и параметрами метаданных.
- Сравнительный реестр topics, partitions, ACL и configs до и после перехода, журнал каждой миграционной фазы.
- Контрольные сценарии producers и consumers, мониторинг controllers и инструкция эксплуатации кластера KRaft.
Перед сдачей проверим
- KRaft quorum стабилен, активный controller виден в метриках, а брокеры зарегистрированы с ожидаемыми ролями и версиями метаданных.
- Topics, partitions, лидеры, ISR, ACL и выбранные configs совпадают с исходным реестром после миграции.
- Контрольные приложения публикуют и читают сообщения, consumer group восстанавливается после перезапуска компонента, журнал фиксирует результат.
Как это выглядит на практике
Поток заказов сохраняет сообщения во время перехода
- 01
Три брокера обслуживают события заказов, а ZooKeeper хранит метаданные topics и прав сервисных учётных записей.
- 02
Рядом запускается quorum из трёх KRaft controllers, который синхронизирует метаданные в миграционном режиме.
- 03
Брокеры обновляются по одному, контрольный producer записывает маркированные события, consumer сверяет порядок и количество.
- 04
После периода стабильной работы переход финализируется, ZooKeeper выводится из маршрута, а мониторинг продолжает наблюдать controllers, ISR и lag.
Что понадобится для работы
От вас
- Версии Kafka и ZooKeeper, конфигурации брокеров, схема размещения, доступ к метрикам и безопасному административному клиенту.
- Перечень критичных topics, producers, consumers, ACL, владельцев потоков и допустимое окно последовательных перезапусков.
- Тестовые клиентские учётные записи, правила TLS или SASL и возможность развернуть controllers на выбранных узлах.
Если у вас немного другая ситуация
Небольшие уточнения, которые помогают довести согласованный результат до рабочего состояния, уже учитываем в цене. Если по ходу работы появится отдельный крупный блок или понадобится платная лицензия, сначала обсудим варианты и стоимость. Расскажите о своей ситуации — подстроим план под неё.
- 3 000 ₽после подписания договора через Диадок
- 66 900 ₽после выполнения, демонстрации и приёмки результата
Предоплата входит в общую стоимость. Оставшуюся сумму оплачиваете после демонстрации и приёмки готовой работы.
Часто спрашивают
Об этой услуге
Почему для перехода используется Kafka 3.9?
Официальный маршрут миграции ZooKeeper в KRaft проходит через ветку 3.9. Она служит мостом перед дальнейшим обновлением на Kafka 4.x.
Что такое KRaft controller quorum?
Это группа контроллеров Kafka, которая согласованно хранит метаданные кластера: brokers, topics, partitions, configs и права, связанные с работой платформы.
Продолжат ли клиенты видеть прежние bootstrap servers?
Обычно клиентские listeners сохраняются. Мы отдельно проверяем DNS, сертификаты, SASL, версии библиотек и реальные produce и consume для каждого критичного приложения.
Когда выполняется финализация миграции?
После сверки метаданных, тестов отказа и выбранного периода стабильной работы. Финализация закрепляет KRaft, поэтому решение фиксируется отдельным контрольным пунктом.
Как проверяются ACL после перехода?
Выгружаем исходный список, сравниваем его с KRaft и запускаем разрешённые и запрещённые действия тестовыми учётными записями producers и consumers.
Проверяется ли отказ одного controller?
Да. В тестовом или выбранном рабочем окне останавливаем один controller и подтверждаем выбор лидера, доступность quorum и продолжение клиентских операций.
Можно одновременно обновить клиентские приложения?
Клиенты оцениваются заранее. Совместимые приложения остаются на своём выпуске, а требующие изменения получают отдельную очередь обновления и контрольные сценарии.
Что получает команда эксплуатации?
Команда получает конфигурацию ролей и listeners, метрики quorum, реестр сверки, журнал фаз, сценарии проверки и порядок действий при сбое компонента.
Цена и изменения по ходу работы
Цена на странице окончательная?
Да. Перед началом мы сверяем исходные данные и фиксируем результат в договоре. Указанная на странице сумма покрывает согласованную работу целиком, даже если её техническая реализация потребует больше времени, чем ожидалось при оценке.
Что означает резерв незапланированных работ?
Это уже включённый в цену запас времени на небольшие связанные уточнения заказчика, которые появляются после старта: например, добавить поле, изменить формат уведомления или учесть ещё одно условие обработки.
Резерв рассчитывается по формуле: стоимость услуги × 30% ÷ 1 500 ₽. Для услуги за 30 000 ₽ это 6 часов. Эти часы относятся только к дополнительным, заранее незапланированным уточнениям. Они не являются сроком проекта и не ограничивают время на основную работу: согласованный результат мы выполняем полностью.
Можно уточнять детали уже во время работы?
Да. Небольшие связанные изменения обычно помещаются во включённый резерв и не требуют доплаты. Если новая идея заметно меняет результат или превращается в самостоятельную задачу, сначала обсудим подход и стоимость. Любое решение согласуем до выполнения.
Начало работы и оплата
Как оформляются договор и оплата?
Подписываем договор через Диадок. Предоплата составляет 3 000 ₽ и входит в общую стоимость услуги. Остаток оплачивается после демонстрации и приёмки готового результата.
Когда начинается срок выполнения?
Срок отсчитывается после согласования задачи, получения необходимых доступов и материалов, подписания договора и поступления предоплаты. Конкретную дату старта и плановый день готовности подтверждаем перед началом.
Как учитываются платные лицензии и внешние сервисы?
До старта проверяем, нужны ли тарифы, лицензии, сертификаты или дополнительные ресурсы внешних систем. Если они потребуются, заранее покажем варианты и стоимость. По возможности аккаунты и лицензии оформляются сразу на заказчика.
Проверка результата и гарантия
Как принимается готовая работа?
Вместе проверяем согласованные сценарии на контрольных данных или тестовой копии, а затем демонстрируем результат. Для интеграций сверяем передачу данных и обработку ошибок, для сайта — работу нужных страниц и действий пользователя, для отчёта — расчёты и обновление данных.
Какая гарантия действует после сдачи?
На выполненные изменения действует гарантия 3 месяца. Если в изменённой нами части обнаружится ошибка нашей реализации, проверим и исправим её без дополнительной оплаты. Переданные материалы, настройки и код остаются у заказчика.
Связанные шаги
- 01CDC из MySQL или PostgreSQL через Debezium
Настроить CDC через Debezium
- 02Миграция Apache Kafka с ZooKeeper на KRaft
Перевести метаданные на KRaft
- 03Data Contracts и Schema Registry для обмена данными
Закрепить контракты событий в Schema Registry