项目中实现幂等的几种方式

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.数据库唯一索引

  插入数据出错,直接回滚事务,并返回信息

 

  

以上是关于项目中实现幂等的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

高并发下保证接口的幂等性的几种方式

高并发下保证接口的幂等性的几种方式

高并发下保证接口的幂等性的几种方式

探讨一下实现幂等性的几种方式

探讨确保消息消费幂等性的几种方式

浅谈http的几种请求方法