Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 스프링
- spring boot
- 코드
- 애자일기법
- Baekjoon
- database
- cleancode
- API
- Java
- 프레임워크
- 알고리즘
- 그리디
- 백준
- 데이터베이스
- 개발자
- 클린코드
- 개발
- 엘라스틱서치
- 코딩
- ES
- 읽기쉬운코드
- 애자일프로그래밍
- 자바
- 그리디알고리즘
- Elasticsearch
- 애자일
- JPA
- Spring
- 코딩테스트
- framework
Archives
- Today
- Total
튼튼발자 개발 성장기🏋️
Kafka MirrorMaker 2 본문
반응형
Apache Kafka MirrorMaker 2 (MM2)는 클러스터 간 데이터 복제 및 동기화를 위해 사용하는 도구다. 이는 주로 다중 데이터 센터 간의 데이터 복제, 지리적으로 분산된 클러스터 구성 및 고가용성 아키텍처 구현에 사용된다. MirrorMaker 2는 Kafka Connect 프레임워크 위에서 작동하며, 기존 MirrorMaker의 한계를 개선한 버전이다.
미러메이커2를 활용한 단방향 토픽 복제
단방향 토픽 복제는 데이터가 원본 클러스터에서 복제 클러스터로 한 방향으로만 전송되는 복제 방식이다. 이 방식은 주로 백업, 데이터 이관, 또는 특정 지역의 데이터 처리 요구를 충족시키기 위해 사용된다.
- 구성 방법:
- 원본 Kafka 클러스터와 복제할 Kafka 클러스터를 설정
- MirrorMaker 2의 source.cluster.alias와 target.cluster.alias를 각각 설정하여 원본 클러스터와 복제 클러스터를 지정
- replication.policy.class를 설정하여 토픽 이름의 변환 규칙을 설정할 수 있다. 예를 들어, org.apache.kafka.connect.mirror.DefaultReplicationPolicy를 사용하면 복제된 토픽의 이름이 원본 클러스터와 동일하게 유지된다.
- 특징:
- 원본 클러스터에서 발생하는 모든 데이터 변경 사항이 복제 클러스터로 즉시 전송된다.
- 복제 클러스터는 데이터 소비만 하며, 원본 클러스터로 데이터가 역으로 전송되지 않는다.
미러메이커2를 활용한 지리적 복제
지리적 복제는 물리적으로 분리된 여러 데이터 센터 간에 Kafka 데이터를 복제하는 전략이다. 이는 재해 복구, 지연 감소 및 지역별 데이터 소비 요구를 충족하기 위해 필수적이다.
- 구성 방법:
- 각 지리적 위치에 Kafka 클러스터를 설치하고, MirrorMaker 2를 사용하여 클러스터 간 데이터를 복제
- 각 지리적 클러스터에 대한 연결 정보를 제공하고, 토픽 및 소비자 그룹을 포함한 메타데이터를 동기화
- MirrorMaker 2에서 active.active.replication 설정을 통해 양방향 복제 구성도 가능하지만, 지리적 복제에서는 주로 단방향 복제를 많이 사용
- 특징:
- 데이터가 각 지역에 분산되어 있어 특정 지역의 클러스터가 다운되더라도 다른 지역의 클러스터가 데이터 가용성을 유지할 수 있다.
- 네트워크 지연이 중요한 요소이며, 이를 최소화하기 위한 네트워크 구성 및 데이터 압축 옵션을 고려해야 한다.
액티브-스탠바이 클러스터 운영
액티브-스탠바이 클러스터 운영은 한 클러스터가 주요 작업을 처리하고, 다른 클러스터는 백업 역할을 하는 구조다. 주로 재해 복구 및 고가용성 보장을 위해 사용한다.
- 구성 방법:
- 주 클러스터(A)와 스탠바이 클러스터(B)를 구성하고, MirrorMaker 2를 사용하여 A에서 B로 데이터를 복제한다.
- 스탠바이 클러스터는 평상시에는 데이터를 소비하지 않지만, 주 클러스터가 다운되면 스탠바이 클러스터가 활성화되어 데이터를 제공할 수 있도록 구성한다.
- 주 클러스터 복구 시, 데이터를 다시 주 클러스터로 복제하여 일관성을 유지한다.
- 특징:
- 장애 발생 시 데이터 손실을 최소화하며, 스탠바이 클러스터가 자동으로 작업을 인계받을 수 있다.
- 스탠바이 클러스터의 데이터는 지속적으로 최신 상태로 유지된다.
액티브-액티브 클러스터 운영
액티브-액티브 클러스터 운영은 두 개 이상의 클러스터가 동시에 데이터를 처리하고 상호 복제를 통해 일관성을 유지하는 구조다. 이는 고가용성과 데이터 일관성, 그리고 더 나은 성능을 제공하기 위해 사용된다.
- 구성 방법:
- 두 클러스터가 모두 활성 상태로 데이터를 처리할 수 있도록 설정한다.
- MirrorMaker 2를 사용하여 클러스터 간의 양방향 복제를 설정한다.
- 각 클러스터에서 동일한 토픽과 파티션 구조를 유지하며, 데이터 일관성을 보장하기 위해 적절한 충돌 해결 전략을 적용한다.
- 특징:
- 두 클러스터가 동시에 데이터를 처리하므로 데이터 처리량이 향상된다.
- 한 클러스터의 장애 발생 시 다른 클러스터가 즉시 대응할 수 있어 고가용성을 보장한다.
- 데이터 충돌 및 일관성 문제가 발생할 수 있으므로 이를 해결하기 위한 추가적인 복제 정책 및 충돌 해결 로직이 필요하다.
허브 앤 스포크 클러스터 운영
허브 앤 스포크 클러스터 운영은 중앙 허브 클러스터가 여러 스포크 클러스터와 데이터를 교환하는 구조다. 이는 중앙 집중형 데이터 수집 및 배포에 유용하다.
- 구성 방법:
- 중앙 허브 클러스터를 설정하고, 여러 스포크 클러스터를 이와 연결한다.
- MirrorMaker 2를 사용하여 허브 클러스터와 각 스포크 클러스터 간의 데이터를 복제한다.
- 허브 클러스터가 주요 데이터 처리 및 저장소 역할을 수행하며, 스포크 클러스터는 각 지역 또는 부서의 데이터 소비 요구를 충족한다.
- 특징:
- 중앙에서 모든 데이터를 관리할 수 있어 통합된 데이터 관리가 가능하다.
- 각 스포크 클러스터는 지역 또는 특정 기능에 특화된 데이터 소비를 수행할 수 있다.
- 허브 클러스터의 장애가 전체 시스템에 영향을 미칠 수 있으므로 고가용성 및 재해 복구 전략을 반드시 고려해야 한다.
반응형