시스템 디자인

[시스템디자인 4편] 카프카 무중단 전환

무대포 개발자 2024. 3. 18. 22:18
728x90
반응형

목차는 시스템 디자인 목차 에 있습니다.

TIL 형식으로 정리했습니다. 나중에 보기 위한 용도로 간단하게 정리했습니다.

[시스템디자인 4편] 카프카 무중단 전환

요약

  • 기존 카프카에 생성된 메시지와 신규 카프카에서 생성된 메시지의 데이터를 비교
  • 한 번에 바꾸는게 아니라 점진적으로 변경하는 방식으로 처리
    • ex) consumer 를 점진적으로 기존 → 신규 카프카로 교체

Transactional messaging

  • 비즈니스 로직과 이벤트 발행이 원자적으로 함께 실행하는 것을 의미
  • 구현 방법 2가지

Transactional outbox pattern

  • 구현 방식에 Polling Publisher, Transaction Log Tailing 있음
  • Polling Publisher 은 테이블을 Polling 해서 메시지를 publish
    • Polling 을 계속 하는 것이니 DB 부하가 있음
  • Transaction Log Tailing 은 DBMS 에서 트랜잭션 처리 후, 로그가 생성되는데, 로그에 대한 CDC (Change Data Capture) 를 구현
    • MySQL binlog 와 같은 것에 CDC 를 구현하고 그 결과를 바탕으로 메시지를 가공해서 publish 하는 작업 필요

참고