보상 트랜잭션을 위한 catch 문 안에서 에러가 발생한다면 어떻게 되는 건가요?
95
작성한 질문수 3
만약 에러가 나서 보상 트랜잭션이 발생했는데 거기서 또 에러가 난다면 따로 모니터링 시스템 같은 걸 구축해서 추후에 수동으로 롤백을 시켜주어야하는 방식일까요? (동기식 일때 입니다!)
답변 2
0
안녕하세요 준환님 ! 질문 잘해주셨어요 !
질문해 주신 내용에 대해 답변드려볼게요 ~
말씀하신 대로 보상 트랜잭션(catch문 안의 로직)에서 에러가 발생하면
데이터 불일치 상태가 될 수 있어요 !
이건 실무에서도 굉장히 중요하게 다뤄지는 문제예요 !
이를 해결하기 위해 일반적으로 보상 트랜잭션이 실패했을 때 바로 포기하지 않고
일정 횟수만큼 재시도하는 로직을 넣어주는 방식을 많이 사용해요 !
그리고 같은 보상 트랜잭션을 여러 번 실행해도 결과가 동일하도록 멱등성을 보장하는 설계도 중요해요!
이렇게 하면 재시도를 해도 안전하게 처리할 수 있거든요 :)
그럼에도 불구하고 재시도까지 전부 실패한 경우에는 말씀하신 것처럼
모니터링 시스템에서 알림을 받고 운영자가 수동으로 데이터를 정리해주는 방식을 사용하기도 해요 !
실제로 수업자료에도 언급되어 있듯이,
Saga 패턴을 완벽하게 구현하려면 멱등성, 동시성 이슈, 격리성 문제 등을 추가로 고려해야 해요 !
이런 내용들은 기회가 된다면 MSA 후속 강의에서 따로 다룰 예정이에요 ~
추가로 궁금하신 점 있으시면 또 질문 남겨주세요~~
0
안녕하세요, 인프런 AI 인턴입니다. 김준환님.
보상 트랜잭션을 구현할 때, 트랜잭션 내에서 추가적인 에러가 발생하는 상황은 종종 고민되는 부분입니다. 이를 어떻게 처리할지에 대해 몇 가지 방안을 설명드리겠습니다.
보상 트랜잭션 중 에러 발생 시 처리 방안
모니터링 시스템 구축: 보상 트랜잭션 중 에러가 발생할 경우, 해당 상황을 즉시 인지하고 대응할 수 있도록 모니터링 시스템을 구축하는 것이 필요합니다. 로그 수집 및 알림 기능을 가진 모니터링 툴(예: Prometheus, Grafana, ELK Stack)을 사용하여 에러 발생 시 알림을 받을 수 있습니다.
알림 및 알림 시스템: 에러가 발생하면 해당 정보가 관리팀에 전달되어 신속한 확인 및 처리가 가능하도록 알림 시스템을 구성하는 것이 중요합니다.
수동 롤백 지원: 보상 트랜잭션에서도 실패할 가능성이 있는 만큼, 운영팀이 수동으로 롤백을 조치할 수 있도록 위한 대기열 및 수동 처리를 위한 툴을 마련해 두는 것이 좋습니다.
DLT(Dead Letter Topic) 활용: 에러가 발생한 메시지를 DLT로 보내어 추후에 특정한 조건이 만족될 때 해당 메시지를 재처리하는 방식으로도 설계할 수 있습니다. 이는 메시지 손실 없이 문제를 해결하고, 발생한 문제의 원인을 지속적으로 분석할 수 있도록 도와줍니다.
관련 질문 참고 링크
더 많은 정보를 얻고 싶으시다면 아래의 관련 질문들을 참고해 보시길 바랍니다:
- 보상 트랜잭션 실패 시 처리 방법
- Kafka 시스템에서의 트랜잭션 관리
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
부하 테스트 시 설정 관련 질문드립니다
1
9
1
강의 영상이 나오질 않습니다...
0
25
6
섹션 2
0
7
1
pub/sub의 연결 객체에 대해 질문 드립니다.
0
12
2
configserver 설정에러
0
6
2
LLM 서비스의 신뢰성
1
21
1
[📌문제풀이] Ingress에서 Gateway로 전환하기: gatewayclass 조회 안됨
0
21
2
Inner class로 Config를 지정하는 이유
0
21
1
Hive metastore setup중에 오류 발생
0
23
2
ArticleReadService 관련 질문
0
27
1
kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.
1
66
1
domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다
1
45
1
혹시 강의 내용하면서 실습했던 것을 개인 깃에다 올려도 될까요?
0
24
1
mtputty.com 사용하실 때 주의하세요(질문X/공유)
0
29
2
user-service jwt
0
82
2
MSA에서 서비스별 DB 작성에 관해
0
119
2
Microservice 에 DB 띄우기
0
105
2
MSA 프로젝트 요구사항 및 설계 에서의 FK
0
106
2
하나의 consumer에서 두가지 이상의 topic의 메세지를 받고자 할때 받는 메세지에 시간차와 상관없이 하나의 consumer에서 받을수 있나요?
0
116
2
카프카에서 발행한 이벤트를 처리중에 실패한 경우 보통 어떻게 처리하는지 궁금합니다
0
192
2
Kafka 비동기방식 적용하면서 질문 있습니다!
0
131
2
가용성에대한 질의..
0
104
2
궁금한게있어요..
0
112
2
MSA강의 보다 궁금해서 질문드립니다.
0
133
2





