最後更新:
Click to expand / collapse
在現代API集成中,重要的是不僅要發送或獲取數據,而且要確保對所有事件進行一次,正確和可靠的處理。我們采用中間狀態保存、重新傳遞機制(retries)和重復數據消除來實現體系結構,以消除外部服務和隊列中的丟失和重復。
這在處理交易,支付網關,webhook事件和背景任務時尤為重要,其中一次性和完成性至關重要。
實現的內容
| 二.機制 | 目的和好處 |
|---|---|
| 保存狀態 | 能夠從故障現場繼續或跟蹤處理進度 |
| 自動撤退 | 在發生錯誤時重新嘗試,帶有指數延遲 |
| Deduplication | 防止重復處理相同請求或事件 |
| 事件ID | 支持「event_id」、「message_id」、hash跟蹤 |
| 推遲的任務 | 如果外部服務暫時不可用,請稍後重新嘗試 |
它是如何工作的?
1.傳入請求或事件獲得唯一標識符
2.記錄被添加到處理日誌中(在DB,Redis或Kafka中)
3.如果出現錯誤,則將任務排在返回位置(限制和控制)
4.當再次收到同一事件時,系統會檢查ID並拒絕副本
5.整個事件歷史記錄和處理狀態可供審核
API和平臺的優勢
在網絡故障、重復的webhook'ax或客戶端錯誤中排除雙打
即使在發生臨時故障時也能可靠地交付
最大限度地減少外部API和底部的負載
精確的編譯、審核和恢復能力
針對不同情景(付款、獎金、事件)可擴展性和靈活性)
在哪裏,特別重要
金融交易,賬單,存款
遊戲事件: 投註,獲勝,計算
與webhook'ami和慢速API的集成
具有高負載和背景任務的體系結構