Архитектура#
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).