8.7. 전용 모드에서 MirrorMaker 2.0 실행


MirrorMaker 2.0을 사용하여 구성을 통해 Kafka 클러스터 간에 데이터를 동기화합니다. 다음 절차에서는 전용 단일 노드 MirrorMaker 2.0 클러스터를 구성하고 실행하는 방법을 보여줍니다. 전용 클러스터는 Kafka Connect 작업자 노드를 사용하여 Kafka 클러스터 간에 데이터를 미러링합니다. 현재 전용 모드의 MirrorMaker 2.0은 단일 작업자 노드에서만 작동합니다.

참고

또한 분산 모드에서 MirrorMaker 2.0을 실행할 수도 있습니다. 분산 모드에서 MirrorMaker 2.0은 Kafka Connect 클러스터에서 커넥터로 실행됩니다. Kafka는 데이터 복제를 위한 MirrorMaker 소스 커넥터를 제공합니다. 전용 MirrorMaker 클러스터를 실행하는 대신 커넥터를 사용하려면 Kafka Connect 클러스터에서 커넥터를 구성해야 합니다. 자세한 내용은 Apache Kafka 설명서를 참조하십시오.

이전 버전의 MirrorMaker는 레거시 모드에서 MirrorMaker 2.0을 실행하여 계속 지원됩니다.

구성은 다음을 지정해야 합니다.

  • 각 Kafka 클러스터
  • TLS 인증을 포함하여 각 클러스터에 대한 연결 정보
  • 복제 흐름 및 방향

    • 클러스터 간 클러스터
    • 주제 주제
  • 복제 규칙
  • 커밋된 오프셋 추적 간격

다음 절차에서는 속성 파일에서 구성을 만든 다음 MirrorMaker 스크립트 파일을 사용하여 연결을 설정할 때 속성을 전달하여 MirrorMaker 2.0을 구현하는 방법을 설명합니다.

소스 클러스터에서 복제할 주제 및 소비자 그룹을 지정할 수 있습니다. 소스 및 대상 클러스터의 이름을 지정한 다음 복제할 주제 및 소비자 그룹을 지정합니다.

다음 예에서 클러스터 1에서 2까지의 복제를 위해 주제 및 소비자 그룹이 지정됩니다.

특정 주제 및 소비자 그룹을 복제하는 구성의 예

clusters=cluster-1,cluster-2
cluster-1->cluster-2.topics = topic-1, topic-2
cluster-1->cluster-2.groups = group-1, group-2

이름 목록을 제공하거나 정규식을 사용할 수 있습니다. 이러한 속성을 설정하지 않으면 기본적으로 모든 주제 및 소비자 그룹이 복제됩니다. 정규식으로 .* 를 사용하여 모든 주제 및 소비자 그룹을 복제할 수도 있습니다. 그러나 클러스터에 불필요한 추가 로드를 유발하지 않도록 하는 데 필요한 주제 및 소비자 그룹만 지정합니다.

사전 준비 사항

샘플 구성 속성 파일은 ./config/connect-mirror-maker.properties 로 제공됩니다.

사전 요구 사항

  • 복제하려는 각 Kafka 클러스터 노드의 호스트에 AMQ Streams가 설치되어 있어야 합니다.

프로세스

  1. 텍스트 편집기에서 샘플 속성 파일을 열거나 새 파일을 생성하고 각 Kafka 클러스터의 연결 정보 및 복제 흐름을 포함하도록 파일을 편집합니다.

    다음 예제에서는 두 클러스터, cluster-1cluster-2 를 양방향으로 연결하는 구성을 보여줍니다. 클러스터 이름은 클러스터 속성을 통해 구성할 있습니다.

    MirrorMaker 2.0 구성의 예

    clusters=cluster-1,cluster-2 1
    
    cluster-1.bootstrap.servers=<cluster_name>-kafka-bootstrap-<project_name_one>:443 2
    cluster-1.security.protocol=SSL 3
    cluster-1.ssl.truststore.password=<truststore_name>
    cluster-1.ssl.truststore.location=<path_to_truststore>/truststore.cluster-1.jks_
    cluster-1.ssl.keystore.password=<keystore_name>
    cluster-1.ssl.keystore.location=<path_to_keystore>/user.cluster-1.p12_
    
    cluster-2.bootstrap.servers=<cluster_name>-kafka-bootstrap-<project_name_two>:443 4
    cluster-2.security.protocol=SSL 5
    cluster-2.ssl.truststore.password=<truststore_name>
    cluster-2.ssl.truststore.location=<path_to_truststore>/truststore.cluster-2.jks_
    cluster-2.ssl.keystore.password=<keystore_name>
    cluster-2.ssl.keystore.location=<path_to_keystore>/user.cluster-2.p12_
    
    cluster-1->cluster-2.enabled=true 6
    cluster-2->cluster-1.enabled=true 7
    cluster-1->cluster-2.topics=.* 8
    cluster-2->cluster-1.topics=topic-1, topic-2 9
    cluster-1->cluster-2.groups=.* 10
    cluster-2->cluster-1.groups=group-1, group-2 11
    
    replication.policy.separator=- 12
    sync.topic.acls.enabled=false 13
    refresh.topics.interval.seconds=60 14
    refresh.groups.interval.seconds=60 15

    1
    각 Kafka 클러스터는 별칭으로 식별됩니다.
    2
    부트스트랩 주소 와 포트 443 을 사용하는 cluster-1 에 대한 연결 정보입니다. 두 클러스터 모두 포트 443 을 사용하여 OpenShift 경로를 사용하여 Kafka에 연결합니다.
    3
    ssl. 속성은 cluster-1 에 대한 TLS 구성을 정의합니다.
    4
    cluster-2 에 대한 연결 정보입니다.
    5
    ssl. 속성은 cluster-2 에 대한 TLS 구성을 정의합니다.
    6
    cluster-1 에서 cluster-2 로 복제 흐름이 활성화됩니다.
    7
    cluster-2 에서 cluster-1 로 복제 흐름이 활성화됩니다.
    8
    cluster-1 에서 cluster-2 로 모든 주제를 복제합니다. 소스 커넥터는 지정된 항목을 복제합니다. 체크포인트 커넥터는 지정된 항목에 대한 오프셋을 추적합니다.
    9
    cluster-2 에서 cluster-1 로 특정 주제의 복제.
    10
    cluster-1 에서 cluster-2 로 모든 소비자 그룹을 복제합니다. 체크포인트 커넥터는 지정된 소비자 그룹을 복제합니다.
    11
    cluster-2 에서 cluster-1 로 특정 소비자 그룹의 복제.
    12
    원격 주제의 이름 변경에 사용되는 구분자를 정의합니다.
    13
    활성화하면 ACL이 동기화된 항목에 적용됩니다. 기본값은 false입니다.
    14
    새 주제를 동기화할지 확인하는 기간입니다.
    15
    새 소비자 그룹이 동기화되는지 확인하는 기간입니다.
  2. OPTION: 필요한 경우 원격 주제의 자동 이름을 재정의하는 정책을 추가합니다. 소스 클러스터 이름이 있는 이름을 보류하는 대신 주제는 원래 이름을 유지합니다.

    이 선택적 설정은 활성/수동 백업 및 데이터 마이그레이션에 사용됩니다.

    replication.policy.class=org.apache.kafka.connect.mirror.IdentityReplicationPolicy
  3. OPTION: 소비자 그룹 오프셋을 동기화하려면 구성을 추가하여 동기화를 활성화하고 관리합니다.

    refresh.groups.interval.seconds=60
    sync.group.offsets.enabled=true 1
    sync.group.offsets.interval.seconds=60 2
    emit.checkpoints.interval.seconds=60 3
    1
    활성/수동 구성의 복구에 유용한 소비자 그룹 오프셋을 동기화하는 선택적 설정입니다. 동기화는 기본적으로 활성화되어 있지 않습니다.
    2
    소비자 그룹 오프셋의 동기화가 활성화된 경우 동기화 빈도를 조정할 수 있습니다.
    3
    오프셋 추적의 검사 빈도를 조정합니다. 오프셋 동기화의 빈도를 변경하는 경우 이러한 검사의 빈도를 조정해야 할 수도 있습니다.
  4. 대상 클러스터에서 Zoo Cryostat 및 Kafka를 시작합니다.

    su - kafka
    /opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
  5. 속성 파일에 정의된 클러스터 연결 구성 및 복제 정책으로 MirrorMaker를 시작합니다.

    /opt/kafka/bin/connect-mirror-maker.sh /config/connect-mirror-maker.properties

    MirrorMaker는 클러스터 간 연결을 설정합니다.

  6. 각 대상 클러스터에서 주제가 복제되고 있는지 확인합니다.

    /opt/kafka/bin/kafka-topics.sh --bootstrap-server <broker_address> --list
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.