Java幂等性相关问题

求阙者

关注

阅读 82

2022-03-20

幂等性的相关问题

1、什么是幂等性

2、为什么需要幂等性

3、幂等性的缺点

4、如何保证幂等性

  • 前端拦截
    • 例如按钮的点击次数限制
  • 使用数据库实现幂等性、
    • 乐观锁
      • 通过更新版本号实现
    • 悲观锁
      • 查询状态、添加操作、更改操作由于是非原子性的,那么可能得不到数据的一致性。应配合事务进行处理。
    • 全局ID
      • 雪花算法
      • 唯一索引
  • 使用JVM锁实现幂等性
    • JVM锁实现是指通过JVM提供的内置锁,如Lock或者是Synchronuzed来实现幂等性
      • 流程:通过Lock对代码段进行加锁操作、然后在判断此订单是否已经被处理过,如果未处理则开启事务执行订单处理、处理完成之后提交事务、释放锁。【适用于单机锁、分布式不适用】
  • 使用分布式锁实现幂等性
    • 在每次执行方法之前、先判断是否可以获取到分布式锁,如果可以。则表示为第一次执行方法、否则直接放弃请求。

精彩评论(0)

0 0 举报