0%

如何设计接口的幂等性(insert/update)

在使用insert和update方法对数据库表的数据进行操作会涉及到幂等性问题( 同样的请求,不论请求多少次,资源的状态是一样的 ),在分布式开发中保证幂等性显得尤为重要,以下方法具体选用要根据实际情况


1. insert

  • 全局唯一id(雪花算法),每次请求都会新添加
  • 先通过查询在决定是插入还是更新
  • 创建去重表(redis)

    2. update

  • 多版本控制(更新一次版本号+1)
  • 数据库乐观锁/悲观锁(乐观锁底层就是多版本控制)
  • 使用状态码status=0(如果后来的请求不是0,则不让更新)
没办法,要恰饭的嘛!