项目中实现幂等的几种方式
Posted mr-rocker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目中实现幂等的几种方式相关的知识,希望对你有一定的参考价值。
1.业务唯一编号:
当系统接收到唯一的no时,先判断no对应的状态是否处理过,处理过则直接返回;防止并发的情况,需要在判断处理的地方加锁,
多系统部署,需要加分布式锁 或者在事务中使用 select for update 获取行级锁,事务提交后会自动释放行级锁
或者使用乐观锁 :
update t_order set status = 1 where order_id = trade_no where status = 0;
//上面的update操作会返回影响的行数num
if(num==1){
//表示更新成功提交事务;
}else{
//表示更新失败回滚事务;
}
类似于cas机制
2.数据库唯一索引
插入数据出错,直接回滚事务,并返回信息
以上是关于项目中实现幂等的几种方式的主要内容,如果未能解决你的问题,请参考以下文章