文档
测试

接口设计

POST

说明 / 示例

# 一、幂等性 ## 1.1 定义 幂等是数据中得一个概念,表示N次变换和1次变换的结果相同。 高并发的系统如何保证幂等性 # 二、天然幂等方案 ## 2.2 针对不同的http请求 ### 2.21 Query 查询的API,可以说是天然的幂等性,因为你查询一次和查询两次,对于系统来讲,没有任何数据的变更,所以,查询一次和查询多次一样的。 ## 2.3 针对Db ### 2.31 乐观锁 多版本并发控制,update with condition,更新带条件,这也是在系统设计的时候,合理的选择乐观锁,通过version或者其他条件,来做乐观锁,这样保证更新及时在并发的情况下,也不会有太大的问题。 例如update table_xxx set name=#name#,version=version+1 where version=#version# ,或者是 update table_xxx set quality=quality-#subQuality# where quality-#subQuality# >= 0 。 ### 2.32 去重表 在插入数据的时候,插入去重表,利用数据库的唯一索引特性,保证唯一的逻辑。 ### 2.33 悲观锁 select for update,整个执行过程中锁定该订单对应的记录。注意:这种在DB读大于写的情况下尽量少用。 ### 2.34 不稳定的并发处理(过频繁的可能发生同时插入数据) select + insert 并发不高的后台系统,或者一些任务JOB,为了支持幂等,支持重复执行,简单的处理方法是,先查询下一些关键数据,判断是否已经执行过,在进行业务处理,就可以了。注意:核心高并发流程不要用这种方法。 # 三、 特殊处理幂等方案 ## 3.1 状态机幂等 # 四、页面幂等处理 ## 4.1