• Русский
  • Синхронизация данных

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

    Требования
    • Целевой кластер Kafka (этот экземпляр) должен быть пустым перед настройкой репликации, чтобы избежать конфликтов.
    • Исходные и целевые кластеры Kafka должны быть запущены
    • Наличие сетевого соединения между кластерами
    • Настроены соответствующие ACL, если включена безопасность

    Настройка синхронизации данных

    CLI
    Веб-консоль

    Включите синхронизацию через CLI:

    cat << EOF | kubectl -n default create -f -
    apiVersion: middleware.alauda.io/v1
    kind: RdsMirrorMaker2
    metadata:
     labels:
       middleware.alauda.io/cluster: my-cluster
     name: rdsmm2-sample
    spec:
     replicas: 2
     clusters:
       - bootstrapServers: source-cluster-kafka-bootstrap.yh-test:9093
     mirrors:
         - topicsPattern: ".*"
           groupsPattern: ".*"
           sourceConnector:
             tasksMax: 5
             config:
               replication.factor: '1'
               offset-syncs.topic.replication.factor: '1'
               sync.topic.acls.enabled: "false"
               refresh.topics.interval.seconds: '60'
               replication.policy.class: "org.apache.kafka.connect.mirror.IdentityReplicationPolicy"
           checkpointConnector:
             config:
               checkpoints.topic.replication.factor: '1'
               refresh.groups.interval.seconds: '600'
               sync.group.offsets.enabled: 'true'
               sync.group.offsets.interval.seconds: '60'
               emit.checkpoints.interval.seconds: '60'
               replication.policy.class: "org.apache.kafka.connect.mirror.IdentityReplicationPolicy"
     resources:
       limits:
         cpu: 1
         memory: 2Gi
       requests:
         cpu: 1
         memory: 2Gi
    
    EOF

    Мониторинг зеркалирования

    После успешного создания вы можете отслеживать синхронизацию данных в Веб-консоли:

    1. Перейдите на вкладку Синхронизация данных вашего экземпляра Kafka
    2. Просмотрите детали в двух разделах:
      • Конфигурация MirrorMaker2: отображает все детали конфигурации, включая:
        • Информацию об исходном и целевом кластерах
        • Настройки репликации
        • Распределение ресурсов
      • Топология: показывает статус передачи данных
    3. Для подробных метрик:
      • Нажмите кнопку Мониторинг рядом со статусом "Передача"
      • Просмотрите метрики в режиме реального времени на панели мониторинга
    Важные заметки
    1. Отслеживайте метрики задержки репликации на панели мониторинга
    2. При обновлениях планируйте кратковременные паузы в репликации

    Основные параметры конфигурации

    Конфигурация исходного коннектора

    ПараметрОписаниеПо умолчанию
    replication.factorФактор репликации для зеркалируемых тем (-1 использует значение по умолчанию кластера)-1
    offset-syncs.topic.replication.factorФактор репликации для темы синхронизации оффсетов (-1 использует значение по умолчанию кластера)-1
    sync.topic.acls.enabledВключена ли синхронизация ACL (фиксируется в false при включенном user-operator)false
    refresh.topics.interval.secondsЧастота проверки новых тем (в секундах)600
    replication.policy.classКласс политики репликацииorg.apache.kafka.connect.mirror.IdentityReplicationPolicy

    Конфигурация checkpoint-коннектора

    ПараметрОписаниеПо умолчанию
    checkpoints.topic.replication.factorФактор репликации для темы контрольных точек3
    refresh.groups.interval.secondsЧастота проверки новых групп потребителей (в секундах)600
    sync.group.offsets.enabledВключена ли синхронизация оффсетов групп потребителейtrue
    sync.group.offsets.interval.secondsЧастота синхронизации оффсетов групп потребителей (в секундах)60
    emit.checkpoints.interval.secondsЧастота отправки контрольных точек отслеживания оффсетов (в секундах)60
    Важные заметки
    1. sync.topic.acls.enabled принудительно устанавливается в false при включенном user-operator
    2. replication.policy.class использует IdentityReplicationPolicy для сохранения оригинальных имён тем
    3. Значения -1 для факторов репликации означают использование настроек по умолчанию кластера