강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김준환님의 프로필 이미지
김준환

작성한 질문수

비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)

[실습] 게시글 작성 API에 Saga 패턴 적용시키기 - 2

보상 트랜잭션을 위한 catch 문 안에서 에러가 발생한다면 어떻게 되는 건가요?

작성

·

13

·

수정됨

0

  • 만약 에러가 나서 보상 트랜잭션이 발생했는데 거기서 또 에러가 난다면 따로 모니터링 시스템 같은 걸 구축해서 추후에 수동으로 롤백을 시켜주어야하는 방식일까요? (동기식 일때 입니다!)

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 김준환님.

보상 트랜잭션을 구현할 때, 트랜잭션 내에서 추가적인 에러가 발생하는 상황은 종종 고민되는 부분입니다. 이를 어떻게 처리할지에 대해 몇 가지 방안을 설명드리겠습니다.

보상 트랜잭션 중 에러 발생 시 처리 방안

  1. 모니터링 시스템 구축: 보상 트랜잭션 중 에러가 발생할 경우, 해당 상황을 즉시 인지하고 대응할 수 있도록 모니터링 시스템을 구축하는 것이 필요합니다. 로그 수집 및 알림 기능을 가진 모니터링 툴(예: Prometheus, Grafana, ELK Stack)을 사용하여 에러 발생 시 알림을 받을 수 있습니다.

  2. 알림 및 알림 시스템: 에러가 발생하면 해당 정보가 관리팀에 전달되어 신속한 확인 및 처리가 가능하도록 알림 시스템을 구성하는 것이 중요합니다.

  3. 수동 롤백 지원: 보상 트랜잭션에서도 실패할 가능성이 있는 만큼, 운영팀이 수동으로 롤백을 조치할 수 있도록 위한 대기열 및 수동 처리를 위한 툴을 마련해 두는 것이 좋습니다.

  4. DLT(Dead Letter Topic) 활용: 에러가 발생한 메시지를 DLT로 보내어 추후에 특정한 조건이 만족될 때 해당 메시지를 재처리하는 방식으로도 설계할 수 있습니다. 이는 메시지 손실 없이 문제를 해결하고, 발생한 문제의 원인을 지속적으로 분석할 수 있도록 도와줍니다.

관련 질문 참고 링크

더 많은 정보를 얻고 싶으시다면 아래의 관련 질문들을 참고해 보시길 바랍니다:
- 보상 트랜잭션 실패 시 처리 방법
- Kafka 시스템에서의 트랜잭션 관리

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김준환님의 프로필 이미지
김준환

작성한 질문수

질문하기