Kafka 입문·실전 - 3.3. [실습] Spring Boot로 재시도조차 실패한 메시지 사후 처리하기
- 카프카에서 재시도 실패한 메시지를 DLT(Dead Letter Topic)에 저장하는 것만으로는 문제 해결이 불가능하며, 저장된 메시지를 확인하고 조치를 취해야 함 🤔
- 현업에서는 DLT에 저장된 실패 메시지를 로그 시스템에 저장하여 장애 원인 추적 🕵️
- DLT에 메시지 적재 시 알림을 설정하여 관리자가 인지하도록 함 🚨
- 관리자는 로그를 통해 장애 원인을 분석하고 메시지 폐기 또는 수동 처리 여부를 결정 👨💼
- 메시지 수동 처리 방법으로는 원래 토픽으로 재전송, 메시지 폐기(로그 보관), 프로듀서 단에서 검증 로직 보완 등이 있음 🔄
- 잘못된 메시지는 프로듀서에서 검증하여 카프카에 유입되는 것을 방지하고, 사용자에게 빠른 실패 응답 제공 🚫
- 실제 코드에서는 DLT 토픽을 리스닝하는 컨슈머를 구현하여 로그 시스템 전송 및 알림 발송 로직을 추가 👩💻
- DLT 토픽에 메시지가 쌓이면 컨슈머가 해당 메시지를 처리하여 로그 시스템에 전송하고 슬랙으로 알림을 발송하는 것을 확인 ✉️
- 컨슈머가 메시지 처리 실패 후 재시도 실패 시 DLT 토픽으로 메시지를 전송하고, DLT 토픽 컨슈머가 이를 처리하는 과정을 실습함 ✅