Skip to main content

如何保证幂等性

如果发生请求超时或服务器内部错误,客户端可能会尝试重发请求。您可以在请求中设置 ClientToken 参数避免多次重试带来重复操作的问题。

什么是幂等性

在数学计算或者计算机科学中,幂等性(idempotence)是指相同操作或资源在一次或多次请求中具有同样效果的作用。幂等性是在分布式系统设计中具有十分重要的地位。

保证幂等性

通常情况下,客户端只需要在500(InternalErrorInternalError)或503(ServiceUnavailable)错误,或者无法获取响应结果时重试。充实时您可以从客户端生成一个参数值不超过64个的ASCII字符,并将值赋予 ClientToken,保证重试请求的幂等性。

ClientToken 详解

ClientToken参数的详细信息如下所示。

  • ClientToken 是一个由客户端生成的唯一的、大小写敏感、不超过64个ASCII字符的字符串。例如,ClientToken=123e4567-e89b-12d3-a456-426655440000
  • 如果您提供了一个已经使用过的 ClientToken,但其他请求参数有变化,则服务器会返回 IdempotentParameterMismatch 的错误代码。
  • 如果您提供了一个已经使用过的 ClientToken,且其他请求参数不变,则服务器会尝试返回 ClientToken 对应的记录。

API列表

以下为部分包含了 ClientToken 参数的API,供您参考。具体哪些API支持 ClientToken 参数请以各 API 文档为准,此处不一一列举。