幂等设计 什么是幂等to我的网站:https://www.waltersun.cn
- 幂等性是系统服务对外一种承诺,承诺只要调用接口成功,外部多次调用对系统的影响是一致的。
- 声明为幂等的服务会认为外部调用失败是常态,并且失败之后必然会有重试。
- 业务出现异常(例如:网络异常或者服务崩溃重启)时,前端有可能重复发起超时的或者处理失败的请求。例如:用户下达委托时,由于网络问题导致超时,此时客户端很可能会重试下达,且重试下达后,服务端不会被多次执行,避免出现做超的情况。
- 用户下达委托时,多次点击下达按钮,可能生成多笔委托,实际期望应该只生成一笔委托。
- 后端处理MQ或者消息中心发过来的消息,处理失败后,要支持重试处理。避免一次处理失败,就需要人工介入的问题。
同时还需要避免被重复处理,导致业务异常。
- 客户端开发逻辑变得简单,处理失败后可以放心的重试,不用担心服务端重复处理的问题。
-
幂等增加了服务提供者的逻辑和成本,是否有必要,需要根据具体场景具体分析
- 增加了额外控制幂等的业务逻辑,复杂化了业务功能
- 把并行执行的功能改为串行执行,降低了执



