本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

如何保證等冪性

更新時間:2024-02-05 10:27

您在調用AnalyticDB PostgreSQL版API時,如果發生請求逾時或伺服器內部錯誤,用戶端可能會嘗試重發請求。您可以在請求中設定ClientToken參數避免多次重試帶來重複操作的問題。

什麼是等冪性

在數學計算或者電腦科學中,等冪性(idempotence)是指相同操作或資源在一次或多次請求中具有同樣效果的作用。等冪性在分布式系統設計中具有十分重要的地位。

保證等冪性

通常情況下,用戶端只需要在500(InternalErrorInternalError)或503(ServiceUnavailable)錯誤,或者無法擷取響應結果時重試。使用AnalyticDB PostgreSQL版API,您可以從用戶端產生一個參數值不超過64個的ASCII字元,並將值賦予ClientToken,保證重試請求的等冪性。

ClientToken詳解

ClientToken參數的詳細資料如下所示:

  • ClientToken是一個由用戶端產生的唯一的、大小寫敏感、不超過64個ASCII字元的字串。例如,ClientToken=123e4567-e89b-12d3-a456-426655440000
  • 如果您提供了一個已經使用過的ClientToken,但其他請求參數有變化,則AnalyticDB PostgreSQL版會返回IdempotentParameterMismatch的錯誤碼。
    說明
    參數SignatureNonce、Timestamp和Signature在重試時是需要變化的。具體原因是AnalyticDB PostgreSQL版使用SignatureNonce防止重放攻擊,使用Timestamp標記每次請求時間。所以再次請求必須提供不同的SignatureNonce和Timestamp參數值,因此也會導致Signature值的變化。
  • 添加了ClientToken參數後:
    • 返回結果是200 HTTP Code時,重試後用戶端可以得到與上次相同的結果,但對您的服務端狀態沒有影響。
    • 返回結果是4** HTTP Code時,如果錯誤資訊沒有表明try it later類似的資訊,重試不會成功。您需要根據錯誤資訊排查問題後再重試請求。
  • 本頁導讀 (1, M)
  • 什麼是等冪性
  • 保證等冪性
  • ClientToken詳解
文檔反饋
phone 聯絡我們

立即和Alibaba Cloud在線服務人員進行交談,獲取您想了解的產品信息以及最新折扣。

alicare alicarealicarealicare