Миграция в Центры событий Azure для экосистем Apache Kafka

В этом руководстве представлен четкий путь для переноса приложений Apache Kafka в Центры событий Azure. Центры событий предоставляют конечную точку, совместимую с Kafka, что позволяет подключать существующие клиенты Kafka только с изменениями конфигурации— не требуется никаких изменений кода.

Перед переносом

Проверка совместимости компонентов

Центры событий поддерживают большинство клиентских операций Kafka, но некоторые функции недоступны. Просмотрите эту таблицу, чтобы убедиться, что рабочая нагрузка совместима:

Функция Поддерживается Примечания.
Создание сообщений ✅ Да Стандартный API производителя
Потребление сообщений ✅ Да Стандартный API потребителей
Группы потребителей ✅ Да Поддерживается управление смещениями
Сжатие (gzip) ✅ Да Поддерживается только gzip
Реестр схем ✅ Да Использование реестра схем Azure
Kafka Connect ✅ Да См. интеграцию Kafka Connect
Сжатие (snappy, lz4, zstd) ✅ Да Используйте gzip или нет
Транзакции Kafka ✅ Да На стадии предварительного просмотра.

Полный список поддерживаемых операций см. в разделе "Центры событий" для Apache Kafka.

Оценка текущей установки Kafka

Перед миграцией задокументируйте существующую конфигурацию:

Item Что следует заметить Эквивалентные центры событий
Количество разделов Общий объем используемых разделов Центры событий (сопоставление 1:1)
Разделы на тему Число разделов Количество разделов на концентратор событий (можно увеличить после создания на уровнях "Премиум" или "Выделенный", но нельзя уменьшать)
Срок хранения Текущие параметры хранения 1-7 дней (стандартный), 1-90 дней (премиум/выделенный)
Throughput Пиковый МБ/сек Единицы пропускной способности или единицы обработки
Размер сообщения Максимальный размер сообщения 1 МБ (стандартный или премиум), 20 МБ (выделенный)
Тип сжатия snappy, lz4, gzip и т. д. Изменение на gzip или нет при использовании других типов

Выбор уровня Центров событий

Выберите уровень в зависимости от ваших требований:

Требование Рекомендуемый уровень
Разработка и тестирование, низкая пропускная способность Стандарт
Рабочие нагрузки Kafka, зональная избыточность, полная поддержка протокола Kafka Премиум
Высокая пропускная способность, большие сообщения (>1 МБ), выделенные ресурсы Dedicated

Это важно

Для полной совместимости протокола Kafka используйте уровень "Премиум " или "Выделенный ". Уровень "Стандартный" имеет ограничения, которые могут повлиять на некоторые рабочие нагрузки Kafka.

Подробные сведения о сравнении уровней см. в разделе "Цены на центры событий" и квоты.

Шаги миграции

Шаг 1. Создание ресурсов Центров событий

  1. Создание пространства имен: следуйте инструкциям по созданию пространства имен Центров событий
  2. Создание центров событий: создание одного концентратора событий для каждого раздела Kafka, который вы переносите
  3. Получить строку подключения: Следуйте инструкции Получить строку подключения

Запишите полное доменное имя пространства имен из строки подключения:

Endpoint=sb://NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=...

Полное доменное имя: NAMESPACE.servicebus.windows.net

Шаг 2. Обновление конфигурации клиента

Обновите конфигурацию клиента Kafka, чтобы подключиться к центрам событий. Найдите место, где bootstrap.servers определено в приложении, и примените следующие параметры:

bootstrap.servers=NAMESPACE.servicebus.windows.net:9093
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="YOUR_CONNECTION_STRING";

Замените:

  • NAMESPACE с именем пространства имен Центров событий
  • YOUR_CONNECTION_STRING с полной строкой подключения

Сведения о конфигурации для конкретной платформы и рекомендуемых параметрах см. в разделе "Конфигурации клиента Apache Kafka".

Шаг 3. Перенос существующих данных (необязательно)

Если вам нужно перенести исторические данные из существующего кластера Kafka в Центры событий, используйте Kafka MirrorMaker:

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

Шаг 4: Обновление потребительских смещений

Когда потребители подключаются к Event Hubs в первый раз, у них не будет существующих смещений. Настройте auto.offset.reset в соответствии с вашими потребностями.

Setting Поведение
earliest Начните чтение с начала доступных данных
latest Начать чтение только новых сообщений

Проверка миграции

Проверка подключения производителя

  1. Начните запуск приложения производителя с обновленной конфигурацией
  2. Отправка тестовых сообщений в Центры событий
  3. Подтвердите, что сообщения приходят на портал Azure:
    • Перейдите к пространству имен Event Hubs
    • Выберите Обзор>Метрики>Сообщения

Проверка подключения потребителей

  1. Запустите потребительское приложение с обновленной конфигурацией
  2. Подтверждение получения сообщений
  3. Мониторинг задержки потребителей с помощью Azure Monitor или метрик приложения

Проверка производительности

Сравните производительность с базовой базой данных:

Единица измерения Как проверить
Пропускная способность (МБ/с) Мониторинг входящих и исходящих байтов на портале Azure
Задержка Измерение времени доставки сообщений «от конца до конца» в вашем приложении.
Задержка для потребителей Проверка задержки группы потребителей на портале Azure или с помощью метрик потребителей Kafka

Сведения о оптимизации производительности см. в конфигурациях клиента Apache Kafka.

Деактивировать кластер Kafka

После успешной проверки:

  1. Параллельный мониторинг: запуск обеих систем в течение периода стабилизации
  2. Перенаправление всего трафика: обновите всех производителей и потребителей для использования Центров событий
  3. Проверка отсутствия трафика. Убедитесь, что кластер Kafka не имеет активных подключений
  4. Вывод из эксплуатации: завершение работы и удаление инфраструктуры Kafka

Устранение неполадок

При возникновении проблем во время миграции:

Проблема Resource
Ошибки подключения или проверки подлинности Руководство по устранению неполадок Apache Kafka
Проблемы с конфигурацией Конфигурации клиента Apache Kafka
Общие вопросы Часто задаваемые вопросы