Архитектура#

Corax Mirror Maker 2 (MM2) состоит из:

  • Source Connector — читает данные из исходного кластера и передает их в целевой кластер. После чтения сообщений, MirrorSourceTask передает их в MirrorSinkTask, который отвечает за запись данных в целевой кластер.

  • Sink Connector — передает/реплицирует данные в целевой кластер.

  • Source Task — синхронизирует смещения потребителей между исходным и целевым кластерами, что помогает в восстановлении после сбоя. Использует MirrorCheckpointConnector для сохранения контрольных точек смещений.

  • Sink Task — использует Kafka Producer для записи сообщений в топики целевого кластера. Поддерживает параллельную запись в несколько партиций, что позволяет масштабировать процесс репликации.

  • Heartbeat Connector — это коннектор, который управляет задачами MirrorHeartbeatTask. Коннектор создает и настраивает задачи MirrorHeartbeatTask, обеспечивая их выполнение и мониторинг.

  • Heartbeat Task — задача, которая отвечает за отправку сигналов (heartbeats) в удаленные кластеры, чтобы убедиться в их доступности.

  • Config Connector — управляет конфигурациями репликации, такие как количество потоков, топики для репликации и другие настройки. Обеспечивает возможность динамического изменения конфигурации без необходимости перезапуска процесса репликации. Контрольные точки сохраняются в специальном топике __consumer_offsets исходного кластера.

  • Config Task — задача, которая отвечает за управление конфигурациями репликации. Эта задача позволяет настраивать параметры репликации, такие как количество потоков, топики для репликации и другие настройки.

  • Checkpoint Connector — управляет задачами по сохранению контрольных точек для восстановления после сбоев.

  • Checkpoint Task — задача по сохранению контрольных точек для восстановления после сбоев.

  • MirrorOffsetSyncs — синхронизирует смещения потребителей между кластерами. Компонент помогает поддерживать соответствие между смещениями потребителей в исходном и целевом кластерах.

три основных блока:

  • Исходный кластер (Event Streams Source Cluster).

  • Kafka Connect Cluster (обработка).

  • Целевой кластер (Event Streams Target Cluster).

Соединения между компонентами показывают поток данных:

  • Источники данных (orders, heartbeats) попадают в соответствующие коннекторы.

  • Задачи обрабатывают данные и передают их в целевой кластер.

  • Различные служебные топики (mm2-configs, __consumer_offsets и др.) получают данные от соответствующих задач.

Концептуальная модель данных#

MM2 обеспечивает прозрачную репликацию всех элементов:

  • сообщения;

  • метаданные топиков;

  • группы потребителей;

  • контрольные точки смещения;

  • права доступа (ACL).