Java高并发下怎么保证接口的幂等性

技术Java高并发下怎么保证接口的幂等性本篇内容介绍了“Java高并发下怎么保证接口的幂等性”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅

本文介绍了“如何保证Java高并发下接口的幂等性”的知识。很多人在实际案例的操作中会遇到这样的困难。让边肖带领你学习如何处理这些情况。希望大家认真阅读,学点东西!

前端保证幂等性的方法

按钮只能点击一次

用户点击按钮后,按钮将变灰或显示加载状态。

RPG模式

也就是Post-Redirect-Get,当客户端提交表单时,它执行客户端重定向并转到成功提交的页面。避免了按F5刷新导致的重复提交,也消除了按浏览器后退按钮导致的重复提交。目前大部分公司都是这样做的,比如淘宝、JD.COM。

后端保证幂等性的方法

使用唯一索引

向业务的唯一字段添加唯一索引,这样当数据被复制时,将其插入数据库将引发异常。

状态机幂等

如果业务需要修改订单状态,例如订单状态为待付款、正在付款、付款成功、付款失败。在设计中最好只支持状态的单向改变。这样在更新的时候可以增加条件,多个调用只会执行一次。例如,如果您想要更新订单状态以支持成功,则先前的状态必须是“付款”。

Updatetable_namesetstatus=成功付款,其中status=付款中的乐观锁实现幂等

查询数据以获取版本号。

按版本号更新,如果版本号匹配则更新,如果版本号不匹配则不更新。

-如果找到的版本是1。

-如果查询的版本是1,选择versionfromtable _ name,其中whereuserid=10-在用户账户中增加10个updatetable _ name etmoney=money-10,version=version1其中userid=10,version=1,乐观锁定也可以通过条件实现。例如,库存不能超卖,数量不能小于0。

updatetable _ name setnum=num-10 where num-10=0防重表

添加一个防重复表,以业务的唯一id作为唯一索引,如订单号。当您想要对订单执行一系列操作时,可以将记录插入到防重复表中。如果插入成功,则进行后续操作,如果插入失败,则不进行后续操作。本质上可以看作是基于MySQL的分布式锁。根据业务场景,决定执行成功后是否删除防重复表中对应的数据。

分布式锁实现幂等

执行该方法时,首先根据业务的唯一id获取分布式锁,成功则执行,失败则不执行。分布式锁可以基于redis、zookeeper和mysql实现,所以就不介绍分布式锁的细节了。

select+insert

首先检查有没有符合要求的数据,如果没有,再插入。在没有并发的系统中可以保证幂等性。不要在高并发下使用此方法,这也会导致重复插入数据。一般我做消息幂等的时候,先选择,有数据直接返回,分布式锁没有数据插入。

全局唯一号实现幂等

判断请求是否被seq (source)重复,如果重复,直接返回请求重复提交,否则执行。例如,当多个三方系统调用服务时,可以采用这种方法。

这里介绍了“如何保证Java高并发下接口的幂等性”的内容。感谢您的阅读。如果你想了解更多行业,关注网站,边肖将为大家输出更多高质量的实用文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/57099.html

(0)

相关推荐

  • Spark Join原理是什么

    技术Spark Join原理是什么这篇文章将为大家详细讲解有关Spark Join原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。数据分析中将两个数据集进行 Jo

    攻略 2021年12月3日
  • Python源代码的编制技巧是什么

    技术Python源代码的编制技巧是什么本篇文章为大家展示了Python源代码的编制技巧是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。下面进行详细说明Python源代码的编程

    攻略 2021年10月28日
  • 小2寸照片尺寸是多少,小2寸照片的尺寸是多少?

    技术小2寸照片尺寸是多少,小2寸照片的尺寸是多少?1寸 2小2寸照片尺寸是多少。5*3。5cm 413*295 身份证照 3。3*2。2 390*260 2寸 3。5*5。3cm 626*413【需要尺寸】 2寸(护照)

    生活 2021年10月20日
  • 面向对象设计原则之迪米特法则

    技术面向对象设计原则之迪米特法则 面向对象设计原则之迪米特法则转载来自:https://blog.csdn.net/lovelion/article/details/7563445
    迪米特法则来自于19

    礼包 2021年11月5日
  • mysql数据库修复工具(安装mysql时自动创建的数据库)

    技术如何修复MySQL数据库这篇文章主要介绍如何修复MySQL数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 我整理了7条修复MySQL的方法,当简单的重启对数据库不起作用,或者有表崩溃时。

    攻略 2021年12月22日
  • 月饼的简笔画,女生是考公务员好还是教师好呢

    技术月饼的简笔画,女生是考公务员好还是教师好呢很多人都容易混淆公务员和教师的区别,认为教师也是事业单位,那么应该也是公务员月饼的简笔画。这是错误的,教师职业并不属于公务员范围,公务员是指具体管理国家资源分配和经济秩序的管

    生活 2021年10月25日