全部產品
Search
文件中心

:用戶端中如何?重連重試機制

更新時間:Feb 15, 2025

為保障網路波動或服務端異常情境下的互動可靠性,Simple Message Queue (formerly MNS)用戶端按照發送端與消費端分層設計可靠性策略。

發送端重試機制

  • 異常分類與重試觸發

    • 異常分類:分類捕獲用戶端異常( MNS ClientException,例如網路逾時、限流錯誤碼等 )或伺服器異常( ServerException),區分可重試錯誤(例如錯誤碼為5xx或網路抖動等)與不可重試錯誤(例如資源不存在 QueueNotExist)。

    • 用戶端按需重試:按照業務情境,可在業務代碼中按需構建重試代碼進行重發訊息。

  • 退避策略

    • 建議採用指數退避(如初始1秒,上限60秒)疊加隨機抖動策略,避免叢集級重試風暴。

消費端重試機制

  • 服務端自動重試

  • 消費端等冪設計

    • 商務邏輯需天然等冪(例如通過資料庫唯一鍵約束去重),或通過訊息唯一標識 MessageId + 業務狀態機器判斷訊息是否已處理。

  • 異常處理

    • 捕獲消費邏輯異常後,不主動發送確認(ACK),等待Simple Message Queue (formerly MNS)重投,直到訊息消費成功時調用 DeleteMessage 介面刪除訊息。

相關文檔

Java範例程式碼,請參見消費訊息樣本