← 질문 목록
#341깊이 0

남의 서버에 일이 생긴 것을 어떻게 아는가?

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

계속 물어보지 않고 상대가 알려 주게 한다. 받을 주소를 미리 등록해 둔다.

  1. 1. 내 서버에서 결제사로: 이 주소로 알려 달라고 등록한다
  2. 2. 결제사에서 내 서버로: 결제가 끝났다
  3. 3. 내 서버에서 결제사로: 받았다고 바로 답한다

답이 늦거나 없을 때 다시 보낼지는 상대의 정책에 달렸다. 다시 보내는 곳이 많으므로 같은 알림이 두 번 와도 결과가 같아야 한다.

알림에 고유한 값이 붙어 오면 그것으로 이미 처리했는지 본다. 안 붙는 곳이면 내용에서 겹치지 않을 열쇠를 정해 둔다.

그 주소는 누구나 부를 수 있다. 상대가 서명을 붙여 보내면 그것을 확인해 진짜인지 가린다. 확인 없이 믿으면 남이 결제 성공을 지어낼 수 있다.

받자마자 답하는 것이 좋다. 무거운 일을 그 자리에서 하면 상대의 제한 시간을 넘겨 다시 보내게 만든다. 큐에 넣고 먼저 답한다.

웹훅을 못 받은 구간을 다시 맞추는 경로가 필요하다. 우리 서버가 꺼져 있던 동안의 알림은 상대의 재시도 정책에 달렸고, 그것으로 안 되면 따로 조회해 맞춰야 한다.

추천 꼬리질문

0/300

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

관련 질문

남의 서버에 일이 생긴 것을 어떻게 아는가?