시스템 디자인
[시스템디자인 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 하는 작업 필요