如何解决业务幂等性

幂等问题有两种

  • 请求幂等:每次请求,如果参数一样,结果也要一样
  • 业务幂等:同一次业务请求,推进到最终状态之后的每次请求,结果要保持一致。没推进到最终状态之前,每一次请求都要正常执行业务逻辑,直到推进到最终状态

一般来说我们保证的是业务幂等

口诀:一锁,二判,三更新

  • 锁:锁建议用redis,毕竟它是高性能的互斥非阻塞锁。但锁也不是必须的,如果不是高并发的话,建议直接查,后面通过乐观锁来控制插入or更新
  • 判:是否已经执行过了
  • 更新