开发者社区> 问答> 正文

如何保证专有网络 VPC的幂等性?

如何保证专有网络 VPC的幂等性?

展开
收起
保持可爱mmm 2020-03-29 10:01:35 580 0
1 条回答
写回答
取消 提交回答
  • 您在调用VPC API时,如果发生请求超时或服务器内部错误,客户端可能会尝试重发请求。您可以在请求中设置ClientToken参数避免多次重试带来重复操作的问题。 什么是幂等性 在数学计算或者计算机科学中,幂等性(idempotence)是指相同操作或资源在一次或多次请求中具有同样效果的作用。幂等性在分布式系统设计中具有十分重要的地位。 保证幂等性 通常情况下,客户端只需要在500(InternalErrorInternalError)或503(ServiceUnavailable)错误,或者无法获取响应结果时重试。使用阿里云VPC API,您可以从客户端生成一个参数值不超过64个的ASCII字符,并将值赋予ClientToken,保证重试请求的幂等性。 ClientToken详解 ClientToken参数的详细信息如下所示。 ClientToken是一个由客户端生成的唯一的、大小写敏感、不超过64个ASCII字符的字符串。例如,ClientToken=123e4567-e89b-12d3-a456-426655440000。 如果您提供了一个已经使用过的ClientToken,但其他请求参数有变化,则VPC会返回IdempotentParameterMismatch的错误代码。

    说明 参数SignatureNonce、Timestamp和Signature在重试时是需要变化的。具体原因是VPC使用SignatureNonce防止重放攻击,使用Timestamp标记每次请求时间。所以再次请求必须提供不同的SignatureNonce和Timestamp参数值,同时也会导致Signature值的变化。 添加了ClientToken参数后: 返回结果是200 HTTPCode时,重试后客户端可以得到与上次相同的结果,但对您的服务端状态没有影响。 返回结果是4xx HTTPCode时,如果错误信息没有表明try it later类似的信息,重试不会成功。您需要根据错误信息排查问题后再重试请求。

    2020-03-29 10:06:05
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Deep Dive:云上VPC分层安全架构设计 立即下载
AWS 数据中心与 VPC 揭秘 立即下载
经典网络迁移VPC最佳实践 立即下载