首页> 中国专利> 幂等问题处理方法、装置、电子设备及存储介质

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

摘要

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

著录项

  • 公开/公告号CN114968977A

    专利类型发明专利

  • 公开/公告日2022-08-30

    原文格式PDF

  • 申请/专利权人 海南车智易通信息技术有限公司;

    申请/专利号CN202210398097.0

  • 发明设计人 田强;

    申请日2022-04-12

  • 分类号G06F16/21(2019.01);G06F16/2455(2019.01);G06F16/25(2019.01);G06F16/28(2019.01);

  • 代理机构北京思睿峰知识产权代理有限公司 11396;北京思睿峰知识产权代理有限公司 11396;

  • 代理人赵爱军;谢建云

  • 地址 571924 海南省老城高新技术产业示范区海南生态软件园A17幢一层2001

  • 入库时间 2023-06-19 16:36:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-10-18

    实质审查的生效 IPC(主分类):G06F16/21 专利申请号:2022103980970 申请日:20220412

    实质审查的生效

说明书

技术领域

本发明涉及数据处理技术领域,尤其是一种幂等问题处理方法、装置、电子设备及存储介质。

背景技术

在用户调用平台的接口时,如果发生请求超时,可能会发生多次重复执行业务请求的问题,在现有技术中,对于请求超时的处理方式主要包括以下三种:一是调用方访问公共服务平台接口超时时,返回清晰明确的提醒给用户,告知执行结果未知,让用户自己判断是否重试,这种方式如果用户看到了超时提醒,重新发起了操作,比如重新发起了转账、充值等操作,由于两次操作都是用户主动发起的,服务器无法判断第二次的转账、充值是新的操作,还是基于上一次超时的重试行为,导致重复支付的发生;二是调用方调用其他接口,来查询超时操作的结果,明确超时操作对应的业务,是执行成功了还是失败了,然后再基于明确的结果做处理,这种处理方法存在一个问题,那就是并不是所有的业务操作,都方便查询操作结果;三是调用方在遇到接口超时之后,直接发起重试操作,这样就需要接口支持幂等,针对每个需要幂等的业务逻辑,单独编写代码处理,一方面对程序员的开发能力要求比较高,另一方面开发成本也比较高。

为了解决上述问题,现有技术采用了乐观锁机制,利用数据库冗余版本号字段。乐观锁解决了计算赋值型的修改场景,加上了版本号后,就让此计算赋值型业务,具备了幂等性,但是乐观锁在操作业务前,每次需要先查询出当前的vers ion版本。并发处理时,对数据库造成极大的压力。

因此,需要一种能够通过对幂等问题的处理,以达到在服务器执行业务请求异常时能够自动回滚,防止出现业务宕机,幂等失效问题。

发明内容

为此,本发明提供了一种幂等问题处理方法、装置、电子设备及存储介质,以力图解决或者至少缓解上面存在的至少一个问题。

根据本发明的一个方面,提供了一种幂等问题处理方法,该方法由客户端携带幂等信息,服务器依据客户端的幂等信息处置服务器执行客户端的业务请求过程中的异常事件,所述方法包括步骤:服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。

可选的,所述服务器获取客户端所携带的幂等信息的步骤包括:客户端从幂等框架工具类中获取幂等请求头信息;依据所述客户端从幂等框架工具类中获取幂等请求头信息,所述客户端将其携带的幂等信息请求发送至服务器;服务器判断所述幂等信息请求的幂等号是否存在;如果是,则服务器处理所述幂等信息请求;如果否,则服务器执行所述客户端的业务请求。

可选的,所述依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况的步骤包括:依据所述服务器所获取客户端所携带的幂等信息,所述服务器将所述客户端携带的幂等信息传送至接口实现方;依据所述服务器传输的客户端所携带的幂等信息,所述接口实现方解析所述幂等信息的幂等号;依据所述接口实现方解析的所述幂等信息的幂等号,所述接口实现方将所述幂等号传输至幂等框架;依据所述幂等框架接收的所述幂等号信息,所述服务器获取所述幂等框架存储幂等号情况。

可选的,所述服务器获取所述幂等框架存储幂等号情况包括:依据所述幂等框架接收的所述幂等号信息,所述幂等框架从缓存中查找所述幂等号是否已经存在;如果已经存在,则将所述幂等号已经存在信息发送至服务器;如果未存在,则将所述幂等号存储在所述幂等框架的关系型数据库中。

可选的,所述将所述幂等号存储在所述幂等框架的关系型数据库中的步骤包括:获取所述幂等号在所述关系型数据库中的存储字段;依据所述幂等号在所述关系型数据库中的存储字段,为所述幂等号在所述关系型数据库中的存储字段设置唯一键;将所述唯一键及所述幂等号存储到所述幂等框架的关系型数据库中。

可选的,所述依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件的步骤包括:如果所述幂等号已经存在于所述缓存中,则所述服务器正在执行所述客户端的业务请求;如果所述幂等号存在于所述关系型数据库中,则所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求;如果所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求异常,则服务器获取所述幂等号的唯一键;依据所述幂等号的唯一键,所述服务器将执行的所述客户端的业务请求进行回滚。

可选的,所述依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件的步骤还包括:所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求完成后,所述幂等框架将幂等号同步至缓存中;设定幂等框架的日志清除参数,删除关系型数据库中的幂等号日志记录。

根据本发明的又一方面,公开了一种幂等问题处理装置,该装置由客户端携带幂等信息,服务器依据客户端的幂等信息处置服务器执行客户端的业务请求过程中的异常事件,所述装置包括:获取模块,用于服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;幂等号分析模块,用于依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;处置模块,用于依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。

根据本发明的又一方面,提供了一种计算设备,包括:一个或多个处理器;和存储器;一个或多个程序,其中所述一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,所述一个或多个程序包括用于执行如上所述幂等问题处理方法中的任一方法的指令。

根据本发明的又一方面,提供了一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当计算设备执行时,使得计算设备执行如上所述幂等问题处理方法中的任一方法。

根据本发明的幂等问题处理方案,通过服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。本申请能够在服务器处理客户端的业务请求时,防止出现服务器宕机现象,并能保持幂等有效,对于服务器执行客户端业务请求异常时,能够及时进行回滚处理。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个实施例的应用场景示意图;以及

图2示出了根据本发明一个实施例的计算设备100的构造示意图;以及

图3示出了根据本发明一个实施例的减少同步消息数据的方法200的流程图;以及

图4示出了根据本发明一个实施例的减少同步消息数据的装置300的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1是本发明一个实施例的应用场景示意图,本申请提供的幂等问题处理方法,可以应用于如图1所示的应用环境中。该幂等问题处理方法应用于幂等问题处理装置中。该幂等问题处理装置配置在服务器010中,或者部分配置在客户端020,部分配置在服务器010中,由客户端020与服务器010交互完成幂等问题处理方法。

其中,客户端020与服务器010可以通过网络进行通信。

其中,客户端020可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,由客户端020携带幂等信息,服务器010依据客户端020的幂等信息处置服务器010执行客户端020的业务请求过程中的异常事件,服务器010可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

对于客户端020而言,其从幂等框架中获取幂等信息,幂等信息中包含幂等号,客户端020在向服务器010发送相关业务请求时,同时发送幂等信息,服务器010在处理客户端020的业务请求时,首先判断幂等号是否存在,如果存在,则说明服务器010正在处理异常事件,如果不存在,说明服务器010正在顺利执行客户端020的业务请求。当幂等号随着客户端020的请求传递到接口实现方以后,具体的,本实施例的接口实现方是服务器010为实现客户端020的业务请求而调取的第三方服务的接口,比如,客户端020进行通过一个银行账户还另一个银行的信用卡欠款时,此时的接口实现方分别为第一个银行与服务器010的接口以及第二个银行与服务器010的接口,接口实现方将幂等号解析出来以后,传递给幂等框架,由幂等框架去缓存中查找这个幂等号是否存在,如果存在,说明该接口实现方已经开始在执行客户端020发送的相关业务请求,此时不需要进行重复执行客户端020的业务请求,如果缓存中不存在幂等号,需要将幂等号存储到关系型数据库中,并且将幂等号在关系型数据库中的存储字段设置唯一键,如果相应的接口实现方处理客户端020的业务请求失败,则通知服务器010该异常信息,服务器010自动回滚处置该异常,直至关系型数据库成功存储了该幂等号,才继续执行客户端020的业务请求,当服务器010成功完成客户端020的业务请求以后,幂等框架将幂等号同步到缓存中。

图2是示例计算设备100的框图。在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。

取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。

取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上利用程序数据124进行操作。在一些实施例中,计算设备100被配置为执行幂等问题处理方法200,该方法200能够由客户端携带幂等信息,服务器依据客户端的幂等信息处置服务器执行客户端的业务请求过程中的异常事件,程序数据124中包含了用于执行该方法200的指令。

计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。在一些实施例中,计算机可读介质中存储一个或多个程序,这一个或多个程序中包括执行某些方法的指令,如根据本发明的实施例,计算设备100通过所述指令来执行幂等问题处理方法200。

计算设备100可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。

图3示出了根据本发明一个实施例的幂等问题处理方法200的流程图。如图2所示,该方法200方法由客户端携带幂等信息,服务器依据客户端的幂等信息处置服务器执行客户端的业务请求过程中的异常事件,方法200始于步骤S210,服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号。

具体的,客户端所携带的幂等信息由客户端从幂等框架工具中获取,一个幂等框架工具一般具有幂等号生成管理单元、测试单元、幂等协议头单元、幂等操作接口单元、高可以用单元及数据一致性管理单元组成,幂等框架工具具有幂等信息的生成、管理功能,客户端从幂等框架工具中获取幂等信息,幂等信息中包含幂等号。

具体的,在本申请的一个实施例中,所述获取用户最后登录服务器的时间信息的步骤包括:

所述服务器获取客户端所携带的幂等信息的步骤包括:

客户端从幂等框架工具类中获取幂等请求头信息;具体的,客户端通过向所述幂等框架工具类发送获取幂等信息的请求而获取幂等请求头信息,幂等请求头信息也即是幂等信息,幂等请求头信息中包含幂等号,幂等号用于区分不同客户端所获取的不同的幂等信息。

依据所述客户端从幂等框架工具类中获取幂等请求头信息,所述客户端将其携带的幂等信息请求发送至服务器;具体的,客户端在向服务器发送业务请求时,为了防止出现异常问题能及时处置,且不会发生业务逻辑执行问题,客户端同时将所获取的幂等信息发送至服务器,由服务器根据客户端是否携带了幂等信息来判断该客户端的业务请求是否进行了处理。

服务器判断所述幂等信息请求的幂等号是否存在;

如果是,则服务器处理所述幂等信息请求;具体的,如果幂等号存在,则说明该客户端所发送的业务请求服务器还没有进行处理,则此时服务器需要首先对客户端所发送的业务请求进行幂等信息的处理。

如果否,则服务器执行所述客户端的业务请求。具体的,如果幂等号不存在,说明服务器已经完成了对客户端所携带幂等信息的执行,此时即可进行对客户端所请求的业务进行处理。

通过步骤S220,依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况。

具体的,对于客户端所携带的幂等信息,服务器在执行的过程中,需要按照客户端的业务请求将幂等号传递到相应的接口实现方,由接口实现方去执行相应的客户端的业务请求,比如,一个淘宝用户通过淘宝平台从某一个淘宝商店购买商品,此时淘宝用户将购买商品的业务请求和幂等信息同时发送到淘宝服务器,淘宝服务器根据用户所选择的淘宝商店将淘宝用户的购买请求和幂等信息发送到该淘宝商店的接口实现方,由于接口实现方解析了用户的请求信息以后,能够获取请求信息中的幂等号,此时,接口实现方即可根据幂等号的所存储的情况来执行相应的步骤。

具体的,在本申请的一个实施例中,所述依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况的步骤包括:

依据所述服务器所获取客户端所携带的幂等信息,所述服务器将所述客户端携带的幂等信息传送至接口实现方;具体的,接口实现方在获取了客户端所携带的幂等信息的同时,也获取了服务器向所述接口实现方所转发的客户端的业务请求信息。

依据所述服务器传输的客户端所携带的幂等信息,所述接口实现方解析所述幂等信息的幂等号;

依据所述接口实现方解析的所述幂等信息的幂等号,所述接口实现方将所述幂等号传输至幂等框架;

依据所述幂等框架接收的所述幂等号信息,所述服务器获取所述幂等框架存储幂等号情况。

具体的,当接口实现方解析了幂等信息的幂等号以后,接口实现方会根据解析的幂等号来判断其缓存中是不是已经有了幂等号,如果有了幂等号,则按照幂等号存储在缓存中的方案去执行,如果缓存中没有所述幂等号,则将幂等号存储到关系型数据库中,依据幂等号存储的方案去执行。

具体的,在本申请的一个实施例中,所述服务器获取所述幂等框架存储幂等号情况包括:

依据所述幂等框架接收的所述幂等号信息,所述幂等框架从缓存中查找所述幂等号是否已经存在;

如果已经存在,则将所述幂等号已经存在信息发送至服务器;具体的,幂等号已经存在于缓存中,说明接口实现方已经进行客户端的业务请求的执行,或者已经完成了相应业务请求的执行,幂等号此时正在监控接口实现方执行业务请求是否出现异常,如果异常,则幂等号将按照相应的方案进行回滚,如果顺利执行则幂等号按照执行完毕的方案进行处理。

如果未存在,则将所述幂等号存储在所述幂等框架的关系型数据库中。如果幂等号在缓存中不存在,说明此时客户端发送的业务请求在接口实现方还没有执行,需要由接口实现方首先将幂等号解析出来,存储到幂等框架的关系型数据库中,再进行相应业务请求的执行。

具体的,在本申请的一个实施例中,所述将所述幂等号存储在所述幂等框架的关系型数据库中的步骤包括:

获取所述幂等号在所述关系型数据库中的存储字段;

依据所述幂等号在所述关系型数据库中的存储字段,为所述幂等号在所述关系型数据库中的存储字段设置唯一键;具体的,如果服务器执行客户端的业务请求失败了,可能造成幂等号在缓存中的同步失败,也就可能造成服务器在执行异常后无法进行回滚,以实现正确的执行结果,通过设置唯一键,在服务器执行异常时可以直接回滚。

将所述唯一键及所述幂等号存储到所述幂等框架的关系型数据库中。

通过步骤S230,依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。

具体的,由于幂等框架中的幂等号存在两种形式,一种是已经在缓存中,另一种是不在缓存中,通过将幂等号存储到关系型数据库中,在进行业务执行后同步到缓存中,因此,对于已经在缓存中的幂等号,此时客户端的业务请求已经由服务器通过接口实现方去执行,这时就不需要再次通过存储幂等号通过调用实现对业务请求的重复执行了,对于缓存中没有的幂等号,需要首先存储在关系型数据库中,为了防止发生缓存同步失败的情况,幂等号存储在关系型数据库中的字段需要设置唯一键,这样可以在执行客户端的业务请求异常时直接回滚。

具体的,在本申请的一个实施例中,所述依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件的步骤包括:

如果所述幂等号已经存在于所述缓存中,则所述服务器正在执行所述客户端的业务请求;

如果所述幂等号存在于所述关系型数据库中,则所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求;

如果所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求异常,则服务器获取所述幂等号的唯一键;

依据所述幂等号的唯一键,所述服务器将执行的所述客户端的业务请求进行回滚。

当所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求完成后,所述幂等框架将幂等号同步至缓存中;

设定幂等框架的日志清除参数,删除关系型数据库中的幂等号日志记录。

具体的,服务器在业务处理的过程中,通过本方法可以防止业务系统宕机,幂等失效,在本申请中,将幂等号的记录和客户端的业务请求的执行放到一个事务中,如果业务请求执行成功,幂等框架必然会记录幂等号,如果业务请求执行失败,幂等号记录也会被自动回滚,使服务器再次执行客户端的业务请求。在存储业务数据的关系型数据库中,创建一张表来记录幂等号。幂等号先存储到业务数据库中,然后再同步给幂等框架的数据库。

在本申请的实施例中幂等框架出现异常时可以保障正常恢复,不会执行的新的业务逻辑,因为幂等功能的暂时失效,被重复执行了,就会导致业务请求执行出错,比如,多次执行转账,钱多转了的情况,在幂等逻辑执行异

为了让幂等框架尽可能的灵活,低侵入业务逻辑,发生异常是否允许再重试执行业务逻辑,而幂等框架本身不参与这个决定,框架只需要提供删除幂等号的接口,由业务工程师来决定遇到异常的时候,是否需要调用这个删除接口,删除已经记录的幂等号。

根据本发明的幂等问题处理方案,通过服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。本申请能够在服务器处理客户端的业务请求时,防止出现服务器宕机现象,并能保持幂等有效,对于服务器执行客户端业务请求异常时,能够及时进行回滚处理。

应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种幂等问题处理装置300,所述装置300由客户端携带幂等信息,服务器依据客户端的幂等信息处置服务器执行客户端的业务请求过程中的异常事件,所述装置300包括:获取模块、幂等号分析模块、处置模块。

获取模块,用于服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;

幂等号分析模块,用于依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;

处置模块,用于依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。

具体的,在本申请的另一个实施例中,所述获取模块用于客户端从幂等框架工具类中获取幂等请求头信息;依据所述客户端从幂等框架工具类中获取幂等请求头信息,所述客户端将其携带的幂等信息请求发送至服务器;服务器判断所述幂等信息请求的幂等号是否存在;如果是,则服务器处理所述幂等信息请求;如果否,则服务器执行所述客户端的业务请求。

具体的,在本申请的另一个实施例中,所述获取模块用于依据所述服务器所获取客户端所携带的幂等信息,所述服务器将所述客户端携带的幂等信息传送至接口实现方;依据所述服务器传输的客户端所携带的幂等信息,所述接口实现方解析所述幂等信息的幂等号;依据所述接口实现方解析的所述幂等信息的幂等号,所述接口实现方将所述幂等号传输至幂等框架;依据所述幂等框架接收的所述幂等号信息,所述服务器获取所述幂等框架存储幂等号情况。

具体的,在本申请的另一个实施例中,所述获取模块用于依据所述幂等框架接收的所述幂等号信息,所述幂等框架从缓存中查找所述幂等号是否已经存在;如果已经存在,则将所述幂等号已经存在信息发送至服务器;如果未存在,则将所述幂等号存储在所述幂等框架的关系型数据库中。

具体的,在本申请的另一个实施例中,所述幂等号分析模块用于获取所述幂等号在所述关系型数据库中的存储字段;依据所述幂等号在所述关系型数据库中的存储字段,为所述幂等号在所述关系型数据库中的存储字段设置唯一键;将所述唯一键及所述幂等号存储到所述幂等框架的关系型数据库中。

具体的,在本申请的另一个实施例中,所述处置模块用于判断如果所述幂等号已经存在于所述缓存中,则所述服务器正在执行所述客户端的业务请求;如果所述幂等号存在于所述关系型数据库中,则所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求;如果所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求异常,则服务器获取所述幂等号的唯一键;依据所述幂等号的唯一键,所述服务器将执行的所述客户端的业务请求进行回滚。

具体的,在本申请的另一个实施例中,所述处置模块用于在所述服务器通过所述关系型数据库中的幂等号执行所述客户端的业务请求完成后,所述幂等框架将幂等号同步至缓存中;设定幂等框架的日志清除参数,删除关系型数据库中的幂等号日志记录。

根据本发明的幂等问题处理方案,通过获取模块用于服务器获取客户端所携带的幂等信息,所述幂等信息包括幂等号;幂等号分析模块用于依据所述服务器所获取客户端所携带的幂等信息,服务器获取幂等框架所存储的幂等号信息情况;处置模块用于依据所述幂等框架所存储的幂等号信息情况,处置所述服务器在执行过程中发生的异常事件。本申请能够在服务器处理客户端的业务请求时,防止出现服务器宕机现象,并能保持幂等有效,对于服务器执行客户端业务请求异常时,能够及时进行回滚处理。

应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号