知识卡片
幂等吸收重试
内容
分布式调用可能“成功执行但响应丢失”,客户端会重试同一请求。幂等操作让多次执行与一次执行效果相同,把网络不确定性转化为可接受的重复消息,是可靠接口的基础。
参考来源
- 位置:《大数据日知录:架构与算法》第2章《数据复制与一致性》"2.1.6 幂等性(Idempotent)"一节(源文件:_epub-src/OEBPS/text00007.html)
- 结论依据:原文明确"分布式系统中的幂等性是指:调用方反复执行同一操作与只正确执行一次操作效果相同",并说明其成因是"调用方已经正确调用服务方提供的功能,但是由于网络故障,调用方并未收到调用成功的响应,会认为调用失败从而再次调用相同操作",举例ZooKeeper和Raft支持操作幂等性。
- 原始内容:分布式系统中的幂等性是指:调用方反复执行同一操作与只正确执行一次操作效果相同,即对分布式系统内部状态来说,同一操作调用一次与反复调用多次其状态保持相同……如果调用方已经正确调用服务方提供的功能,但是由于网络故障,调用方并未收到调用成功的响应,会认为调用失败从而再次调用相同操作,这样被调用方会反复执行同一操作……典型的例子比如Zookeeper和Raft就支持很多操作的幂等性。