资损防控系列(3)-----并发

1,应用场景

   抢购、秒杀、批量交易处理、交易处理

 

2,并发防资损checklist

状态控制失效:1.更新记录带原状态更新;2.状态更新后判断影响行数等于1

限制数值失效:金额、库存、限购次数

并发导致业务唯一约束失效

多级缓存导致数据脏读:读取、更新

【1】状态控制失效

      1.1 说明

        以退款交易为例,正常退款状态流转为“新建>>退款中>>退款成功”。

        并发情况下,请求A和B同时对一条成功交易X进行退款,A和B都退款成功,产生资损

      1.2 资损原因

        请求A和B并发请求时,均对成功交易请求退款,请求退款操作时,状态从“新建>>退款中”时,做如下操作:

         a,更新记录带原状态更新

         b,状态更新后判断影响行数等于1

         若上面两步处理不到位,即A和B都会退款成功,导致资损

       1.3 测试方法

         Jmeter多线程请求同一笔成功交易退款,只有一条退款成功记录。

         要求研发对库存操作时,更新状态时要带原状态更新

 

posted @ 2017-05-17 15:12  猫的天空之城  阅读(794)  评论(0编辑  收藏  举报