참고 자료 · 54
웹훅: 반복, 지연 및 복구 처리
수신된 알림을 장애 발생 후 복구 가능한 고유하고 추적 가능한 비즈니스 효과로 변환합니다.
업데이트됨 · 3 min
이 가이드가 달성하는 목표
- 알림 인증
- 영수증과 처리 분리
- 중복 영향 방지
- 차단된 이벤트 복구
빠른 확인
- 어떤 바이트가 서명되었습니까?
- 영수증은 언제 영구적입니까?
- 두 워커가 함께 작업할 수 있습니까?
- 공급자가 순서를 보장합니까?
- 손실된 이벤트를 어떻게 찾습니까?
단계별 방법
- 1
공급자 계약 읽기
유형, 버전, 계정 컨텍스트, 서명, 타이밍 및 재시도 규칙 기록. Stripe는 전달 순서가 보장되지 않으며 중복이 발생할 수 있다고 명시합니다. 모든 API에 Stripe 관련 지연을 적용하지 마십시오.
제공물: 날짜가 포함된 공급자 계약.
- 2
효과 발생 전 유효성 검사
공급자가 요구하는 라이브러리 및 원시 본문을 사용하여 서명을 확인합니다. 허용되는 크기와 유형을 제한합니다. 비밀 키를 로깅하지 않고 승인된 환경에서 유효하지 않은 서명과 예상치 못한 계정 컨텍스트를 테스트합니다.
결과물: 영향 없는 거부.
- 3
승인 전에 데이터를 보존합니다.
내구성 있는 수신과 느린 처리를 분리합니다. 큐가 이벤트를 수락할 수 없는 경우 보존된 것으로 보고하지 않습니다. 성공은 계약에 따른 수신을 의미하며, 비즈니스 작업 완료를 반드시 의미하는 것은 아닙니다.
결과물: 수신됨, 처리 중, 완료됨 및 차단됨 상태.
- 4
멱등성을 적용합니다.
이벤트 키와 비즈니스 효과의 동일성을 정의합니다. 순차적 전달뿐 아니라 동시 반복을 테스트합니다. 원자적 제약 조건이나 잠금 없이 사전 검사를 수행하면 두 작업자가 동일한 효과를 생성할 수 있습니다.
결과물: 효과 고유성 증거.
- 5
지연 및 무질서 처리.
이전 알림이 현재 상태를 설명한다고 가정하지 않습니다. 계약에서 허용하는 경우 소스를 참조하고 검증된 비즈니스 전환을 적용합니다. 아직 해석할 수 없는 이벤트를 보존합니다.
산출물: 전환 및 역순 테스트
- 6
조정 및 재실행
소유자, 원인, 시도 횟수 및 종료 시점을 포함하는 오류 큐 준비. 재실행 중 중복 방지 유지. 공급자와 애플리케이션을 주기적으로 비교: 복구 성공이 이벤트 누락이 없음을 증명하는 것은 아님.
산출물: 복구 절차 및 불일치 보고서
재사용 가능한 워크시트
승인된 의견을 기입하십시오. 이 항목들은 작업 템플릿이며, 관찰된 결과가 아닙니다.
| 필드 | 기록할 정보 |
|---|---|
| 이벤트 | 공급자, 계정, 식별자 및 버전 |
| 영수증 | 유효성 검사된 서명 및 영구 타임스탬프 |
| 영향 | 비즈니스 키, 상태 및 고유성 증거 |
| 복구 | 원인, 시도, 담당자 및 종료 |
가상 예시
예시 상황
가상 예시: 복구 과정에서 두 작업자가 동일한 확인 알림을 받는 경우.
결정 및 예상 증거
고유한 비즈니스 효과 제약 조건과 거래 상태를 통해 한 번의 이행이 가능하면서도 두 번의 배송 모두 추적 가능하도록 해야 합니다.
메커니즘 구분
| 메커니즘 | 목적 | 검증 또는 제한 |
|---|---|---|
| 서명 | 계약에 따른 출처 유효성 검사 | 효과가 고유하지 않음 |
| 중복 제거 | 반복 알림 인식 | 동시성 및 비즈니스 효과 확인 |
| 조정 | 누락 및 차이점 찾기 | 소스 및 기간 명시 |
관리 지표
| 지표 | 측정 대상 | 첫 번째 조치 |
|---|---|---|
| 큐 경과 시간 | 미완료 이벤트 지연 | 가장 오래된 이벤트 검사 |
| 중복 효과 | 오류로 반복된 비즈니스 작업 | 원자성 수정 |
| 소스/애플리케이션 격차 | 부재 또는 불일치 상태 | 종료 증거와 조정 |
일반적인 실수
- 서명된 본문 검증 전 구문 분석
- 영구 수신 전 승인
- 순차적 전달 가정
- 중복 항목은 순차적으로만 테스트
자주 묻는 질문
HTTP 성공은 처리 완료를 의미하는가?
계약에 따라 다릅니다. 비동기 처리의 경우, 비즈니스 상태는 별도로 추적되는 동안 영구적인 수신이 보장되어야 합니다.
정확히 한 번만 배송이 보장될 수 있습니까?
실제 계약 상황에서 반복 및 실패를 고려하여 설계하되, 고유한 효과와 조정이 가능하도록 해야 합니다.
전체 내용을 보관해야 합니까?
적절한 접근 권한과 보존 기간을 두고 필요한 경우에만 보관해야 합니다. 최소한의 흔적만 남겨 비밀 정보를 보관하지 않고도 진단 및 복구를 지원해야 합니다.
공식 참조
참조는 방법을 뒷받침합니다. 상황에 맞게 검사를 조정하십시오. 이는 인증이 아닙니다. 원본 참조 제목 및 소스 문서는 다른 언어로 작성되었을 수 있습니다.
참고 자료 확인일 .






