调用消息队列 RocketMQ版 OpenAPI 时,如果发生请求超时或服务端内部错误等问题,客户端可能会多次重试。为保证请求的幂等性,您可以在调用 OpenAPI 时设置 ClientToken 参数,避免多次重试导致重复创建资源。
请求幂等性指是同样的请求被执行一次与连续执行多次的效果相同,即幂等方法不具有统计用途以外的副作用。
通过 OpenAPI 创建云资源时,如果发生请求超时或服务端内部错误等问题,客户端可能会反复重试。如果原始的请求和后续重试的请求均执行成功,则每个请求都会创建一个资源,导致实际创建出的资源数量比预期中更多。消息队列 RocketMQ版支持 OpenAPI 请求幂等标识,后端服务会对客户端在请求中设置的幂等标识进行一系列判断检查,并识别当前请求是否为重试请求,从而进行下一步处理。
客户端在发送请求时,可以在请求参数中增加可选参数 ClientToken 作为幂等性标识。如果客户端在遇到 500 等错误时重试,服务端收到请求后会根据幂等性标识判断请求是否为重试请求。
幂等性标识的基本信息如下:
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
ClientToken | String | 否 | testClientToken | 保证客户端请求幂等性的标识。 |
幂等性标识使用说明:
InvalidIdempotency 错误码。
以下消息队列 RocketMQ版 OpenAPI 支持设置幂等性标识: