说几种实现幂等的方式?

这篇文章,写的很详细了。

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

 

本质:

利用数据库的乐观锁,悲观锁,唯一约束。

 

总结:

1、第一种方案,利用数据库的乐观锁机制 

(update t_order set status = 1 where order_id = trade_no and status = 0 ,判断状态。这种思想类似CAS操作,如果符合我的预期值,我就干。

2、第二种方案,利用数据库的悲观锁机制

(使用 for update,行级锁,优点:设计简单。缺点:如果多个实例,多个线程进来,只有一个线程获取锁,其他线程处于等待状态。影响并发性能)

3、第三种方案,新建一张表,建立唯一索引。

(优点:设计简单。缺点:如果业务变大,这张表会成为性能的瓶颈)

 

按照最优排序:乐观锁 > 唯一约束 > 悲观锁

你可能感兴趣的:(说几种实现幂等的方式?)