← 질문 목록
#53깊이 0

재시도가 있는 시스템에서 멱등성이 필요한 이유는?

아키텍처 · 분산시스템기초장애 대응

같은 요청이 두 번 도착하기 때문이다. 응답만 유실돼도 클라이언트는 실패로 보고 다시 보내는데, 서버 입장에서는 새 요청과 구별되지 않는다.

  1. 1. 클라이언트에서 서버로: 결제 요청
  2. 2. 서버에서 클라이언트로: 처리 완료. 응답이 유실된다
  3. 3. 클라이언트에서 서버로: 실패인 줄 알고 재요청
  4. 4. 서버에서 클라이언트로: 같은 키다. 앞의 결과를 그대로 돌려준다

막는 방법은 요청마다 고유한 키를 받는 것이다. 서버가 그 키로 결과를 기록해 두면 두 번째 요청은 새로 처리하지 않고 앞의 결과를 돌려준다.

키를 언제까지 들고 있을지가 실무의 급소다. 짧으면 늦은 재시도가 중복 처리되고, 길면 저장소가 계속 늘어난다.

조회와 삭제는 원래 멱등이다. 문제는 생성과 갱신이고, 그중에서도 돈이 오가는 자리다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

재시도가 있는 시스템에서 멱등성이 필요한 이유는?