목록 보기
Kafka와 Strimzi를 이용하여 6개의 도메인을 하나의 도메인으로 합쳐보았습니다
백엔드

Kafka와 Strimzi를 이용하여 6개의 도메인을 하나의 도메인으로 합쳐보았습니다

무신사
무신사
2024년 6월 27일

두줄요약

6개 도메인을 하나의 통합 모델로 옮기기 위해 Kafka, CDC, Kafka Streams 기반 마이그레이션 파이프라인을 구축했습니다. Strimzi Operator로 Kafka Connect를 관리하며 준실시간 데이터 통합과 재실행 가능성을 확보했습니다.

문제 상황

  • 6개 콘텐츠 도메인을 단일 도메인 모델로 통합해야 하는 레거시 마이그레이션 과제
  • API 추상화만으로는 분산 저장 데이터의 한계가 있어 필터·추천·생명주기 관리가 어려운 상황
  • 배치만으로는 준실시간 반영이 어렵고, 모든 도메인의 변경 추적을 코드로 심는 방식도 현실적으로 어려운 상황

원인 분석

  • Polyglot MSA 환경에서 다양한 언어와 서비스에 걸친 변경 추적의 복잡성
  • 루트 테이블과 파생 테이블이 많아 도메인 이벤트 기반 수집만으로는 부담이 큰 구조
  • RDBMS 재조회가 반복되는 배치 레이어는 리소스 낭비 가능성 존재

해결 방법

  • Strangler Fig Pattern을 기준으로 점진적 마이그레이션과 하위호환성 유지 선택
  • Kafka Connect와 Debezium CDC로 테이블 변경을 토픽으로 수집하고 Kafka Streams로 역정규화
  • Strimzi Operator로 Kafka Connect Cluster와 Connector를 쿠버네티스 CRD로 관리

성능/운영 포인트

  • 별도 배치 레이어 없이 소스 DB 부하를 줄이며 준실시간 처리 보장
  • 토픽 파티셔닝과 Consumer Offset으로 병렬 처리 및 At-Least Once 실행 활용
  • Data Replay를 위해 Incremental Snapshot, Offset 초기화, 재발행 흐름까지 구성

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...