6.5. Kafka MirrorMaker 배포
Kafka MirrorMaker는 데이터 센터 내의 두 개 이상의 Kafka 클러스터 간에 데이터를 복제합니다. 이 프로세스를 Kafka 파티션 복제 개념과 혼동하지 않도록 미러링이라고 합니다. MirrorMaker는 소스 클러스터의 메시지를 사용하고 해당 메시지를 대상 클러스터에 다시 게시합니다.
클러스터 간에 데이터 복제는 다음이 필요한 시나리오를 지원합니다.
- 시스템 장애 발생 시 데이터 복구
- 중앙 집중식 분석을 위해 여러 소스 클러스터에서 데이터 통합
- 특정 클러스터에 대한 데이터 액세스 제한
- 대기 시간을 개선하기 위해 특정 위치에서 데이터 제공
6.5.1. OpenShift 클러스터에 Kafka MirrorMaker 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 Cluster Operator를 사용하여 Kafka MirrorMaker 클러스터를 OpenShift 클러스터에 배포하는 방법을 설명합니다.
배포에서는 YAML 파일을 사용하여 배포된 MirrorMaker 버전에 따라 KafkaMirrorMaker 또는 KafkaMirrorMaker2 리소스를 생성합니다.
Kafka MirrorMaker 1(문서의 MirrorMaker 라고도 함)은 Apache Kafka 3.0.0에서 더 이상 사용되지 않으며 Apache Kafka 4.0.0에서 제거됩니다. 결과적으로 Kafka MirrorMaker 1을 배포하는 데 사용되는 KafkaMirrorMaker 사용자 정의 리소스도 AMQ Streams에서 더 이상 사용되지 않습니다. Apache Kafka 4.0.0을 채택하면 KafkaMirrorMaker 리소스가 AMQ Streams에서 제거됩니다. 대신 KafkaMirrorMaker2 사용자 정의 리소스를 IdentityReplicationPolicy 와 함께 사용합니다.
AMQ Streams는 구성 파일 예제 를 제공합니다. 이 절차에서는 다음 예제 파일을 사용합니다.
-
examples/mirror-maker/kafka-mirror-maker.yaml -
examples/mirror-maker/kafka-mirror-maker-2.yaml
사전 요구 사항
절차
Kafka MirrorMaker를 OpenShift 클러스터에 배포합니다.
MirrorMaker의 경우:
oc apply -f examples/mirror-maker/kafka-mirror-maker.yamlMirrorMaker 2의 경우
oc apply -f examples/mirror-maker/kafka-mirror-maker-2.yaml배포 상태를 확인합니다.
oc get pods -n <my_cluster_operator_namespace>출력에 배포 이름과 준비 상태가 표시됩니다.
NAME READY STATUS RESTARTS my-mirror-maker-mirror-maker-<pod_id> 1/1 Running 1 my-mm2-cluster-mirrormaker2-<pod_id> 1/1 Running 1my-mirror-maker는 Kafka MirrorMaker 클러스터의 이름입니다.my-mm2-cluster는 Kafka MirrorMaker 2 클러스터의 이름입니다.Pod ID는 생성된 각 Pod를 식별합니다.
기본 배포를 사용하면 단일 MirrorMaker 또는 MirrorMaker 2 pod를 설치합니다.
READY에는 준비되거나 예상된 복제본 수가 표시됩니다.STATUS가Running으로 표시되면 배포가 성공적으로 수행됩니다.
6.5.2. Kafka MirrorMaker 클러스터 리소스 목록 링크 복사링크가 클립보드에 복사되었습니다!
다음 리소스는 OpenShift 클러스터의 Cluster Operator에 의해 생성됩니다.
- <mirror-maker-name>-mirror-maker
- Kafka MirrorMaker Pod 생성을 담당하는 배포입니다.
- <mirror-maker-name>-config
- Kafka MirrorMaker의 보조 구성이 포함된 ConfigMap은 Kafka 브로커 Pod에 의해 볼륨으로 마운트됩니다.
- <mirror-maker-name>-mirror-maker
- Kafka MirrorMaker 작업자 노드에 대해 구성된 Pod 중단 예산입니다.