你说的挺有道理的,但是有个疑问:
幂等性是相对于调用端而言的还是对双方而言的呢?
比如:客户端POST一个payment过去,得到消息“调用成功,payment已创建”。
因为客户端网络抖动,这个POST被发了10次,每次都得到消息“调用成功,payment已创建”。
这时候,这个调用是幂等的吗?
同样的场景,在服务器端看,会有两个结果:
1. 如果加入了去重机制,那只会有一个payment在服务器端创建(理想情况)。第一次创建,后面直接返回。
这种情况下,在服务器端看是幂等的吗?
2. 没有加入去重机制,这时候有10个payment被创建。
这种情况下,在服务器端看是幂等的吗?每次都创建了。
【 在 licy 的大作中提到: 】
: 幂等性说的是同样的请求应该得到同样的结果。
: 比如你支付一个订单,发了一个请求,返回订单成功,那么,如果这个请求由于某种原因再次重试的话,应该得到的是相同的结果,即支付成功。这样调用方和被调用方结果就一致了。
: 这个是幂等性,而不是返回一个“该请求过,不能重试”,要是这样的话,调用方和被调用方状态就永远不能一致了。
: ...................
--
FROM 120.244.234.*