Debezium MSK Connect Failover 구현으로 서비스 중단 최소화!
by DD
1년 전
조회수 6
Debezium MSK Connect 장애 발생 시, Offset을 활용한 데이터 복구 및 신규 Connector 생성 방법을 제시함
Failover 발생 시, Custom Plugin과 AOP를 활용하여 데이터 정합성을 유지하는 기술을 소개함
Failover AOP를 통해 서비스 로직과 Failover 로직을 분리하여 서비스 안정성을 확보함
MSK Connector 장애 복구 전략
MSK Connector 장애 시, Offset 정보를 활용하여 데이터 손실을 방지한다. 구체적으로, 기존 Offset을 확인하고 신규 Connector를 생성하여 데이터 재처리를 수행한다. 따라서 데이터 정합성을 유지하며, Failover 상황에서도 안정적인 서비스 운영을 보장한다.
Failover 상황에서의 데이터 처리
Failover 발생 시, Custom Plugin을 통해 스냅샷 데이터를 처리한다. snapshot.select.statement.overrides 옵션을 사용하여 특정 테이블의 스냅샷 쿼리를 커스터마이징한다. 반면, op = "r" 상태의 데이터를 op = "f" 상태로 변환하여 변경된 필드를 생성하고, 데이터 무결성을 확보한다.
AOP를 활용한 Failover 로직 공통화
Failover 로직을 서비스 로직과 분리하기 위해 AOP를 적용한다. @Failover 어노테이션을 정의하고, 해당 서비스 실행 시 Failover 여부를 체크한다. 따라서, Failover 이벤트와 충돌 없이 서비스가 정상적으로 동작하도록 보장하며, 코드 중복을 줄여 유지보수성을 향상시킨다.