9.2. MirrorMaker 2 커넥터 구성


Kafka 클러스터 간 데이터 동기화를 오케스트레이션하는 내부 커넥터에 대해 MirrorMaker 2 커넥터 구성을 사용합니다.

MirrorMaker 2는 다음 커넥터로 구성됩니다.

MirrorSourceConnector
소스 커넥터는 소스 클러스터에서 대상 클러스터로 주제를 복제합니다. 또한 ACL을 복제하고 MirrorCheckpointConnector 를 실행하는 데 필요합니다.
MirrorCheckpointConnector
체크포인트 커넥터는 주기적으로 오프셋을 추적합니다. 활성화하면 소스 클러스터와 대상 클러스터 간에 소비자 그룹 오프셋도 동기화합니다.
MirrorHeartbeatConnector
하트비트 커넥터는 소스 클러스터와 대상 클러스터 간의 연결을 주기적으로 확인합니다.

다음 표에서는 커넥터 속성과 이를 사용하도록 구성된 커넥터에 대해 설명합니다.

표 9.1. MirrorMaker 2 커넥터 구성 속성
속성sourceConnectorcheckpointConnectorheartbeatConnector
admin.timeout.ms
새 주제 감지와 같은 관리자 작업의 제한 시간입니다. 기본값은 60000 (1분)입니다.

replication.policy.class
원격 주제 이름 지정 규칙을 정의하는 정책입니다. 기본값은 org.apache.kafka.connect.mirror.DefaultReplicationPolicy 입니다.

replication.policy.separator
대상 클러스터에서 주제 이름 지정에 사용되는 구분 기호입니다. 기본적으로 구분 기호는 점(.)으로 설정됩니다. 구분 기호 구성은 원격 주제 이름을 정의하는 DefaultReplicationPolicy 복제 정책 클래스에만 적용할 수 있습니다. IdentityReplicationPolicy 클래스는 속성을 주제로 사용하여 원래 이름을 유지합니다.

consumer.poll.timeout.ms
소스 클러스터를 폴링할 때 제한 시간입니다. 기본값은 1000 초(1초)입니다.

 
offset-syncs.topic.location
소스 (기본값) 또는 대상 클러스터일 수 있는 offset-syncs 항목의 위치입니다.

 
topic.filter.class
주제 필터를 선택하여 복제할 항목을 선택합니다. 기본값은 org.apache.kafka.connect.mirror.DefaultTopicFilter 입니다.

 
config.property.filter.class
복제할 주제 구성 속성을 선택하는 주제 필터입니다. 기본값은 org.apache.kafka.connect.mirror.DefaultConfigPropertyFilter 입니다.

  
config.properties.exclude
복제해서는 안 되는 구성 속성을 주제로 설정합니다. 쉼표로 구분된 속성 이름과 정규식을 지원합니다.

  
offset.lag.max
원격 파티션이 동기화되기 전에 허용되는 최대(동기화되지 않음) 오프셋 지연. 기본값은 100 입니다.

  
offset-syncs.topic.replication.factor
내부 offset-syncs 주제의 복제 인수입니다. 기본값은 3 입니다.

  
refresh.topics.enabled
새 주제 및 파티션을 확인할 수 있습니다. 기본값은 true 입니다.

  
refresh.topics.interval.seconds
주제 새로 고침 빈도. 기본값은 600 (10분)입니다. 기본적으로 소스 클러스터의 새로운 주제는 10분마다 생성됩니다. 소스 커넥터 구성에 refresh.topics.interval.seconds 를 추가하여 빈도를 변경할 수 있습니다.

  
replication.factor
새로운 주제의 복제 요소. 기본값은 2 입니다.

  
sync.topic.acls.enabled
소스 클러스터에서 ACL의 동기화를 활성화합니다. 기본값은 true 입니다. 자세한 내용은 9.5절. “ACL 규칙 동기화”의 내용을 참조하십시오.

  
sync.topic.acls.interval.seconds
ACL 동기화 빈도입니다. 기본값은 600 (10분)입니다.

  
sync.topic.configs.enabled
소스 클러스터에서 주제 구성의 동기화를 활성화합니다. 기본값은 true 입니다.

  
sync.topic.configs.interval.seconds
주제 구성 동기화의 빈도입니다. 기본값 600 (10분).

  
checkpoints.topic.replication.factor
내부 체크포인트 항목에 대한 복제 인수입니다. 기본값은 3 입니다.
 

 
emit.checkpoints.enabled
대상 클러스터에 대한 소비자 오프셋의 동기화를 활성화합니다. 기본값은 true 입니다.
 

 
emit.checkpoints.interval.seconds
소비자 오프셋 동기화 빈도. 기본값은 60 분(1분)입니다.
 

 
group.filter.class
복제할 소비자 그룹을 선택하는 그룹 필터입니다. 기본값은 org.apache.kafka.connect.mirror.DefaultGroupFilter 입니다.
 

 
refresh.groups.enabled
새 소비자 그룹 검사를 활성화합니다. 기본값은 true 입니다.
 

 
refresh.groups.interval.seconds
소비자 그룹 새로 고침 빈도. 기본값은 600 (10분)입니다.
 

 
sync.group.offsets.enabled
대상 클러스터 __consumer_offsets 주제로 소비자 그룹 오프셋의 동기화를 활성화합니다. 기본값은 false 입니다.
 

 
sync.group.offsets.interval.seconds
소비자 그룹 오프셋 동기화의 빈도입니다. 기본값은 60 분(1분)입니다.
 

 
emit.heartbeats.enabled
대상 클러스터에서 연결 검사를 활성화합니다. 기본값은 true 입니다.
  

emit.heartbeats.interval.seconds
연결 확인 빈도입니다. 기본값은 1 초(1초)입니다.
  

heartbeats.topic.replication.factor
내부 하트비트 주제의 복제 요소. 기본값은 3 입니다.
  

9.2.1. 소비자 그룹 오프셋 주제의 위치 변경

MirrorMaker 2는 내부 주제를 사용하여 소비자 그룹의 오프셋을 추적합니다.

offset-syncs 주제
offset-syncs 주제는 레코드 메타데이터에서 복제된 주제 파티션의 소스 및 대상 오프셋을 매핑합니다.
Checkpoints 주제
Checkpoints 주제는 각 소비자 그룹의 복제된 주제 파티션에 대해 소스 및 대상 클러스터에 마지막으로 커밋된 오프셋을 매핑합니다.

MirrorMaker 2에서 내부적으로 사용하므로 이러한 주제와 직접 상호 작용하지 않습니다.

MirrorCheckpointConnector 는 오프셋 추적을 위한 체크포인트 를 내보냅니다. 체크포인트 항목에 대한 오프셋은 구성을 통해 미리 정해진 간격으로 추적됩니다. 두 항목 모두 장애 조치의 올바른 오프셋 위치에서 복제를 완전히 복원할 수 있습니다.

offset-syncs 주제의 위치는 기본적으로 소스 클러스터입니다. offset-syncs.topic.location 커넥터 구성을 사용하여 이를 대상 클러스터로 변경할 수 있습니다. 주제가 포함된 클러스터에 대한 읽기/쓰기 액세스 권한이 필요합니다. 대상 클러스터를 offset-syncs 주제의 위치로 사용하면 소스 클러스터에 대한 읽기 권한만 있는 경우에도 MirrorMaker 2를 사용할 수 있습니다.

9.2.2. 소비자 그룹 오프셋 동기화

__consumer_offsets 주제는 각 소비자 그룹에 대해 커밋된 오프셋에 대한 정보를 저장합니다. 오프셋 동기화는 소스 클러스터의 소비자 그룹에 대한 소비자 오프셋을 대상 클러스터의 소비자 오프셋 주제로 주기적으로 전송합니다.

오프셋 동기화는 특히 활성/수동 구성에서 유용합니다. 활성 클러스터가 다운되면 소비자 애플리케이션은 패시브(standby) 클러스터로 전환하고 마지막으로 전송된 오프셋 위치에서 선택할 수 있습니다.

주제 오프셋 동기화를 사용하려면 체크포인트 커넥터 구성에 sync.group.offsets.enabled 를 추가하고 속성을 true 로 설정하여 동기화를 활성화합니다. 동기화는 기본적으로 비활성화되어 있습니다.

소스 커넥터에서 IdentityReplicationPolicy 를 사용하는 경우 Checkpoint 커넥터 구성에서도 구성해야 합니다. 이렇게 하면 미러링된 소비자 오프셋이 올바른 항목에 적용됩니다.

소비자 오프셋은 대상 클러스터에서 활성 상태가 아닌 소비자 그룹에 대해서만 동기화됩니다. 소비자 그룹이 대상 클러스터에 있는 경우 동기화를 수행할 수 없으며 UNKNOWN_MEMBER_ID 오류가 반환됩니다.

활성화하면 소스 클러스터의 오프셋 동기화가 주기적으로 수행됩니다. checkpoint 커넥터 구성에 sync.group.offsets.interval.secondsemit.checkpoints.interval.seconds 를 추가하여 빈도를 변경할 수 있습니다. 속성은 소비자 그룹 오프셋이 동기화되는 빈도(초)와 오프셋 추적을 위해 내보낸 체크포인트의 빈도를 지정합니다. 두 속성의 기본값은 60초입니다. 기본적으로 10분마다 수행되는 refresh.groups.interval.seconds 속성을 사용하여 새 소비자 그룹의 점검 빈도를 변경할 수도 있습니다.

동기화는 시간 기반이므로 소비자가 수동 클러스터로 전환하면 메시지가 중복될 수 있습니다.

참고

Java로 작성된 애플리케이션이 있는 경우 RemoteClusterUtils.java 유틸리티를 사용하여 애플리케이션을 통해 오프셋을 동기화할 수 있습니다. 유틸리티는 체크포인트 항목에서 소비자 그룹의 원격 오프셋을 가져옵니다.

9.2.3. 하트비트 커넥터 사용 시기 결정

하트비트 커넥터는 하트비트를 내보내 소스와 대상 Kafka 클러스터 간의 연결을 확인합니다. 내부 하트비트 주제는 소스 클러스터에서 복제되므로 하트비트 커넥터를 소스 클러스터에 연결해야 합니다. 하트비트 주제는 대상 클러스터에 있으며 이를 통해 다음을 수행할 수 있습니다.

  • 데이터를 미러링하고 있는 모든 소스 클러스터 식별
  • 미러링 프로세스의 활성 및 대기 시간 확인

이로 인해 프로세스가 중단되거나 어떤 이유로든 중지되었는지 확인하는 데 도움이 됩니다. 하트비트 커넥터는 Kafka 클러스터 간의 미러링 프로세스를 모니터링하는 데 중요한 도구가 될 수 있지만 항상 사용할 필요는 없습니다. 예를 들어 배포에 네트워크 대기 시간이 짧고 또는 적은 수의 주제가 있는 경우 로그 메시지 또는 기타 모니터링 툴을 사용하여 미러링 프로세스를 모니터링하는 것이 좋습니다. 하트비트 커넥터를 사용하지 않으려면 MirrorMaker 2 구성에서 생략하면 됩니다.

9.2.4. MirrorMaker 2 커넥터 구성 조정

MirrorMaker 2 커넥터가 제대로 작동하도록 하려면 커넥터 간에 특정 구성 설정을 조정해야 합니다. 특히 다음 속성이 모든 적용 가능한 커넥터에서 동일한 값을 갖도록 합니다.

  • replication.policy.class
  • replication.policy.separator
  • offset-syncs.topic.location
  • topic.filter.class

예를 들어 replication.policy.class 의 값은 source, checkpoint, heartbeat 커넥터에 대해 동일해야 합니다. 설정이 일치하지 않거나 누락되면 데이터 복제 또는 오프셋 동기화에 문제가 발생하므로 동일한 설정으로 구성된 모든 관련 커넥터를 유지해야 합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.