CN111752740A - 微服务异常补偿方法、装置、设备与计算机可读存储介质 - Google Patents

微服务异常补偿方法、装置、设备与计算机可读存储介质 Download PDF

Info

Publication number
CN111752740A
CN111752740A CN202010603662.3A CN202010603662A CN111752740A CN 111752740 A CN111752740 A CN 111752740A CN 202010603662 A CN202010603662 A CN 202010603662A CN 111752740 A CN111752740 A CN 111752740A
Authority
CN
China
Prior art keywords
interface
service
micro
compensation
compensated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010603662.3A
Other languages
English (en)
Inventor
高银川
卢道和
罗锶
黄叶飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202010603662.3A priority Critical patent/CN111752740A/zh
Publication of CN111752740A publication Critical patent/CN111752740A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种微服务异常补偿方法,包括:若检测到服务请求,则确定所述服务请求是否携带补偿标识,所述补偿标识用于表征当前服务请求异常;若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型;若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式;若所述微服务接口为正常接口,则执行所述正常接口对应的接口逻辑。本发明还公开了一种微服务异常补偿装置、设备和计算机可读存储介质。本发明将补偿机制聚焦在微服务接口层面,而不用理会业务状态的变化,减轻研发人员的开发压力,同时由于是针对微服务接口的补偿,因此,可复用在任一服务场景下,从而实现智能补偿。

Description

微服务异常补偿方法、装置、设备与计算机可读存储介质
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及微服务异常补偿方法、装置、设备与计算机可读存储介质。
背景技术
近年来,随着金融科技(Fintech),尤其是互联网金融的不断发展,微服务技术被引入银行等金融机构的日常服务中。在银行等金融机构的日常服务过程中,服务系统往往需要调用多个微服务接口共同完成一项服务请求,如转账请求,可由转账对象管理服务,转账订单提交服务,余额查询服务,到账通知服务等多个微服务协同完成。在这过程中,若出现网络抖动等异常,则会导致整个转账服务无法进行,因此,如何处理服务系统中出现的异常以确保服务顺利进行,是银行等金融机构需要解决的技术问题。
现有技术中,在服务系统出现异常时,通常采用补偿机制对异常状况进行补偿,具体的,针对不同异常对应的业务状态,编写相应的补偿方法,使得服务系统在检测到服务异常时,根据业务状态,如转账失败等,选择对应的补偿方法,如重试等,使得服务系统按照原先的执行逻辑重新执行一遍。
然而,现有的补偿机制,由于停留在业务状态层面,因此,随着业务状态的增多,如到账通知失败状态等,需要开发人员针对新的业务状态编写新的补偿方法,也即现有的补偿机制一般选择重新执行一遍整个调用方法,或者针对业务状态写一个定制的补偿逻辑,可见,现有的补偿机制还较为死板,智能性不足以应对复杂的服务场景。
发明内容
本发明的主要目的在于提出一种微服务异常补偿方法、装置、设备与计算机可读存储介质,旨在实现任一服务场景的智能补偿。
为实现上述目的,本发明提供一种微服务异常补偿方法,所述微服务异常补偿方法包括如下步骤:
若检测到服务请求,则确定所述服务请求是否携带补偿标识,所述补偿标识用于表征当前服务请求异常;
若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型;
若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式;
若所述微服务接口为正常接口,则执行所述正常接口对应的接口逻辑。
优选地,所述若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式的步骤包括:
若所述微服务接口为待补偿接口,则确定所述待补偿接口的跳过标识;
若所述跳过标识为不跳过,则确定所述待补偿接口的逻辑类型;
若所述逻辑类型为查询逻辑,则调用所述待补偿接口重新执行所述待补偿接口对应的接口逻辑;
若所述逻辑类型为插入逻辑或者更新逻辑,则跳过所述待补偿接口并执行所述待补偿接口对应的补偿逻辑;
若所述跳过标识为跳过,则跳过所述待补偿接口并执行所述待补偿接口对应的补偿逻辑。
优选地,所述若所述微服务接口为待补偿接口,则确定所述待补偿接口的跳过标识的步骤包括:
若所述微服务接口为待补偿接口,则确定所述待补偿接口是否为幂等接口;
若是,则确定所述待补偿接口的跳过标识为不跳过;
若否,则确定所述待补偿接口的调用场景;
若所述调用场景为所述待补偿接口对应的下游接口不依赖所述待补偿接口的返回结果,则确定所述待补偿接口的跳过标识为跳过;
若所述调用场景为所述待补偿接口对应的下游接口依赖所述待补偿接口的返回结果,则确定所述待补偿接口的跳过标识为不跳过。
优选地,所述若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型的步骤包括:
若携带,则确定所述服务请求对应的微服务接口,以及所述服务请求对应的异常接口,其中,所述异常接口为所述微服务接口中的至少一个接口;
基于所述异常接口的步骤ID和所述微服务接口对应的微服务编排,确定所述异常接口对应的上游接口和下游接口;
确定所述上游接口和所述异常接口为待补偿接口,确定所述下游接口为正常接口。
优选地,在执行补偿方式或执行接口逻辑的过程中,所述微服务异常补偿方法还包括:
若确定当前微服务接口为异常接口,则确定所述补偿标识的补偿次数;
若所述补偿次数小于预设次数,则基于所述微服务接口对应的微服务编排,确定所述异常接口的步骤ID,终止补偿方式或接口逻辑的执行,并更新所述补偿标识的补偿次数;
若所述补偿次数仍然小于预设次数,则将所述服务请求返回聚合层,其中,所述聚合层为检测服务请求的入口。
优选地,所述若检测到服务请求,则确定所述服务请求是否携带补偿标识的步骤之后,所述微服务异常补偿方法还包括:
若未携带,则确定所述服务请求对应的微服务接口,以及所述微服务接口对应的微服务编排,并基于所述微服务编排,依次执行所述微服务接口对应的接口逻辑;
其中,若在执行当前微服务接口的接口逻辑时,确定当前微服务接口为异常接口,则基于所述微服务编排,确定所述异常接口的步骤ID,终止接口逻辑的执行,并使用补偿标识标记所述服务请求,将所述服务请求返回聚合层,其中,所述聚合层为检测服务请求的入口。
优选地,所述确定当前微服务接口为异常接口的步骤包括:
确定当前微服务接口的服务状态,其中,若所述服务状态为停止服务,则确定当前微服务接口为异常接口;或
确定当前微服务接口的调用请求的调用数量,其中,若所述调用数量超过预设数量,则确定当前微服务接口为异常接口;或
确定当前微服务接口的调用响应时长,其中,若所述调用响应时长超过预设时长,则确定当前微服务接口为异常接口。
此外,为实现上述目的,本发明还提供一种微服务异常补偿装置,所述微服务异常补偿装置包括:
检测模块,用于若检测到服务请求,则确定所述服务请求是否携带补偿标识,所述补偿标识用于表征当前服务请求异常;
确定模块,用于若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型;
执行模块,用于若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式;
所述执行模块,用于若所述微服务接口为正常接口,则执行所述正常接口对应的接口逻辑。
优选地,所述执行模块还用于:
若所述微服务接口为待补偿接口,则确定所述待补偿接口的跳过标识;
若所述跳过标识为不跳过,则确定所述待补偿接口的逻辑类型;
若所述逻辑类型为查询逻辑,则调用所述待补偿接口重新执行所述待补偿接口对应的接口逻辑;
若所述逻辑类型为插入逻辑或者更新逻辑,则跳过所述待补偿接口并执行所述待补偿接口对应的补偿逻辑;
若所述跳过标识为跳过,则跳过所述待补偿接口并执行所述待补偿接口对应的补偿逻辑。
优选地,所述执行模块还用于:
若所述微服务接口为待补偿接口,则确定所述待补偿接口是否为幂等接口;
若是,则确定所述待补偿接口的跳过标识为不跳过;
若否,则确定所述待补偿接口的调用场景;
若所述调用场景为所述待补偿接口对应的下游接口不依赖所述待补偿接口的返回结果,则确定所述待补偿接口的跳过标识为跳过;
若所述调用场景为所述待补偿接口对应的下游接口依赖所述待补偿接口的返回结果,则确定所述待补偿接口的跳过标识为不跳过。
优选地,所述确定模块还用于:
若携带,则确定所述服务请求对应的微服务接口,以及所述服务请求对应的异常接口,其中,所述异常接口为所述微服务接口中的至少一个接口;
基于所述异常接口的步骤ID和所述微服务接口对应的微服务编排,确定所述异常接口对应的上游接口和下游接口;
确定所述上游接口和所述异常接口为待补偿接口,确定所述下游接口为正常接口。
优选地,在执行补偿方式或执行接口逻辑的过程中,所述执行模块还用于:
若确定当前微服务接口为异常接口,则确定所述补偿标识的补偿次数;
若所述补偿次数小于预设次数,则基于所述微服务接口对应的微服务编排,确定所述异常接口的步骤ID,终止补偿方式或接口逻辑的执行,并更新所述补偿标识的补偿次数;
若所述补偿次数仍然小于预设次数,则将所述服务请求返回聚合层,其中,所述聚合层为检测服务请求的入口。
优选地,所述确定模块还用于:
若未携带,则确定所述服务请求对应的微服务接口,以及所述微服务接口对应的微服务编排;
所述执行模块还用于:
基于所述微服务编排,依次执行所述微服务接口对应的接口逻辑;
其中,若在执行当前微服务接口的接口逻辑时,确定当前微服务接口为异常接口,则基于所述微服务编排,确定所述异常接口的步骤ID,终止接口逻辑的执行,并使用补偿标识标记所述服务请求,将所述服务请求返回聚合层,其中,所述聚合层为检测服务请求的入口。
优选地,所述确定模块还用于:
确定当前微服务接口的服务状态,其中,若所述服务状态为停止服务,则确定当前微服务接口为异常接口;或
确定当前微服务接口的调用请求的调用数量,其中,若所述调用数量超过预设数量,则确定当前微服务接口为异常接口;或
确定当前微服务接口的调用响应时长,其中,若所述调用响应时长超过预设时长,则确定当前微服务接口为异常接口。
此外,为实现上述目的,本发明还提供一种微服务异常补偿设备,所述微服务异常补偿设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的微服务异常补偿程序,所述微服务异常补偿程序被所述处理器执行时实现如上所述的微服务异常补偿方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有微服务异常补偿程序,所述微服务异常补偿程序被处理器执行时实现如上所述的微服务异常补偿方法的步骤。
本发明提出的微服务异常补偿方法,若检测到服务请求,则确定所述服务请求是否携带补偿标识,所述补偿标识用于表征当前服务请求异常;若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型;若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式;若所述微服务接口为正常接口,则执行所述正常接口对应的接口逻辑。本发明将补偿机制聚焦在微服务接口层面,而不用理会业务状态的变化,减轻研发人员的开发压力,同时由于是针对微服务接口的补偿,因此,可复用在任一服务场景下,从而实现智能补偿。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明微服务异常补偿方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例设备可以是移动终端或服务器设备。
如图1所示,该设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及微服务异常补偿程序。
其中,操作系统是管理和控制微服务异常补偿设备与软件资源的程序,支持网络通信模块、用户接口模块、微服务异常补偿程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
在图1所示的微服务异常补偿设备中,所述微服务异常补偿设备通过处理器1001调用存储器1005中存储的微服务异常补偿程序,并执行下述微服务异常补偿方法各个实施例中的操作。
基于上述硬件结构,提出本发明微服务异常补偿方法实施例。
参照图2,图2为本发明微服务异常补偿方法第一实施例的流程示意图,所述方法包括:
步骤S10,若检测到服务请求,则确定所述服务请求是否携带补偿标识,所述补偿标识用于表征当前服务请求异常;
步骤S20,若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型;
步骤S30,若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式;
步骤S40,若所述微服务接口为正常接口,则执行所述正常接口对应的接口逻辑。
本实施例微服务异常补偿方法运用于理财机构或者银行等金融机构的微服务异常补偿设备中,微服务异常补偿设备可以是终端、机器人或者PC设备,为描述方便,微服务异常补偿设备以补偿设备简称。在本实施例中,补偿设备中部署有聚合层,其中,聚合层为服务请求入口的系统,用于组合下游各个微服务的调用,也即聚合层下有多个微服务接口,每个微服务接口对应一个服务,如订单管理服务,到账通知服务等,补偿设备在聚合层检测到服务请求时,通过调用多个微服务接口,并执行微服务接口的接口逻辑,从而完成该服务请求。
在补偿设备中,定义一个顶层对象属性,包含RequestId(请求ID),StepId(步骤ID),IsIgnore(跳过标识,代表是否跳过),CompensateExecute(补偿标识),CompensateInterface(补偿接口或补偿逻辑),补偿设备中各微服务接口在处理当前对应的服务请求时,都继承该顶层对象属性。服务请求在各微服务接口流转过程中,RequestId是不变的(代表是当前的服务场景);CompensateExecute(补偿标识,对于正常请求进来就是false(不携带补偿标识),如果是补偿调用,也即当前服务请求发生过异常,则为true(携带补偿标识));StepId是由补偿设备的补偿程序运行时自实现的底层机制自增的,每调用一个微服务接口StepID自增1,具体是在当前服务请求流传到下一微服务接口之前,执行StepID自增1;IsIgnore,CompensateInterface由补偿设备的补偿程序根据逻辑指定,如事先进行多次补偿测试,从而确定不同微服务接口的跳过标识,以及对应的补偿逻辑等。
相比于现有技术需要在当前服务场景的不同步骤分别定义不同错误码,用来标记执行到哪个步骤的错误,之后还要根据当前服务场景的业务状态(错误码)编写补偿逻辑进行重试,本发明通过顶层对象属性可以快速锁定发生异常的微服务接口,也即异常接口,并且针对每一个微服务接口定制补偿逻辑,可以在任一微服务接口异常时,采用相应的补偿逻辑进行补偿,不受当前服务场景的业务状态限制,可适用任一服务场景,实现智能补偿。
需要说明的是,对于用户而言,只需发起服务请求,如转账请求等,补偿设备前端即响应相应的请求结果,如转账成功,或者转账失败等,而转账过程中涉及到的转账对象,转账订单,转账帐号和转账到账通知等均由补偿设备的转账对象管理服务,转账订单管理服务,转账帐号管理服务和转账到账通知服务等微服务处理,也即,一个服务请求由后端多个微服务共同协同完成,因此,发明实施例针对的是补偿设备处理后端事项的微服务的异常情况,而现有技术针对的是服务请求的业务状态进行补偿,也即针对前端服务请求的业务状态的异常情况。
本实施例针对微服务可能出现的异常情况,采用事先编写的各个微服务接口的补偿方式,在检测到服务请求异常时,针对不同的微服务接口执行不同的补偿方式,从而使得补偿设备可以应对任何复杂的服务场景,实现微服务异常的智能补偿。
以下将对各个步骤进行详细说明:
步骤S10,若检测到服务请求,则确定所述服务请求是否携带补偿标识,所述补偿标识用于表征当前服务请求异常。
在本实施例中,补偿设备若检测到服务请求,则确定当前服务请求是否携带补偿标识,其中,补偿标识用于表征当前服务请求异常,也即,在检测到服务请求时,先确定当前服务请求是否出现过异常,从而决定选择何种方式来响应当前服务请求。
需要说明的是,在一实施例中,补偿标识包含于服务请求中,也即补偿标识随服务请求在各微服务接口流转而流转。
在另一实施例中,确定当前服务请求是否携带补偿标识的步骤具体包括:
确定所述服务请求的请求ID(RequestId),并在聚合层中查找所述请求ID对应的补偿标识(CompensateExecute);
确定所述补偿标识的状态是否是补偿状态,若是,则确定所述服务请求携带补偿标识。
也即,在另一实施例中,将补偿标识放置在聚合层而不是附着在服务请求上,方便统一管理,且能保证服务请求在各微服务接口的流转过程中是干净的,利于提高补偿设备的流转性能。
步骤S20,若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型。
在本实施例中,若确定当前服务请求携带补偿标识,也即确定当前服务请求出现过异常,则确定服务请求对应的微服务接口,具体可通过服务请求的服务类型确定对应的微服务接口,如当前服务请求的服务类型为转账服务,则确定对应的微服务接口为转账对象管理服务接口,转账订单管理服务接口,转账帐号管理服务接口和转账到账通知服务接口等。
然后,再确定各个微服务接口的接口类型,其中,接口类型包括待补偿接口和正常接口,待补偿接口指的是需要重跑的微服务接口,而正常接口指的是正常执行的微服务接口。
可以理解的,在处理服务请求时,若某一微服务接口出现异常,导致服务无法正常进行,则需要对出现异常的接口,以及该接口之前的上游微服务接口进行重跑,而正常接口则是出现异常的接口之后的下游微服务接口,由于出现异常时,异常接口的下游微服务接口来不及调用,并无法确定异常接口的下游接口会不会出现异常,因此,暂时将其确定为正常接口,在补偿时只需正常调用正常接口即可,若在调用正常接口的过程中发生调用异常,也即正常接口中存在异常接口,则同样报错,将该正常接口确定为异常接口,按照本实施例步骤重跑一遍。
进一步地,在一实施例中,步骤S20包括:
步骤a1,若携带,则确定所述服务请求对应的微服务接口,以及所述服务请求对应的异常接口,其中,所述异常接口为所述微服务接口中的至少一个接口;
在一实施例中,若确定当前服务请求携带补偿标识,也即确定当前服务请求出现过异常,则确定当前服务请求对应的微服务接口,以及服务请求对应的异常接口,其中,异常接口为微服务接口中的至少一个接口,也即确定该服务请求发生异常的异常接口是哪一个或者哪一些微服务接口。
需要说明的是,在一实施例中,在确定当前服务请求异常时,补偿设备会标记异常位置,具体标记异常接口的步骤ID(stepID),因此,补偿设备可根据标记,确定微服务接口中的异常接口,具体标记在下述实施例中详细说明。
步骤a2,基于所述异常接口的步骤ID和所述微服务接口对应的微服务编排,确定所述异常接口对应的上游接口和下游接口;
接着,根据异常接口的步骤ID和微服务接口对应的微服务编排,确定异常接口对应的上游接口(也即上游微服务接口)和下游接口(也即下游微服务接口),其中,微服务编排指的是一个服务请求调用多个微服务接口时,对于这些微服务接口调用逻辑的组合方式,也即微服务接口的调用顺序;步骤ID指的是微服务接口在调用顺序中的排序,比如,步骤1或步骤2。
为区别不同服务请求,在服务请求进入聚合层时,补偿设备会生成一个请求ID(RequestId),在此之后,每调用一个微服务接口,补偿设备都为微服务接口生成一个步骤ID,其中,步骤ID随着调用顺序的递进而递增。
如补偿设备在聚合层检测到服务请求,则为当前服务请求生成一个唯一的请求ID,然后,确定当前服务请求对应的微服务接口,以及微服务接口对应的微服务编排,如A→B→C→D→E,即当前服务请求对应A、B、C、D和E五个微服务接口,且五个微服务接口的调用顺序为调用A调用B调用C调用D调用E,在调用A时,补偿设备为A生成step1,在调用B时,补偿设备为B生成step2,在调用C时,补偿设备为C生成step3,在调用D时,补偿设备为D生成step4,在调用E时,补偿设备为E生成step5。
若C出现异常,也即C为异常接口,则可根据C的步骤ID=step3,以及A→B→C→D→E的调用顺序,确定A和B为C的上游接口,D和E为C的下游接口。
步骤a3,确定所述上游接口和所述异常接口为待补偿接口,确定所述下游接口为正常接口。
在一实施例中,确定上游接口和异常接口为待补偿接口,确定下游接口为正常接口,如上述例子,C为异常接口时,需要重跑A、B和C,由于在C出现异常时调用D和E没有意义,因此,不需要调用D和E,在补偿时,只需正常调用D和E。
步骤S30,若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式。
在本实施例中,若确定当前微服务接口为待补偿接口,也即当前微服务接口是异常接口或者异常接口的上游接口,则识别待补偿接口的跳过标识(IsIgnore),并根据跳过标识,决定对待补偿接口执行哪一种补偿方式。
具体的,在一实施例中,步骤S30包括:
步骤b1,若所述微服务接口为待补偿接口,则确定所述待补偿接口的跳过标识;
在一实施例中,若确定当前微服务接口为待补偿接口,则先确定待补偿接口的跳过标识,在一实施例中,跳过标识可事先确定,也即,针对不同微服务接口事先进行多次补偿测试,从而确定不同微服务接口的跳过标识。
在一实施例中,步骤b1包括:
步骤b11,若所述微服务接口为待补偿接口,则确定所述待补偿接口是否为幂等接口;
在一实施例中,若确定当前微服务接口为待补偿接口,则进一步确定待补偿接口是否是幂等接口,其中,幂等接口指的是使用同样的条件,一次请求和重复的多次请求对接口资源的影响是一致的接口,如同一个订单,无论是用户发起支付多少次,订单支付接口都只会扣款一次,也即,多次调用幂等接口的调用结果不影响。
步骤b12,若是,则确定所述待补偿接口的跳过标识为不跳过;
若确定当前待补偿接口是幂等接口,由于最终的调用结果不影响,则确定待补偿接口的跳过标识为不跳过,也即对当前待补偿接口进行重跑,且调用结果不影响。
步骤b13,若否,则确定所述待补偿接口的调用场景;
若确定当前待补偿接口不是幂等接口,也即每一次调用该待补偿接口得到的调用结果不一样,则进一步确定待补偿接口的调用场景,可以理解的,由于各微服务接口之间调用依赖不尽相同,因此,需要分析当前待补偿接口的调用场景。
步骤b14,若所述调用场景为所述待补偿接口对应的下游接口不依赖所述待补偿接口的返回结果,则确定所述待补偿接口的跳过标识为跳过;
在一实施例中,若当前待补偿接口的调用场景为:当前待补偿接口对应的下游接口不依赖当前待补偿接口的返回结果,也即调用结果,则确定当前待补偿接口的跳过标识为跳过,也即不管当前待补偿接口最终的返回结果是什么,都不影响下一接口的调用,因此,可直接跳过。
步骤b15,若所述调用场景为所述待补偿接口对应的下游接口依赖所述待补偿接口的返回结果,则确定所述待补偿接口的跳过标识为不跳过。
在一实施例中,若当前待补偿接口的调用场景为:当前待补偿接口对应的下游接口依赖当前待补偿接口的返回结果,则确定当前待补偿接口的跳过标识为不跳过,也即,调用下一接口需要当前待补偿接口的返回结果,因此,不可以跳过。
步骤b2,若所述跳过标识为不跳过,则确定所述待补偿接口的逻辑类型;
在一实施例中,若确定当前待补偿接口的跳过标识为不跳过,也即需要重跑当前待补偿接口,则确定当前待补偿接口的逻辑类型,从而决定采用哪一种补偿方式进行重跑,其中,逻辑类型包括查询逻辑,插入逻辑和更新逻辑。
步骤b3,若所述逻辑类型为查询逻辑,则调用所述待补偿接口重新执行所述待补偿接口对应的接口逻辑;
在一实施例中,若确定待补偿接口的逻辑类型为查询逻辑,则调用当前待补偿接口重新执行对应的接口逻辑,也即按照接口逻辑重跑一遍,其中,查询逻辑指的是在数据库查找某一目标对象,不改变数据库中的目标对象,与前一次执行结果一致,如订单查询服务,上一次执行时返回一个目标订单号,本次执行时返回同一个目标订单号等。
步骤b4,若所述逻辑类型为插入逻辑或者更新逻辑,则跳过所述待补偿接口并执行所述待补偿接口对应的补偿逻辑;
在一实施例中,若确定待补偿接口的逻辑类型为插入逻辑或者更新逻辑,则跳过当前待补偿接口,并执行待补偿接口对应的补偿逻辑。
其中,插入逻辑指的是当前待补偿接口在得到一个返回结果时,需要将返回结果插入数据库中保存,而为避免同一返回结果重复插入报错,则需要跳过当前待补偿接口,如订单管理服务,在执行相应的接口逻辑后得到一条订单号,并且需要将该订单号插入数据库中存储,在订单管理服务异常时,若重跑订单管理服务,则会插入一条一样的订单号,造成数据库中订单号不唯一报错,因此,在补偿时,跳过当前待补偿接口,并执行对应的补偿逻辑。
需要解释的是,补偿逻辑在具体实施时,可以单独设置一个补偿接口,该补偿接口包含补偿逻辑,也可以在当前待补偿接口中设置补偿逻辑,其中,补偿逻辑为预设的执行方法,如上述例子,补偿逻辑可为删除数据库中的返回结果,并插入新的补偿结果,具体可根据待补偿接口的业务属性事先设置。
更新逻辑则指的是当前待补偿接口每一次的返回结果需要带上更新信息,如时间等信息,如当前待补偿接口在提交订单时,需要带上提交时间,因此,即使补偿时提交的订单与异常时提交的订单一致,也需要额外的补偿逻辑来更新提交时间。
也即,若在当前待补偿接口的逻辑类型为插入逻辑或者更新逻辑时执行当前待补偿接口的接口逻辑,则会出现报错情况。
步骤b5,若所述跳过标识为跳过,则跳过所述待补偿接口并执行所述待补偿接口对应的补偿逻辑。
在一实施例中,若确定当前待补偿接口的跳过标识是跳过,则跳过当前待补偿接口并执行当前待补偿接口对应的补偿逻辑,也即当前待补偿接口异常,无法重跑,则用额外的补偿机制来替代当前待补偿接口。
其中,每一个微服务接口的补偿逻辑都是事先根据接口的业务属性定义的,如当前微服务接口的功能是在提交订单之后返回收到通知,但由于当前微服务接口异常,导致无法返回收到通知,致使后续微服务接口的调用无法进行,此时,可事先定义补偿逻辑:一律返回收到通知,因此,在当前微服务接口异常时,可执行补偿逻辑,返回收到通知等。
因此,本实施例的补偿方式包括重新执行接口逻辑,以及执行补偿逻辑。
步骤S40,若所述微服务接口为正常接口,则执行所述正常接口对应的接口逻辑。
在本实施例中,若确定当前微服务接口为正常接口,也即当前微服务接口是异常接口的下游接口,说明在异常时,没有执行该微服务接口的接口逻辑,并不清楚当前微服务接口是否会出现异常,此时,正常调用该微服务接口并执行对应的接口逻辑即可。
进一步地,在一实施例中,在执行补偿方式或执行接口逻辑的过程中,所述微服务异常补偿方法还包括:
步骤c,若确定当前微服务接口为异常接口,则确定所述补偿标识的补偿次数;
在一实施例中,在执行补偿方式或执行接口逻辑的过程中,若确定当前微服务接口为异常接口,也即该服务请求再一次发生异常,则确定该服务请求的补偿标识的补偿次数,避免多次补偿导致处理超时或做无意义工作。
步骤d,若所述补偿次数小于预设次数,则基于所述微服务接口对应的微服务编排,确定所述异常接口的步骤ID,终止补偿方式或接口逻辑的执行,并更新所述补偿标识的补偿次数;
在一实施例中,若当前服务请求的补偿次数小于预设次数,则基于微服务接口对应的微服务编排,重新确定异常接口的步骤ID,需要说明的是,该异常接口可以是上一次发生异常时的微服务接口,也可以是其他微服务接口。
然后,终止补偿方式或接口逻辑的执行,如上述例子,A→B→C→D→E,在C接口异常时,终止DE接口的调用,也即DE接口不需要执行对应的补偿方式或者接口逻辑。
最后由于是再一次出现异常,因此更新补偿标识的补偿次数。
步骤e,若所述补偿次数仍然小于预设次数,则将所述服务请求返回聚合层,其中,所述聚合层为检测服务请求的入口。
在一实施例中,在更新了补偿次数之后,若更新后的补偿次数仍然小于预设次数,则将服务请求返回聚合层,以便补偿设备再一次对其进行补偿,其中,聚合层为补偿设备检测服务请求的入口。
本实施例若检测到服务请求,则确定所述服务请求是否携带补偿标识,所述补偿标识用于表征当前服务请求异常;若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型;若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式;若所述微服务接口为正常接口,则执行所述正常接口对应的接口逻辑。本发明将补偿机制聚焦在微服务接口层面,而不用理会业务状态的变化,减轻研发人员的开发压力,同时由于是针对微服务接口的补偿,因此,可复用在任一服务场景下,从而实现智能补偿。
进一步地,基于本发明微服务异常补偿方法第一实施例,提出本发明微服务异常补偿方法第二实施例。
微服务异常补偿方法的第二实施例与微服务异常补偿方法的第一实施例的区别在于,步骤S10之后,微服务异常补偿方法还包括:
步骤f,若未携带,则确定所述服务请求对应的微服务接口,以及所述微服务接口对应的微服务编排,并基于所述微服务编排,依次执行所述微服务接口对应的接口逻辑;
其中,若在执行当前微服务接口的接口逻辑时,确定当前微服务接口为异常接口,则基于所述微服务编排,确定所述异常接口的步骤ID,终止接口逻辑的执行,并使用补偿标识标记所述服务请求,将所述服务请求返回聚合层,其中,所述聚合层为检测服务请求的入口。
本实施例在确定当前服务请求未携带补偿标识时,正常执行各微服务接口的接口逻辑,若在执行接口逻辑的过程中出现异常,则对异常的微服务接口进行标记,同时,也对当前服务请求进行标记,以便后续对其进行补偿,也即本实施的补偿设备可以执行正常的接口调用,也可以对异常的接口调用进行补偿,能适用任何复杂的服务场景,智能性较高。
以下将对各个步骤进行详细说明:
步骤f,若未携带,则确定所述服务请求对应的微服务接口,以及所述微服务接口对应的微服务编排,并基于所述微服务编排,依次执行所述微服务接口对应的接口逻辑。
在本实施例中,补偿设备若确定当前服务请求未携带补偿标识,说明当前服务请求未出现过异常,则先确定当前服务请求对应的微服务接口,以及微服务接口对应的微服务编排,从而确定各微服务接口的调用顺序,因此,可根据微服务接口对应的微服务编排,依次执行微服务接口对应的接口逻辑,而不用触发补偿逻辑。
其中,若在执行当前微服务接口的接口逻辑时,确定当前微服务接口为异常接口,则根据微服务接口对应的微服务编排,确定异常接口的步骤ID,然后,终止接口逻辑的执行,并使用补偿标识标记服务请求,使得当前服务请求携带补偿标识,具体优选在聚合层将当前服务请求的RequestId与CompensateExecute绑定,并设置该CompensateExecute的补偿状态为true,使得当前服务请求携带补偿标识,最后将携带有补偿标识的服务请求返回聚合层,以便补偿设备对其进行补偿。
进一步地,确定当前微服务接口为异常接口的步骤包括:
步骤i,确定当前微服务接口的服务状态,其中,若所述服务状态为停止服务,则确定当前微服务接口为异常接口;或
步骤ii,确定当前微服务接口的调用请求的调用数量,其中,若所述调用数量超过预设数量,则确定当前微服务接口为异常接口;或
步骤iii,确定当前微服务接口的调用响应时长,其中,若所述调用响应时长超过预设时长,则确定当前微服务接口为异常接口。
在一实施例中,确定当前微服务接口是否是异常接口,可通过微服务接口的服务状态确定,其中,服务状态为停止服务,则确定当前微服务接口为异常接口,如上述例子,A→B→C→D→E,若B在更新重启,则此时无法调用B,因此,B的服务状态为停止服务,B为异常接口。
此外,还可根据微服务接口的调用请求的调用数量确定,其中,调用请求的调用数量若超过预设数量,则确定当前微服务接口为异常接口,这是为了避免多次调用请求,导致并发异常。
此外,还可根据微服务接口的调用响应时长确定,其中,微服务接口的调用时长超过预设时长,则确定当前微服务接口是异常接口,可以理解,若出现网络抖动,如网络卡顿,则会造成响应不及时,因此发出异常等。
本实施例在确定当前服务请求未携带补偿标识时,正常执行各微服务接口的接口逻辑,若在执行接口逻辑的过程中出现异常,则对异常的微服务接口进行标记,同时,也对当前服务请求进行标记,以便后续对其进行补偿,也即本实施的补偿设备可以执行正常的接口调用,也可以对异常的接口调用进行补偿,能适用任何复杂的服务场景,智能性较高。
本发明还提供一种微服务异常补偿装置。本发明微服务异常补偿装置包括:
检测模块,用于若检测到服务请求,则确定所述服务请求是否携带补偿标识,所述补偿标识用于表征当前服务请求异常;
确定模块,用于若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型;
执行模块,用于若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式;
所述执行模块,用于若所述微服务接口为正常接口,则执行所述正常接口对应的接口逻辑。
优选地,所述执行模块还用于:
若所述微服务接口为待补偿接口,则确定所述待补偿接口的跳过标识;
若所述跳过标识为不跳过,则确定所述待补偿接口的逻辑类型;
若所述逻辑类型为查询逻辑,则调用所述待补偿接口重新执行所述待补偿接口对应的接口逻辑;
若所述逻辑类型为插入逻辑或者更新逻辑,则跳过所述待补偿接口并执行所述待补偿接口对应的补偿逻辑;
若所述跳过标识为跳过,则跳过所述待补偿接口并执行所述待补偿接口对应的补偿逻辑。
优选地,所述执行模块还用于:
若所述微服务接口为待补偿接口,则确定所述待补偿接口是否为幂等接口;
若是,则确定所述待补偿接口的跳过标识为不跳过;
若否,则确定所述待补偿接口的调用场景;
若所述调用场景为所述待补偿接口对应的下游接口不依赖所述待补偿接口的返回结果,则确定所述待补偿接口的跳过标识为跳过;
若所述调用场景为所述待补偿接口对应的下游接口依赖所述待补偿接口的返回结果,则确定所述待补偿接口的跳过标识为不跳过。
优选地,所述确定模块还用于:
若携带,则确定所述服务请求对应的微服务接口,以及所述服务请求对应的异常接口,其中,所述异常接口为所述微服务接口中的至少一个接口;
基于所述异常接口的步骤ID和所述微服务接口对应的微服务编排,确定所述异常接口对应的上游接口和下游接口;
确定所述上游接口和所述异常接口为待补偿接口,确定所述下游接口为正常接口。
优选地,在执行补偿方式或执行接口逻辑的过程中,所述执行模块还用于:
若确定当前微服务接口为异常接口,则确定所述补偿标识的补偿次数;
若所述补偿次数小于预设次数,则基于所述微服务接口对应的微服务编排,确定所述异常接口的步骤ID,终止补偿方式或接口逻辑的执行,并更新所述补偿标识的补偿次数;
若所述补偿次数仍然小于预设次数,则将所述服务请求返回聚合层,其中,所述聚合层为检测服务请求的入口。
优选地,所述确定模块还用于:
若未携带,则确定所述服务请求对应的微服务接口,以及所述微服务接口对应的微服务编排;
所述执行模块还用于:
基于所述微服务编排,依次执行所述微服务接口对应的接口逻辑;
其中,若在执行当前微服务接口的接口逻辑时,确定当前微服务接口为异常接口,则基于所述微服务编排,确定所述异常接口的步骤ID,终止接口逻辑的执行,并使用补偿标识标记所述服务请求,将所述服务请求返回聚合层,其中,所述聚合层为检测服务请求的入口。
优选地,所述确定模块还用于:
确定当前微服务接口的服务状态,其中,若所述服务状态为停止服务,则确定当前微服务接口为异常接口;或
确定当前微服务接口的调用请求的调用数量,其中,若所述调用数量超过预设数量,则确定当前微服务接口为异常接口;或
确定当前微服务接口的调用响应时长,其中,若所述调用响应时长超过预设时长,则确定当前微服务接口为异常接口。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有微服务异常补偿程序,所述微服务异常补偿程序被处理器执行时实现如上所述的微服务异常补偿方法的步骤。
其中,在所述处理器上运行的微服务异常补偿程序被执行时所实现的方法可参照本发明微服务异常补偿方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书与附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种微服务异常补偿方法,其特征在于,所述微服务异常补偿方法包括如下步骤:
若检测到服务请求,则确定所述服务请求是否携带补偿标识,所述补偿标识用于表征当前服务请求异常;
若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型;
若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式;
若所述微服务接口为正常接口,则执行所述正常接口对应的接口逻辑。
2.如权利要求1所述的微服务异常补偿方法,其特征在于,所述若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式的步骤包括:
若所述微服务接口为待补偿接口,则确定所述待补偿接口的跳过标识;
若所述跳过标识为不跳过,则确定所述待补偿接口的逻辑类型;
若所述逻辑类型为查询逻辑,则调用所述待补偿接口重新执行所述待补偿接口对应的接口逻辑;
若所述逻辑类型为插入逻辑或者更新逻辑,则跳过所述待补偿接口并执行所述待补偿接口对应的补偿逻辑;
若所述跳过标识为跳过,则跳过所述待补偿接口并执行所述待补偿接口对应的补偿逻辑。
3.如权利要求2所述的微服务异常补偿方法,其特征在于,所述若所述微服务接口为待补偿接口,则确定所述待补偿接口的跳过标识的步骤包括:
若所述微服务接口为待补偿接口,则确定所述待补偿接口是否为幂等接口;
若是,则确定所述待补偿接口的跳过标识为不跳过;
若否,则确定所述待补偿接口的调用场景;
若所述调用场景为所述待补偿接口对应的下游接口不依赖所述待补偿接口的返回结果,则确定所述待补偿接口的跳过标识为跳过;
若所述调用场景为所述待补偿接口对应的下游接口依赖所述待补偿接口的返回结果,则确定所述待补偿接口的跳过标识为不跳过。
4.如权利要求1所述的微服务异常补偿方法,其特征在于,所述若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型的步骤包括:
若携带,则确定所述服务请求对应的微服务接口,以及所述服务请求对应的异常接口,其中,所述异常接口为所述微服务接口中的至少一个接口;
基于所述异常接口的步骤ID和所述微服务接口对应的微服务编排,确定所述异常接口对应的上游接口和下游接口;
确定所述上游接口和所述异常接口为待补偿接口,确定所述下游接口为正常接口。
5.如权利要求1-4任一项所述的微服务异常补偿方法,其特征在于,在执行补偿方式或执行接口逻辑的过程中,所述微服务异常补偿方法还包括:
若确定当前微服务接口为异常接口,则确定所述补偿标识的补偿次数;
若所述补偿次数小于预设次数,则基于所述微服务接口对应的微服务编排,确定所述异常接口的步骤ID,终止补偿方式或接口逻辑的执行,并更新所述补偿标识的补偿次数;
若所述补偿次数仍然小于预设次数,则将所述服务请求返回聚合层,其中,所述聚合层为检测服务请求的入口。
6.如权利要求1-4任一项所述的微服务异常补偿方法,其特征在于,所述若检测到服务请求,则确定所述服务请求是否携带补偿标识的步骤之后,所述微服务异常补偿方法还包括:
若未携带,则确定所述服务请求对应的微服务接口,以及所述微服务接口对应的微服务编排,并基于所述微服务编排,依次执行所述微服务接口对应的接口逻辑;
其中,若在执行当前微服务接口的接口逻辑时,确定当前微服务接口为异常接口,则基于所述微服务编排,确定所述异常接口的步骤ID,终止接口逻辑的执行,并使用补偿标识标记所述服务请求,将所述服务请求返回聚合层,其中,所述聚合层为检测服务请求的入口。
7.如权利要求6所述的微服务异常补偿方法,其特征在于,所述确定当前微服务接口为异常接口的步骤包括:
确定当前微服务接口的服务状态,其中,若所述服务状态为停止服务,则确定当前微服务接口为异常接口;或
确定当前微服务接口的调用请求的调用数量,其中,若所述调用数量超过预设数量,则确定当前微服务接口为异常接口;或
确定当前微服务接口的调用响应时长,其中,若所述调用响应时长超过预设时长,则确定当前微服务接口为异常接口。
8.一种微服务异常补偿装置,其特征在于,所述微服务异常补偿装置包括:
检测模块,用于若检测到服务请求,则确定所述服务请求是否携带补偿标识,所述补偿标识用于表征当前服务请求异常;
确定模块,用于若携带,则确定所述服务请求对应的微服务接口,并确定所述微服务接口的接口类型;
执行模块,用于若所述微服务接口为待补偿接口,则基于所述待补偿接口的跳过标识,执行所述待补偿接口对应的补偿方式;
所述执行模块,用于若所述微服务接口为正常接口,则执行所述正常接口对应的接口逻辑。
9.一种微服务异常补偿设备,其特征在于,所述微服务异常补偿设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的微服务异常补偿程序,所述微服务异常补偿程序被所述处理器执行时实现如权利要求1至7中任一项所述的微服务异常补偿方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有微服务异常补偿程序,所述微服务异常补偿程序被处理器执行时实现如权利要求1至7中任一项所述的微服务异常补偿方法的步骤。
CN202010603662.3A 2020-06-29 2020-06-29 微服务异常补偿方法、装置、设备与计算机可读存储介质 Pending CN111752740A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010603662.3A CN111752740A (zh) 2020-06-29 2020-06-29 微服务异常补偿方法、装置、设备与计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010603662.3A CN111752740A (zh) 2020-06-29 2020-06-29 微服务异常补偿方法、装置、设备与计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN111752740A true CN111752740A (zh) 2020-10-09

Family

ID=72676887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010603662.3A Pending CN111752740A (zh) 2020-06-29 2020-06-29 微服务异常补偿方法、装置、设备与计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111752740A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769712A (zh) * 2020-12-23 2021-05-07 中移(杭州)信息技术有限公司 一种补偿方法、装置、电子设备及存储介质
CN114024999A (zh) * 2022-01-10 2022-02-08 中航信移动科技有限公司 一种任务补偿方法、系统、装置、电子设备、存储介质
CN114244729A (zh) * 2021-12-01 2022-03-25 中国邮政储蓄银行股份有限公司 一种适用于服务编排的漏斗型超时控制方法及装置
CN115509770A (zh) * 2022-09-22 2022-12-23 北京车欢欢信息技术有限公司 微服务调用方法、装置、电子设备及可读存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769712A (zh) * 2020-12-23 2021-05-07 中移(杭州)信息技术有限公司 一种补偿方法、装置、电子设备及存储介质
CN114244729A (zh) * 2021-12-01 2022-03-25 中国邮政储蓄银行股份有限公司 一种适用于服务编排的漏斗型超时控制方法及装置
CN114024999A (zh) * 2022-01-10 2022-02-08 中航信移动科技有限公司 一种任务补偿方法、系统、装置、电子设备、存储介质
CN115509770A (zh) * 2022-09-22 2022-12-23 北京车欢欢信息技术有限公司 微服务调用方法、装置、电子设备及可读存储介质
CN115509770B (zh) * 2022-09-22 2023-12-05 北京车欢欢信息技术有限公司 微服务调用方法、装置、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN111752740A (zh) 微服务异常补偿方法、装置、设备与计算机可读存储介质
CN108595157B (zh) 区块链数据的处理方法、装置、设备和存储介质
US8954949B2 (en) Smart patch delivery system
JP2019500680A (ja) データ処理方法及び装置
US20080255903A1 (en) Business process execution method, business process engine and method for deploying a business process engine
US8392921B2 (en) Apparatus and method of coordinating operation action of robot software component
WO2019148721A1 (zh) 电子装置、互联网服务系统风险预警方法及存储介质
US20130103990A1 (en) Change management system and method
US10274919B2 (en) Method, device and computer program product for programming a plurality of control units
CN112288577B (zh) 分布式服务的交易处理方法、装置、电子设备和介质
CN107861765B (zh) 产品配置方法、设备和计算机可读存储介质
CN110851207A (zh) 状态转换管理方法、装置、电子设备和计算机可读存储介质
CN110347735A (zh) 配置化的数据转发异常补处理方法、装置及可读存储介质
US11347491B2 (en) Containerized application deployment
CN110780944B (zh) 一种应用权限的启动方法、设备及机器可读存储介质
CN111352610A (zh) 接口返回值修改方法、装置、电子设备及存储介质
CN116108090A (zh) 在应用层进行数据库读写分离的方法、系统及设备
CN116418829A (zh) 系统的处理方法、装置、设备和存储介质
CN112328450A (zh) 数据监控方法、装置、计算机设备及存储介质
CN112035292A (zh) 一种数据写入异常的处理方法、装置、设备及存储介质
CN112261072A (zh) 一种服务调用方法、装置、设备和存储介质
CN110852873A (zh) 数据授信方法、装置、设备及计算机可读存储介质
CN110740062A (zh) 断点续传方法和装置
CN112988222B (zh) 信息系统集成项目接口版本兼容性检查方法及系统
US20230215747A1 (en) Process data detection method, computer readable medium, and electronic device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination