幂等性设计

154 阅读1分钟

幂等性设计,就是说,一次和多次请求某一个资源应该具有同样的副作用。 服务调用有三种结果:成功、失败和超时,其中超时是我们需要解决的问题。

幂等性处理方式

  • 一种是需要下游系统提供相应的查询接口。上游系统在 timeout 后去查询一下。如果查到了,就表明已经做了,成功了就不用做了,失败了就走失败流程。需要对方提供一个查询接口来做配合
  • 另一种是通过幂等性的方式。也就是说,把这个查询操作交给下游系统,我上游系统只管重试,下游系统保证一次和多次的请求结果是一样的。需要下游的系统提供支持幂等性的交易接口。

为了在分布式系统中实现幂等性,需要实现全局 ID。比如 Twitter 的 Snowflake

此文章为3月Day19学习笔记,内容来源于极客时间《左耳听风》,强烈推荐该课程!