Debezium MSK Connect로 Failover를 구현하여 서비스 안정성 높이기
·2024.11.07 19:00
Debezium MSK Connect 운영 중 장애 발생 시 Offset 활용 및 신규 Connector 생성을 통한 데이터 정합성 유지 방법을 공유한다.
Debezium MSK Connect를 운영하며 발생할 수 있는 장애 상황에 대비해 모니터링 및 알람 시스템을 구축했습니다. heartbeat.interval.ms 옵션을 활용한 Topic Heartbeat 기능을 통해 연결 상태를 주기적으로 확인하고, 이상 발생 시 Slack으로 알림을 보내는 온콜 시스템을 운영합니다.
Connector 장애 시에는 Offset을 활용해 특정 시점부터 데이터를 재처리함으로써 데이터 일관성을 확보합니다. 만약 Offset 복구가 불가능한 상황이라면, 기존 토픽의 데이터를 원하는 기간만큼 재발행하여 데이터를 보정하는 방식으로 신규 Connector를 생성합니다.
또한, 메시지 처리 순서가 보장되지 않는 문제를 해결하기 위해 다음과 같은 전략을 사용합니다.
- Consumer Worker 구성: MSK에서 수신한 메시지를 변환하여 신규 시스템에 저장
- AOP 적용: 메시지 수정 시간을 비교하여 최신 메시지만 처리하도록 설정
- Custom SQL 활용:
snapshot.select.statement.overrides옵션으로 Failover 시 필요한 데이터만 선택적으로 스냅샷
이러한 Failover 프로세스는 서비스 중단을 최소화하고 데이터 무결성을 유지하여 시스템의 신뢰성을 높이는 데 핵심적인 역할을 합니다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.