幂等问题处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:34768012 阅读:53 留言:0更新日期:2022-08-31 19:23
本发明专利技术公开了一种幂等问题处理方法、装置、电子设备及存储介质,所述方法包括步骤:通过服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。本申请能够在服务器处理客户端的业务请求时,防止出现服务器宕机现象,并能保持幂等有效,对于服务器执行客户端业务请求异常时,能够及时进行回滚处理。能够及时进行回滚处理。能够及时进行回滚处理。

【技术实现步骤摘要】
幂等问题处理方法、装置、电子设备及存储介质


[0001]本专利技术涉及数据处理
,尤其是一种幂等问题处理方法、装置、电子设备及存储介质。

技术介绍

[0002]在用户调用平台的接口时,如果发生请求超时,可能会发生多次重复执行业务请求的问题,在现有技术中,对于请求超时的处理方式主要包括以下三种:一是调用方访问公共服务平台接口超时时,返回清晰明确的提醒给用户,告知执行结果未知,让用户自己判断是否重试,这种方式如果用户看到了超时提醒,重新发起了操作,比如重新发起了转账、充值等操作,由于两次操作都是用户主动发起的,服务器无法判断第二次的转账、充值是新的操作,还是基于上一次超时的重试行为,导致重复支付的发生;二是调用方调用其他接口,来查询超时操作的结果,明确超时操作对应的业务,是执行成功了还是失败了,然后再基于明确的结果做处理,这种处理方法存在一个问题,那就是并不是所有的业务操作,都方便查询操作结果;三是调用方在遇到接口超时之后,直接发起重试操作,这样就需要接口支持幂等,针对每个需要幂等的业务逻辑,单独编写代码处理,一方面对程序员的开发能力要求比较高,另一方面开发成本也比较高。
[0003]为了解决上述问题,现有技术采用了乐观锁机制,利用数据库冗余版本号字段。乐观锁解决了计算赋值型的修改场景,加上了版本号后,就让此计算赋值型业务,具备了幂等性,但是乐观锁在操作业务前,每次需要先查询出当前的vers ion版本。并发处理时,对数据库造成极大的压力。
[0004]因此,需要一种能够通过对幂等问题的处理,以达到在服务器执行业务请求异常时能够自动回滚,防止出现业务宕机,幂等失效问题。

技术实现思路

[0005]为此,本专利技术提供了一种幂等问题处理方法、装置、电子设备及存储介质,以力图解决或者至少缓解上面存在的至少一个问题。
[0006]根据本专利技术的一个方面,提供了一种幂等问题处理方法,该方法由客户端携带幂等信息,服务器依据客户端的幂等信息处置服务器执行客户端的业务请求过程中的异常事件,所述方法包括步骤:服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。
[0007]可选的,所述服务器获取客户端所携带的幂等信息的步骤包括:客户端从幂等框架工具类中获取幂等请求头信息;依据所述客户端从幂等框架工具类中获取幂等请求头信息,所述客户端将其携带的幂等信息请求发送至服务器;服务器判断所述幂等信息请求的幂等号是否存在;如果是,则服务器处理所述幂等信息请求;如果否,则服务器执行所述客
户端的业务请求。
[0008]可选的,所述依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况的步骤包括:依据所述服务器所获取客户端所携带的幂等信息,所述服务器将所述客户端携带的幂等信息传送至接口实现方;依据所述服务器传输的客户端所携带的幂等信息,所述接口实现方解析所述幂等信息的幂等号;依据所述接口实现方解析的所述幂等信息的幂等号,所述接口实现方将所述幂等号传输至幂等框架;依据所述幂等框架接收的所述幂等号信息,所述服务器获取所述幂等框架存储幂等号情况。
[0009]可选的,所述服务器获取所述幂等框架存储幂等号情况包括:依据所述幂等框架接收的所述幂等号信息,所述幂等框架从缓存中查找所述幂等号是否已经存在;如果已经存在,则将所述幂等号已经存在信息发送至服务器;如果未存在,则将所述幂等号存储在所述幂等框架的关系型数据库中。
[0010]可选的,所述将所述幂等号存储在所述幂等框架的关系型数据库中的步骤包括:获取所述幂等号在所述关系型数据库中的存储字段;依据所述幂等号在所述关系型数据库中的存储字段,为所述幂等号在所述关系型数据库中的存储字段设置唯一键;将所述唯一键及所述幂等号存储到所述幂等框架的关系型数据库中。
[0011]可选的,所述依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件的步骤包括:如果所述幂等号已经存在于所述缓存中,则所述服务器正在执行所述客户端的业务请求;如果所述幂等号存在于所述关系型数据库中,则所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求;如果所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求异常,则服务器获取所述幂等号的唯一键;依据所述幂等号的唯一键,所述服务器将执行的所述客户端的业务请求进行回滚。
[0012]可选的,所述依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件的步骤还包括:所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求完成后,所述幂等框架将幂等号同步至缓存中;设定幂等框架的日志清除参数,删除关系型数据库中的幂等号日志记录。
[0013]根据本专利技术的又一方面,公开了一种幂等问题处理装置,该装置由客户端携带幂等信息,服务器依据客户端的幂等信息处置服务器执行客户端的业务请求过程中的异常事件,所述装置包括:获取模块,用于服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;幂等号分析模块,用于依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;处置模块,用于依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。
[0014]根据本专利技术的又一方面,提供了一种计算设备,包括:一个或多个处理器;和存储器;一个或多个程序,其中所述一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,所述一个或多个程序包括用于执行如上所述幂等问题处理方法中的任一方法的指令。
[0015]根据本专利技术的又一方面,提供了一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当计算设备执行时,使得计算设备执行如上所述幂等问题处理方法中的任一方法。
[0016]根据本专利技术的幂等问题处理方案,通过服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。本申请能够在服务器处理客户端的业务请求时,防止出现服务器宕机现象,并能保持幂等有效,对于服务器执行客户端业务请求异常时,能够及时进行回滚处理。
附图说明
[0017]为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
[0018]图1示出了根据本专利技术一个实施例的应用场景示意图;以及...

【技术保护点】

【技术特征摘要】
1.一种幂等问题处理方法,所述方法由客户端携带幂等信息,服务器依据客户端的幂等信息处置服务器执行客户端的业务请求过程中的异常事件,所述方法包括步骤:服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。2.如权利要求1所述的方法,其中,所述服务器获取客户端所携带的幂等信息的步骤包括:客户端从幂等框架工具类中获取幂等请求头信息;依据所述客户端从幂等框架工具类中获取幂等请求头信息,所述客户端将其携带的幂等信息请求发送至服务器;服务器判断所述幂等信息请求的幂等号是否存在;如果是,则服务器处理所述幂等信息请求;如果否,则服务器执行所述客户端的业务请求。3.如权利要求1所述的方法,其中,所述依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况的步骤包括:依据所述服务器所获取客户端所携带的幂等信息,所述服务器将所述客户端携带的幂等信息传送至接口实现方;依据所述服务器传输的客户端所携带的幂等信息,所述接口实现方解析所述幂等信息的幂等号;依据所述接口实现方解析的所述幂等信息的幂等号,所述接口实现方将所述幂等号传输至幂等框架;依据所述幂等框架接收的所述幂等号信息,所述服务器获取所述幂等框架存储幂等号情况。4.如权利要求3所述的方法,其中,所述服务器获取所述幂等框架存储幂等号情况包括:依据所述幂等框架接收的所述幂等号信息,所述幂等框架从缓存中查找所述幂等号是否已经存在;如果已经存在,则将所述幂等号已经存在信息发送至服务器;如果未存在,则将所述幂等号存储在所述幂等框架的关系型数据库中。5.如权利要求4所述的方法,其中,所述将所述幂等号存储在所述幂等框架的关系型数据库中的步骤包括:获取所述幂等号在所述关系型数据库中的存储字段;依据所述幂等号在所述关系型数据库中的存储字段,为所述幂等号在所述关系型数据库中的存储字段设置唯一键;将所述唯...

【专利技术属性】
技术研发人员:田强
申请(专利权)人:海南车智易通信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1