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가 설치되어 있어야 합니다.
프로세스
텍스트 편집기에서 샘플 속성 파일을 열거나 새 파일을 생성하고 각 Kafka 클러스터의 연결 정보 및 복제 흐름을 포함하도록 파일을 편집합니다.
다음 예제에서는 두 클러스터, cluster-1 및 cluster-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
- 새 소비자 그룹이 동기화되는지 확인하는 기간입니다.
OPTION: 필요한 경우 원격 주제의 자동 이름을 재정의하는 정책을 추가합니다. 소스 클러스터 이름이 있는 이름을 보류하는 대신 주제는 원래 이름을 유지합니다.
이 선택적 설정은 활성/수동 백업 및 데이터 마이그레이션에 사용됩니다.
replication.policy.class=org.apache.kafka.connect.mirror.IdentityReplicationPolicy
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
대상 클러스터에서 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
속성 파일에 정의된 클러스터 연결 구성 및 복제 정책으로 MirrorMaker를 시작합니다.
/opt/kafka/bin/connect-mirror-maker.sh /config/connect-mirror-maker.properties
MirrorMaker는 클러스터 간 연결을 설정합니다.
각 대상 클러스터에서 주제가 복제되고 있는지 확인합니다.
/opt/kafka/bin/kafka-topics.sh --bootstrap-server <broker_address> --list