CN116909791A - 一种服务降级容错方法、装置、电子设备及存储介质 - Google Patents

一种服务降级容错方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116909791A
CN116909791A CN202310905164.8A CN202310905164A CN116909791A CN 116909791 A CN116909791 A CN 116909791A CN 202310905164 A CN202310905164 A CN 202310905164A CN 116909791 A CN116909791 A CN 116909791A
Authority
CN
China
Prior art keywords
service
degradation
dependent
fault tolerance
preset
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
CN202310905164.8A
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.)
B&t Home Network Technology Shanghai Co ltd
Original Assignee
B&t Home Network Technology Shanghai 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 B&t Home Network Technology Shanghai Co ltd filed Critical B&t Home Network Technology Shanghai Co ltd
Priority to CN202310905164.8A priority Critical patent/CN116909791A/zh
Publication of CN116909791A publication Critical patent/CN116909791A/zh
Pending legal-status Critical Current

Links

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/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种服务降级容错方法、装置、电子设备及存储介质,通过通过动态开关统一监测服务状态;若服务状态达到预设阈值,则控制降级标识触发服务降级;响应预设服务降级策略,记录依赖服务信息;主服务请求调用依赖服务信息执行服务操作。如此可以解决解决服务降级导致的服务功能不可用,提高了系统的稳定性。

Description

一种服务降级容错方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种服务降级容错方法、装置、电子设备及存储介质。
背景技术
目前随着业务的发展,分布式微服务逐渐普及,网站的服务器经常会遇到在某个时刻流量突然增大的情况,会导致系统异常、高并发或其他不可控的情况,服务降级允许我们有针对性地减少服务的功能或质量,以保证整体系统的稳定性和可用性。服务降级可以在高负载或异常情况下,服务降级可以减轻系统的负担,防止系统因过度负载而崩溃或响应变慢。通过暂时关闭某些功能,系统可以专注于保持核心功能的正常运行。
但是当下游的依赖服务因服务降级导致不可用,会导致积压大量请求,造成请求线程阻塞,最终导致调用链路被拖垮。为了避免调用链路被拖垮,可以开启服务熔断,在固定时间窗口内,接口调用超时比率达到一个阈值,会开启熔断。进入熔断状态后,后续对该服务接口的调用不再经过网络,直接执行本地的默认方法,达到服务降级的效果。例如双11购物节,淘宝订单通过降级地址编辑服务,保证了订单提交的正常运行。客户只能通过默认地址下单,不能够变更发货地址。虽然保证了交易订单的操作,但是这将会影响用户的购买体验。
现急需提供一种灵活解决服务降级导致的服务功能不可用的方法。
发明内容
本发明提供一种服务降级容错方法、装置、电子设备及存储介质,用以解决现有技术中存在的缺陷。
本发明提供一种服务降级容错方法,包括:
通过动态开关统一监测服务状态;
若服务状态达到预设阈值,则控制降级标识触发服务降级;
响应预设服务降级策略,记录依赖服务信息;
主服务请求调用依赖服务信息执行服务操作。
根据本发明提供的一种服务降级容错方法,所述响应预设服务降级策略,记录依赖服务信息,具体包括:
执行补偿服务降级策略,记录服务请求操作参数,所述操作参数包括降级标识、时间戳、参与者信息、相关数据或状态;
当依赖服务降级恢复,通过定时任务方式请求依赖服务,触发补偿操作,依赖服务恢复正常流程。
根据本发明提供的一种服务降级容错方法,所述响应预设服务降级策略,记录依赖服务信息,具体包括:
执行缓存服务降级策略,将依赖服务的数据存储至缓存中,保存依赖服务的数据到本地表。
根据本发明提供的一种服务降级容错方法,所述通过动态开关统一监测服务状态,具体包括:
初始化降级标识;基于AOP原理声明异常切面类;在所述异常切面类中定义切入点位置;基于所述切入点位置捕捉异常,异常可以是RpcException异常、token异常、鉴权失败中的一个或多个;基于单位时间内捕捉到的异常作为当前的服务状态。
根据本发明提供的一种服务降级容错方法,还包括:
若服务降级,则启动定时任务器,预设轮询间隔时间循环调用服务,当轮询间隔内成功调用服务满足预设数值范围,则唤醒服务升级。
根据本发明提供的一种服务降级容错方法,还包括:
基于当前网络状况,响应当前服务异常,触发服务告警策略,调整服务降级模式。
根据本发明提供的一种服务降级容错方法,所述响应预设服务降级策略,记录依赖服务信息,具体包括:
将依赖服务信息进行序列化处理,得到json数据,将所述json数据存储至所述缓存中。
本发明还提供一种服务降级容错装置,包括:
监测模块,用于通过动态开关统一监测服务状态;
判断模块,用于若服务状态达到预设阈值,则控制降级标识触发服务降级;
存储模块,用于响应预设服务降级策略,记录依赖服务信息;
执行处理模块,用于主服务请求调用依赖服务信息执行服务操作。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述服务降级容错方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述服务降级容错方法的步骤。
本发明提供的服务降级方法、装置、电子设备及存储介质,通过在统一监测拦截服务状态,若服务状态达到预设阈值,则控制降级标识触发服务降级;根据不同服务类型,选择不同策略记录依赖服务信息,包括执行补偿服务降级策略和缓存服务降级策略,从而解决服务降级导致的服务功能不可用。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1是本发明提供的服务降级容错方法的流程示意图;
图2是本发明提供的监测服务状态的流程示意图;
图3是本发明提供的服务降级容错装置的结构示意图;
图4是本发明提供的服务降级容错方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。术语“第一”、“第二”仅用于命名区分,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征。
由于现有技术中存在的服务降级容错方案存在诸多问题,为此,本发明实施例中提供了一种服务降级容错方法。
图1为本发明实施例中提供的服务降级容错方法的流程示意图,如图1所示,该流程包括如下步骤:
S101,通过动态开关统一监测服务状态。
在本实施例中,服务是指可执行的服务,服务可以是主服务,也可以是依赖服务,服务状态是指调用服务是否可用的状态,当成功调用服务则将成功调用的服务状态存储到redis缓存中,并且记录成功调用的次数,则服务状态为可用一次,success_time=1;当调用服务失败,则将失败调用的服务状态存储到redis缓存中,并且记录失败调用的次数,则服务状态为可用一次,fail_time=1。
图2为本发明实施例中提供的监测服务状态的流程示意图,如图2所示,该方法包括:
S201,初始化降级标识。
在本实施例中,所述降级标识包括reduce_flag标识,当reduce_flag=1,表示触发服务降级,当reduce_flag=0,表示服务正常,不触发服务降级。除此之外,初始化降级标识还包括success_time=0、fail_time=0,即将调用服务成功的次数和降级服务失败的次数计为0,初始化降级标识可以保证服务处于正常状态。
S202,基于AOP原理声明异常切面类。
可理解的是,上述AOP(Aspect Oriented Programming,面向切面编程)原理即一种通过预编译方式和运行期间动态代理实现程序功能的统一维护的技术。利用AOP原理可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP原理能够在不影响原有功能的前提下,为软件横向扩展功能。在本方案的具体实现中,可以通过AOP原理中的@Aspect来声明一个切面,例如定义一个GlobalException类,且在该类上方标明@Aspect从而来声明一个异常切面类。
S203,在所述异常切面类中定义切入点位置。
需要说明的是,上述切入点位置指的是连接点(如某个方法的调用、异常抛出等)位置的集合,指明触发通知(Advice)的条件。Advice是某个连接点处的处理逻辑,也就是注入到连接点的代码。
S204,基于所述切入点位置捕捉异常,异常可以是RpcException异常、token异常、鉴权失败中的一个或多个。
应理解的是,上述异常信息指的是在服务调用的过程中,由于服务器宕机、网络波动、高负载等状态而导致未被正常执行从而导致服务不可用的异常,如RpcException异常(远程过程调用异常)是指在进行远程服务过程调用(RPC)时发生的异常情况;Token异常(令牌)是指在身份验证和授权过程中发生的问题;鉴权失败是指当服务调用进行身份验证和权限检查时,系统判断用户或客户端没有足够的权限访问受保护的资源或执行特定的操作。
S205,基于单位时间内捕捉到的异常作为当前的服务状态。
应理解的是,所述单位时间是可以预先设置的,可以是一分钟内,调用服务失败的次数作为当前服务的状态。例如,一分钟内失败次数达到20次,作为当前服务状态。
S102,若服务状态达到预设阈值,则控制降级标识触发服务降级;
统计单位时间内捕捉异常的次数,若异常次数达到一定阈值,则设置reduce_flag=1触发服务降级。
在本方案的具体实现中,验证单位时间内捕捉到异常的次数,例如一分钟内,捕捉到异常的次数超过20次,则控制降级标识,触发服务降级。如果一分钟内,捕捉到异常的次数不超过20次,则记录累计异常调用量,将累计量存至缓存中,缓存可以是业务系统内用于存储目标数据的存储空间,例如可以是Redis数据库(RedisDB)和Mysql数据库等,本发明实施例中对此不作具体限定。
S103,响应预设服务降级策略,记录依赖服务信息;
在本方案的具体实现中,所述服务降级策略是指当服务出现故障或异常时,为了保证系统稳定性和可用性而采取的一种应对措施。通过合理的服务降级策略,可以降低系统负载、减少对关键资源的依赖,并确保核心功能的可用性。所述依赖服务和主服务相互依赖,主服务运行必须获得依赖服务的数据源,依赖服务的数据源是指依赖服务执行的结果。例如,当订单业务系统执行下单主服务时,必须调用积分依赖服务获得用户的会员积分数据。
需要说明的是,所述记录依赖服务信息包括,执行延迟服务降级策略和执行缓存服务降级策略。
在本方案的具体实现中,当动态开关统一监测服务状态,服务状态达到预设阈值时,则控制降级标识触发服务降级。服务发生降级时,根据服务的类型,选择执行延迟服务降级策略或者缓存服务降级策略。当主服务的执行仅需要依赖服务的缓存数据时,则执行缓存服务降级策略,当主服务的执行需要依赖服务的缓存数据,并且会改变依赖服务的数据时,导致依赖服务数据更新,则执行延迟服务降级策略。
在上述实施例的基础上,响应预设服务降级策略,记录依赖服务信息包括:执行补偿服务降级策略,记录服务请求操作参数,所述操作参数包括降级标识、时间戳、参与者信息、相关数据或状态;当依赖服务降级恢复,通过定时任务方式请求依赖服务,触发补偿操作,依赖服务恢复正常流程。
本发明实施例中,在记录依赖服务信息是指将依赖服务信息存储至缓存中时,可以先将目标数据进行序列化处理,得到json数据;然后将json数据存储至缓存中。也就是说,在缓存中存储的目标数据是json形式的,如此可以提高目标数据从缓存读取的速度。
在本方案的具体实现中,记录服务请求操作参数是指当执行补偿服务降级策略时,记录服务请求的参数到操作表中,操作表的数据可以包括降级标识reduce_flag、时间戳、参与服务者的信息、依赖服务的数据和状态等等,记录操作表的信息可以采用缓存的形式保存,包括Redis、ehcache、CacheManager等数据库存储类型,这里不做限定。响应服务降级恢复,服务降级恢复可以是手动恢复也可以是启动TimerTask触发定时任务降级恢复,在此不做具体限定。补偿操作是指,当主服务调用依赖服务导致依赖服务的应用数据和实际数据不一致时,在服务降级恢复后,将存储至缓存中的依赖服务数据同步至依赖服务数据中,从而保证依赖服务数据的准确性。
例如,当服务为操作更新类的服务,如增减积分服务,注册会员主服务采用补偿的方式来保证最终数据的一致性。一旦增减积分服务恢复正常,则通过定时任务方式请求积分服务,当积分服务恢复正常,则更新依赖服务数据,如果失败则继续重试。从而将服务状态恢复到一个稳定一致的状态,通过对增减积分服务进行补偿,使系统状态保持一致性。
在上述实施例的基础上,响应预设服务降级策略,记录依赖服务信息包括:执行缓存服务降级策略,将依赖服务的数据存储至缓存中,保存依赖服务的数据到本地表。
在本方案的具体实现中,执行缓存服务降级策略是指当服务降级导致,依赖服务无法被调用,此时主服务可以根据缓存中存储的依赖服务数据执行降级。如此可以快速灵活的实现对目标服务的降级处理,当依赖服务不可用时,主服务可以从缓存中读取数据,不影响主服务的系统稳定性。
例如,当服务为积分查询服务时,保存积分查询服务在本地缓存中,这样订单进行积分查询服务时,即时积分服务不可用,主服务依然可以响应积分信息的查询。
S104,主服务请求调用依赖服务信息执行服务操作。
在本方案的具体实现中,当服务根据服务类型执行延迟服务降级策略或执行缓存服务降级策略,从缓存中调用依赖服务信息,执行服务操作,从而在服务降级后,主服务依然能够调用依赖服务信息,保障业务的正常运行。
在上述实施例的基础上,本发明实施例中提供的服务降级容错方法还包括:若服务降级,则启动定时任务器,预设轮询间隔时间循环调用服务,当轮询间隔内成功调用服务满足预设数值范围,则唤醒服务升级。
在本方案的具体实现中,当服务降级开关打开服务降级,依赖服务不再提供服务,启动TimerTask触发式定时任务,在预设时间间隔内循环执行调用服务,在轮询调用服务的过程中,判断服务调用是否成功,并根据一定的条件判断是否满足预设的数值范围。当系统恢复正常或者系统负载减轻时,通过服务升级策略重新开启之前关闭的服务或功能。例如,一旦发送降级,启动TimerTask触发式定时任务,循环(没5秒执行一次,直到升级成功)去调用积分服务,一旦满足升级条件一分钟内连续五次成功,则唤醒降级,将reduce_flag设置为0。
在上述实施例的基础上,本发明实施例中提供的服务降级容错方法还包括:基于当前网络状况,响应当前服务异常,触发服务告警策略,调整服务降级模式。
在本方案的具体实现中,当系统压力较大或某些服务出现故障时,为了避免系统整体崩溃,触发服务降级。除此之外,在网络状况处于高峰期的时候,因为网络抖动等原因,而非系统故障,也会导致服务不可用,触发服务降级。又或者当网络状况处于低峰期的时候,请求量不够触发服务降级,但实际服务已经不可用。
例如,当网络状况处于高峰期的时候,若服务状态达到预设阈值,触发服务降级的同时,发出告警消息,告警消息包含降级标识、时间戳、参与服务者的信息、依赖服务的数据和状态等等,基于告警消息,以快速定位问题,恢复系统服务。
当网络状况处于低峰期的时候,预设的服务降级阈值为50次调用失败,当前服务已经不可用,则触发告警消息,响应告警消息,基于网络状况及服务状态,触发服务降级。
如图3所述,在上述实施例的基础上,本发明实施例中提供了一种服务降级容错装置,包括:监测模块31、判断模块32、存储模块33和执行处理模块34。
监测模块31,用于通过动态开关统一监测服务状态;
判断模块32,用于若服务状态达到预设阈值,则控制降级标识触发服务降级;
存储模块33,用于响应预设服务降级策略,记录依赖服务信息;
执行处理模块34,用于主服务请求调用依赖服务信息执行服务操作。
在上述实施例的基础上,本发明实施例中提供的服务降级容错装置,所述存储模块,具体用于:
执行补偿服务降级策略,记录服务请求操作参数,所述操作参数包括降级标识、时间戳、参与者信息、相关数据或状态;
当依赖服务降级恢复,通过定时任务方式请求依赖服务,触发补偿操作,依赖服务恢复正常流程。
在上述实施例的基础上,本发明实施例中提供的服务降级容错装置,所述存储模块,还具体用于:
执行缓存服务降级策略,将依赖服务的数据存储至缓存中,保存依赖服务的数据到本地表。
在上述实施例的基础上,本发明实施例中提供的服务降级容错装置,所述监测模块,具体用于:
初始化降级标识;基于AOP原理声明异常切面类;在所述异常切面类中定义切入点位置;基于所述切入点位置捕捉异常,异常可以是RpcException异常、token异常、鉴权失败中的一个或多个;基于单位时间内捕捉到的异常作为当前的服务状态。
在上述实施例的基础上,本发明实施例中提供的服务降级容错装置,还包括服务升级模块,用于:
若服务降级,则启动定时任务器,预设轮询间隔时间循环调用服务,当轮询间隔内成功调用服务满足预设数值范围,则唤醒服务升级。
在上述实施例的基础上,本发明实施例中提供的服务降级容错装置,还包括告警模块,用于:
基于当前网络状况,响应当前服务异常,触发服务告警策略,调整服务降级模式。
在上述实施例的基础上,本发明实施例中提供的服务降级容错装置,所述存储模块,还具体用于:
将依赖服务信息进行序列化处理,得到json数据,将所述json数据存储至所述缓存中。
具体地,本发明实施例中提供的服务降级容错装置中各模块的作用与上述方法类实施例中各步骤的操作流程是一一对应的,实现的效果也是一致的,具体参见上述实施例,本发明实施例中对此不再赘述。
如图4所示,根据本公开实施例的电子设备1000包括处理器1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。处理器1001例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1001还可以包括用于缓存用途的板载存储器。处理器1001可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1003中,存储有电子设备1000操作所需的各种程序和数据。处理器1001、ROM 1002以及RAM 1003通过总线1004彼此相连。处理器1001通过执行ROM 1002和/或RAM1003中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1002和RAM 1003以外的一个或多个存储器中。处理器1001也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1000还可以包括输入/输出(I/O)接口1005,输入/输出(I/O)接口1005也连接至总线1004。电子设备1000还可以包括连接至I/O接口1005的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1002和/或RAM 1003和/或ROM 1002和RAM1003以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
在该计算机程序被处理器1001执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1009被下载和安装,和/或从可拆卸介质1011被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被处理器1001执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (10)

1.一种服务降级容错方法,其特征在于,包括:
通过动态开关统一监测服务状态;
若服务状态达到预设阈值,则控制降级标识触发服务降级;
响应预设服务降级策略,记录依赖服务信息;
主服务请求调用依赖服务信息执行服务操作。
2.根据权利要求1所述的服务降级容错方法,其特征在于,所述响应预设服务降级策略,记录依赖服务信息,具体包括:
执行补偿服务降级策略,记录服务请求操作参数,所述操作参数包括降级标识、时间戳、参与者信息、相关数据或状态;
当依赖服务降级恢复,通过定时任务方式请求依赖服务,触发补偿操作,依赖服务恢复正常流程。
3.根据权利要求2所述的服务降级容错方法,其特征在于,所述响应预设服务降级策略,记录依赖服务信息,具体包括:
执行缓存服务降级策略,将依赖服务的数据存储至缓存中,保存依赖服务的数据到本地表。
4.根据权利要求1所述的服务降级容错方法,其特征在于,所述通过动态开关统一监测服务状态,具体包括:
初始化降级标识;基于AOP原理声明异常切面类;在所述异常切面类中定义切入点位置;基于所述切入点位置捕捉异常,异常可以是RpcException异常、token异常、鉴权失败中的一个或多个;基于单位时间内捕捉到的异常作为当前的服务状态。
5.根据权利要求4所述的服务降级容错方法,其特征在于,还包括:
若服务降级,则启动定时任务器,预设轮询间隔时间循环调用服务,当轮询间隔内成功调用服务满足预设数值范围,则唤醒服务升级。
6.根据权利要求5所述的服务降级容错方法,其特征在于,还包括:
基于当前网络状况,响应当前服务异常,触发服务告警策略,调整服务降级模式。
7.根据权利要求1-6任一所述的服务降级容错方法,其特征在于,响应预设服务降级策略,记录依赖服务信息,具体包括:
将依赖服务信息进行序列化处理,得到json数据,将所述json数据存储至所述缓存中。
8.一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行权利要求1~7中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现权利要求1~7中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器执行时实现权利要求1~7中任一项所述的方法。
CN202310905164.8A 2023-07-24 2023-07-24 一种服务降级容错方法、装置、电子设备及存储介质 Pending CN116909791A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310905164.8A CN116909791A (zh) 2023-07-24 2023-07-24 一种服务降级容错方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310905164.8A CN116909791A (zh) 2023-07-24 2023-07-24 一种服务降级容错方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116909791A true CN116909791A (zh) 2023-10-20

Family

ID=88350762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310905164.8A Pending CN116909791A (zh) 2023-07-24 2023-07-24 一种服务降级容错方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116909791A (zh)

Similar Documents

Publication Publication Date Title
US9253265B2 (en) Hot pluggable extensions for access management system
EP3399692B1 (en) Method and apparatus for upgrading distributed storage system
CA2533737C (en) Fast application notification in a clustered computing system
CN106909411B (zh) 一种文件更新方法及装置
US9098439B2 (en) Providing a fault tolerant system in a loosely-coupled cluster environment using application checkpoints and logs
CN109656742B (zh) 一种节点异常处理方法、装置及存储介质
US20120144392A1 (en) Resource Manager for Managing Hardware Resources
CN111209110B (zh) 一种实现负载均衡的任务调度管理方法、系统和存储介质
US20210200533A1 (en) Continuous in-place software updates with fault isolation and resiliency
CN112732674A (zh) 云平台服务管理方法、装置、设备及可读存储介质
US7401256B2 (en) System and method for highly available data processing in cluster system
CN107729213B (zh) 一种后台任务监控方法及装置
CN114663226A (zh) 一种交易请求的处理方法、装置及交易转接系统
US20090089424A1 (en) Dynamically updating subcomponents in a tiered remote monitoring system
CN111538585A (zh) 一种基于node.js的服务器进程调度方法、系统和装置
US7206975B1 (en) Internal product fault monitoring apparatus and method
CN112561506B (zh) 基于虚拟货币的直播数据处理方法、系统、设备及介质
CN113590285A (zh) 一种用于线程池参数动态设置的方法、系统及设备
CN116909791A (zh) 一种服务降级容错方法、装置、电子设备及存储介质
US8806500B2 (en) Dynamically setting the automation behavior of resources
US10049013B2 (en) Supervising and recovering software components associated with medical diagnostics instruments
US8595349B1 (en) Method and apparatus for passive process monitoring
WO2016206501A1 (zh) 一种网管系统中进程的恢复方法、装置和计算机可读存储介质
CN107783852B (zh) 一种dump文件生成方法及终端
CN111176959A (zh) 跨域的应用服务器的预警方法、系统及存储介质

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