CN112965848A - 用于微服务的熔断降级方法、装置、设备和介质 - Google Patents

用于微服务的熔断降级方法、装置、设备和介质 Download PDF

Info

Publication number
CN112965848A
CN112965848A CN202110245817.5A CN202110245817A CN112965848A CN 112965848 A CN112965848 A CN 112965848A CN 202110245817 A CN202110245817 A CN 202110245817A CN 112965848 A CN112965848 A CN 112965848A
Authority
CN
China
Prior art keywords
component
fuse
service
fusing
degradation
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
CN202110245817.5A
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110245817.5A priority Critical patent/CN112965848A/zh
Publication of CN112965848A publication Critical patent/CN112965848A/zh
Priority to US17/676,056 priority patent/US12034820B2/en
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/0793Remedial or corrective actions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • 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
    • 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/0751Error or fault detection not based on redundancy
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种用于微服务的熔断降级方法、装置、设备、介质和程序产品,涉及互联网领域,尤其涉及熔断降级领域。具体实现方案为:织入到微服务业务进程中的监控探针,根据获取的熔断降级规则实例化熔断器组件;所述监控探针将所述熔断器组件织入到所述业务进程中,其中,所述熔断器组件用于对所述业务进程中处理的业务请求进行熔断降级。本申请通过探针实现微服务运行时熔断降级技术,使得微服务开发人员不需要硬编码,就能对运行时的微服务应用进行熔断降级,提高了微服务熔断降级的效率和稳定性。

Description

用于微服务的熔断降级方法、装置、设备和介质
技术领域
本申请涉及互联网领域,尤其涉及一种熔断降级技术,具体涉及一种用于微服务的熔断降级方法、装置、设备、介质和程序产品。
背景技术
基于分布式的微服务架构是大型互联网公司主流的后端服务架构。微服务架构的主要特点是:服务多、依赖关系复杂,局部故障可能影响到整个***的稳定性。
因此,针对依赖服务不稳定的外部资源进行熔断降级是互联网微服务应用保障高可用的重要措施。
发明内容
本申请提供一种用于微服务的熔断降级方法、装置、设备、介质和程序产品,以提高微服务熔断降级的效率和稳定性。
第一方面,本申请提供了一种用于微服务的熔断降级方法,包括:
织入到微服务业务进程中的监控探针,根据获取的熔断降级规则实例化熔断器组件;
所述监控探针将所述熔断器组件织入到所述业务进程中,其中,所述熔断器组件用于对所述业务进程中处理的业务请求进行熔断降级。
第二方面,本申请还提供了一种用于微服务的熔断降级装置,包括织入到微服务业务进程中的监控探针,所述监控探针包括:
实例化模块,用于根据获取的熔断降级规则实例化熔断器组件;
织入模块,用于将所述熔断器组件织入到所述业务进程中,其中,所述熔断器组件用于对所述业务进程中处理的业务请求进行熔断降级。
第三方面,本申请还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任意实施例所述的用于微服务的熔断降级方法。
第四方面,本申请还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请任意实施例所述的用于微服务的熔断降级方法。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本申请任意实施例所述的用于微服务的熔断降级方法。
应当理解,本部分所描述的内容并非旨在标识本申请的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解,上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请实施例的用于微服务的熔断降级方法的流程示意图;
图2是根据本申请实施例的用于微服务的熔断降级方法的流程示意图;
图3a是根据本申请实施例的用于微服务的熔断降级方法的流程示意图;
图3b是根据本申请实施例的熔断降级方法中熔断器组件的功能流程示意图;
图3c是根据本申请实施例的熔断器组件的状态转换图;
图4是根据本申请实施例的用于微服务的熔断降级装置的结构示意图;
图5是用来实现本申请实施例的用于微服务的熔断降级方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请实施例的用于微服务的熔断降级方法的流程示意图,本实施例可适用于对微服务业务进程中的请求进行熔断降级的情况,涉及互联网领域。该方法可由一种用于微服务的熔断降级装置来执行,该装置采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如计算机设备或服务器等。如图1所示,该方法具体包括如下:
S101、织入到微服务业务进程中的监控探针,根据获取的熔断降级规则实例化熔断器组件。
其中,监控探针可以是由微服务***中的监控守护组件利用Java虚拟机技术织入到微服务的业务进程中,其中监控守护组件是与微服务***中的业务进程所处同一个容器的agent进程,负责监控业务进程的状态,并注入探针代码。熔断降级规则可以是监控守护组件从数据库中拉取并写入到微服务***的本地磁盘,其中,该数据库可以是任意数据库,该熔断降级规则可以由用户在微服务***的配置中心界面上输入并存储在所述数据库中供监控守护组件拉取。而由于业务进程与监控守护进程共享本地磁盘空间,因此,业务进程中的监控探针也可以从本地磁盘中拉取熔断降级规则,由此,通过监控守护组件将熔断降级规则下发至监控探针。
监控探针织入到业务进程中时会携带熔断器SDK,该熔断器SDK包括实现熔断降级功能的组件库,以便监控探针被业务进程加载后,通过该熔断器SDK,并根据获取的熔断降级规则,实例化熔断器组件,根据规则中配置的至少一种阈值填充熔断器组件的各个参数取值。
S102、监控探针将熔断器组件织入到业务进程中,其中,熔断器组件用于对业务进程中处理的业务请求进行熔断降级。
实例化熔断器组件之后,监控探针将熔断器组件织入到业务进程中,以便该熔断器组件对业务进程中处理的业务请求进行熔断降级。
由此,本申请实施例通过探针将熔断器组件织入到业务进程中对请求进行熔断降级,而由于微服务架构中模块众多,依赖服务多,且业务复杂,因此,相比于现有技术中直接通过SDK的方式接入熔断组件或者直接在业务代码中编入硬编码降级逻辑的方法,本申请无需对业务代码进行更改,也无需进行重复性接入,降低了开发和维护成本,止损效率高,而且能够根据获取的熔断降级规则实现精准的降级操作,保证业务的高稳定性。
本申请实施例的技术方案,通过探针实现微服务运行时熔断降级技术,使得微服务开发人员不需要硬编码,就能对运行时的微服务应用进行熔断降级,提高了微服务中熔断降级的效率和稳定性,非常适合流量大、部署规模大的微服务平台使用,能够大幅降低熔断接入成本,提升熔断的止损效率。
图2是根据本申请实施例的用于微服务的熔断降级方法的流程示意图,本实施例在上述实施例的基础上进一步进行优化。如图2所示,该方法具体包括如下:
S201、织入到微服务业务进程中的监控探针,根据获取的熔断降级规则实例化熔断器组件。
S202、监控探针将熔断器组件织入到业务进程中,其中,熔断器组件用于对业务进程中处理的业务请求进行熔断降级。
S203、响应于来自监控守护组件的规则更新命令,监控探针执行卸载操作,其中,规则更新命令是监控守护组件判断熔断降级规则存在更新时生成。
S204、监控探针将当前的卸载状态返回至监控守护组件,以由监控守护组件根据更新的熔断降级规则重新在业务进程中织入监控探针。
本申请实施例中的熔断降级规则是可配置的,而且可以实现动态配置,用户可以根据需要,通过微服务***的配置中心界面修改、删除或重新设置熔断降级规则,从而实现无侵入的、可配置的动态的熔断降级。
具体的,微服务***中的监控守护组件可以对存储在数据库中的熔断降级规则进行监控,判断熔断降级规则是否存在更新。当监控守护组件判断熔断降级规则存在更新时,可以生成规则更新命令,并将该规则更新命令写入指定文件存储在本地磁盘。所述监控探针按照预设周期轮询本地磁盘的指定文件,获取规则更新命令,执行卸载操作。卸载完成后,监控探针将当前的卸载状态返回至监控守护组件,监控守护组件根据该卸载状态得知当前的监控探针已卸载,然后根据更新的熔断降级规则重新在业务进程中织入监控探针,此时,更新的熔断降级规则也会写入本地磁盘,以供重新织入的监控探针从本地磁盘中获取更新的熔断降级规则。
相应的,若用户想要删除当前的熔断降级规则,也可以通过配置中心界面进行配置,这时,监控守护组件会将删除规则的命令写入所述指定文件,当前的监控探针获取到该删除规则的命令,便会执行卸载操作。
S205、响应于来自监控守护组件的阈值更新命令,监控探针在业务进程中更新熔断器组件的阈值,其中,阈值更新命令是监控守护组件判断熔断降级规则中的阈值存在更新时生成。
用户也可以仅更改当前熔断降级规则中的一个或多个阈值,此时,监控守护组件若监控到熔断降级规则中的阈值存在更新,则生成阈值更新命令并写入本地磁盘的指定文件,当前的监控探针获取到该阈值更新命令后,便在业务进程中直接根据新阈值更新当前熔断器组件的阈值即可。
本申请实施例的技术方案,通过探针实现微服务运行时熔断降级技术,使得微服务开发人员不需要硬编码,实现无侵入、可配置的动态的熔断降级,提高了微服务熔断降级的效率和稳定性,降低了开发和维护成本。
图3a是根据本申请实施例的用于微服务的熔断降级方法的流程示意图,本实施例在上述实施例的基础上进一步进行优化。如图3a所示,该方法具体包括如下:
S301、织入到微服务业务进程中的监控探针,根据获取的熔断降级规则实例化熔断器组件。
S302、监控探针通过增强业务代码的方式,在业务进程的业务代码中织入熔断器组件的代码,其中,熔断器组件用于对业务进程中处理的业务请求进行熔断降级。
具体的,监控探针实例化熔断器组件后,便开始增强业务代码,通过对业务代码字节码的修改,在原业务代码里织入熔断器组件的相关代码,包括业务代码执行前的组件代码和业务代码执行后的组件代码。一旦熔断器组件的代码织入业务代码中,该业务代码处理的业务请求都将经过熔断器组件的统计,并对需要进行熔断降级的业务请求进行处理。
其中,业务代码执行后的组件代码用于统计业务代码执行是否成功;业务代码执行前的组件代码用于根据业务代码执行是否成功的统计结果和熔断降级规则判断是否进行熔断降级,并在判断为是时执行熔断降级。
具体的,如图3b所示,业务代码执行前的组件代码先判断当前业务请求是否需要进行熔断降级,如果判断为是,则进行熔断降级,如果判断为否,则执行业务代码。业务代码执行之后,由业务代码执行后的组件代码判断业务代码执行是否出现异常,并对执行成功和执行异常的情况分别进行统计。其中,业务代码执行前的组件代码是根据熔断器组件的当前状态来判断是否要进行熔断降级,而熔断器组件的当前状态与业务代码的执行情况有关。
具体的,熔断降级规则至少包括:降级策略、熔断耗时阈值和业务执行的错误率阈值。其中,降级策略例如可以包括:通过自定义降级函数进行降级;或返回空对象;或通过反序列化的方式构造新对象返回。相应的,业务代码执行前的组件代码具体用于:
如果熔断器组件的当前状态为关闭,且业务代码执行的错误率超出错误率阈值,则根据降级策略对当前的业务请求进行降级,并将熔断器组件的当前状态设为开启;
如果熔断器组件的当前状态为开启,且开启的时间超出熔断耗时阈值,则将熔断器组件的当前状态设为半开启;
如果熔断器组件的当前状态为半开启,则在业务请求中,随机对设定数量的业务请求进行熔断降级;
如果熔断器组件的当前状态为半开启,且执行所述设定数量的业务请求的错误率超出错误率阈值,则将熔断器组件的当前状态设为开启,反之,则将熔断器组件的当前状态设为关闭。
图3c即为根据本申请实施例的熔断器组件的状态转换图。初始时,熔断器组件的状态可以为关闭,当业务代码执行的错误率超出错误率阈值,则表明需要对业务请求进行熔断降级,以确保整个微服务的顺利运行。于是会根据降级策略对当前的业务请求进行降级,并将熔断器组件的当前状态设为开启;由于代码执行失败的原因很多,而且存在服务自我修复的可能性,因此,通过熔断耗时阈值来检测熔断器组件开启的时间,如果开启的时间超出熔断耗时阈值,则将熔断器组件的状态设置为半开启,只对部分业务请求进行熔断降级,并对这部分业务的执行情况继续进行监控,如果执行该部分业务请求的错误率超出错误率阈值,则将熔断器组件的当前状态再次设为开启,反之,则将熔断器组件的当前状态设为关闭。
由此,通过织入到业务代码中的熔断器组件的代码,对业务代码的执行情况进行统计,根据统计结果和熔断降级规则来确定熔断器组件的当前状态,并对需要进行熔断降级的业务请求进行熔断降级。
本申请实施例的技术方案,不需要硬编码就能对运行时的微服务应用进行动态的熔断降级,还可以动态的调整熔断降级规则,接入成本低,周期短。而且,织入的熔断器组件能够实时的统计出业务代码中业务请求的访问次数和业务执行的失败次数,自动触发更改熔断器组件的当前状态,从而实现熔断降级,不需要业务方干预就达到精细化控制熔断效果的目的。
图4是根据本申请实施例的用于微服务的熔断降级装置的结构示意图,本实施例可适用于对微服务业务进程中的请求进行熔断降级的情况,涉及互联网领域。该装置可实现本申请任意实施例所述的用于微服务的熔断降级方法。如图4所示,该装置400包括织入到微服务业务进程中的监控探针410,所述监控探针410具体包括:
实例化模块401,用于根据获取的熔断降级规则实例化熔断器组件;
织入模块402,用于将所述熔断器组件织入到所述业务进程中,其中,所述熔断器组件用于对所述业务进程中处理的业务请求进行熔断降级。
可选的,所述监控探针是微服务***中的监控守护组件织入到所述业务进程中。
可选的,所述熔断降级规则是由用户在所述微服务***的配置中心界面上输入并存储在数据库,由所述监控守护组件从所述数据库拉取并写入所述微服务***的本地磁盘,并由所述监控探针从所述本地磁盘获取。
可选的,所述监控探针还包括:
规则更新命令响应模块,用于响应于来自所述监控守护组件的规则更新命令,执行卸载操作,其中,所述规则更新命令是所述监控守护组件判断所述熔断降级规则存在更新时生成;
卸载状态返回模块,用于将当前的卸载状态返回至所述监控守护组件,以由所述监控守护组件根据更新的熔断降级规则重新在所述业务进程中织入监控探针。
可选的,所述监控探针还包括:
阈值更新命令响应模块,用于响应于来自所述监控守护组件的阈值更新命令,在所述业务进程中更新所述熔断器组件的阈值,其中,所述阈值更新命令是所述监控守护组件判断所述熔断降级规则中的阈值存在更新时生成。
可选的,所述织入模块具体用于:
所述监控探针通过增强业务代码的方式,在所述业务进程的业务代码中织入所述熔断器组件的代码。
可选的,所述熔断器组件的代码包括业务代码执行前的组件代码和业务代码执行后的组件代码;
其中,所述业务代码执行后的组件代码用于统计所述业务代码执行是否成功;
所述业务代码执行前的组件代码用于根据所述业务代码执行是否成功的统计结果和所述熔断降级规则判断是否进行熔断降级,并在判断为是时执行熔断降级。
可选的,所述熔断降级规则至少包括:降级策略、熔断耗时阈值和业务执行的错误率阈值。
相应的,所述业务代码执行前的组件代码具体用于:
如果所述熔断器组件的当前状态为关闭,且所述业务代码执行的错误率超出所述错误率阈值,则根据所述降级策略对当前的业务请求进行降级,并将所述熔断器组件的当前状态设为开启;
如果所述熔断器组件的当前状态为开启,且开启的时间超出所述熔断耗时阈值,则将所述熔断器组件的当前状态设为半开启;
如果所述熔断器组件的当前状态为半开启,则在业务请求中,随机对设定数量的业务请求进行熔断降级;
如果所述熔断器组件的当前状态为半开启,且执行所述设定数量的业务请求的错误率超出所述错误率阈值,则将所述熔断器组件的当前状态设为开启,反之,则将所述熔断器组件的当前状态设为关闭。
可选的,所述降级策略包括:
通过自定义降级函数进行降级;或
返回空对象;或
通过反序列化的方式构造新对象返回。
本申请实施例提供的用于微服务的熔断降级装置400可执行本申请任意实施例提供的用于微服务的熔断降级方法,具备执行方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本申请任意方法实施例中的描述。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如用于微服务的熔断降级方法。例如,在一些实施例中,用于微服务的熔断降级方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的用于微服务的熔断降级方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行用于微服务的熔断降级方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (21)

1.一种用于微服务的熔断降级方法,包括:
织入到微服务业务进程中的监控探针,根据获取的熔断降级规则实例化熔断器组件;
所述监控探针将所述熔断器组件织入到所述业务进程中,其中,所述熔断器组件用于对所述业务进程中处理的业务请求进行熔断降级。
2.根据权利要求1所述的方法,其中,所述监控探针是微服务***中的监控守护组件织入到所述业务进程中。
3.根据权利要求2所述的方法,其中,所述熔断降级规则是由用户在所述微服务***的配置中心界面上输入并存储在数据库,由所述监控守护组件从所述数据库拉取并写入所述微服务***的本地磁盘,并由所述监控探针从所述本地磁盘获取。
4.根据权利要求2所述的方法,还包括:
响应于来自所述监控守护组件的规则更新命令,所述监控探针执行卸载操作,其中,所述规则更新命令是所述监控守护组件判断所述熔断降级规则存在更新时生成;
所述监控探针将当前的卸载状态返回至所述监控守护组件,以由所述监控守护组件根据更新的熔断降级规则重新在所述业务进程中织入监控探针。
5.根据权利要求2所述的方法,还包括:
响应于来自所述监控守护组件的阈值更新命令,所述监控探针在所述业务进程中更新所述熔断器组件的阈值,其中,所述阈值更新命令是所述监控守护组件判断所述熔断降级规则中的阈值存在更新时生成。
6.根据权利要求1所述的方法,其中,所述监控探针将所述熔断器组件织入到所述业务进程中,包括:
所述监控探针通过增强业务代码的方式,在所述业务进程的业务代码中织入所述熔断器组件的代码。
7.根据权利要求6所述的方法,其中,所述熔断器组件的代码包括业务代码执行前的组件代码和业务代码执行后的组件代码;
其中,所述业务代码执行后的组件代码用于统计所述业务代码执行是否成功;
所述业务代码执行前的组件代码用于根据所述业务代码执行是否成功的统计结果和所述熔断降级规则判断是否进行熔断降级,并在判断为是时执行熔断降级。
8.根据权利要求7所述的方法,其中,所述熔断降级规则至少包括:降级策略、熔断耗时阈值和业务执行的错误率阈值。
相应的,所述业务代码执行前的组件代码具体用于:
如果所述熔断器组件的当前状态为关闭,且所述业务代码执行的错误率超出所述错误率阈值,则根据所述降级策略对当前的业务请求进行降级,并将所述熔断器组件的当前状态设为开启;
如果所述熔断器组件的当前状态为开启,且开启的时间超出所述熔断耗时阈值,则将所述熔断器组件的当前状态设为半开启;
如果所述熔断器组件的当前状态为半开启,则在业务请求中,随机对设定数量的业务请求进行熔断降级;
如果所述熔断器组件的当前状态为半开启,且执行所述设定数量的业务请求的错误率超出所述错误率阈值,则将所述熔断器组件的当前状态设为开启,反之,则将所述熔断器组件的当前状态设为关闭。
9.根据权利要求8所述的方法,其中,所述降级策略包括:
通过自定义降级函数进行降级;或
返回空对象;或
通过反序列化的方式构造新对象返回。
10.一种用于微服务的熔断降级装置,包括织入到微服务业务进程中的监控探针,所述监控探针包括:
实例化模块,用于根据获取的熔断降级规则实例化熔断器组件;
织入模块,用于将所述熔断器组件织入到所述业务进程中,其中,所述熔断器组件用于对所述业务进程中处理的业务请求进行熔断降级。
11.根据权利要求10所述的装置,其中,所述监控探针是微服务***中的监控守护组件织入到所述业务进程中。
12.根据权利要求11所述的装置,其中,所述熔断降级规则是由用户在所述微服务***的配置中心界面上输入并存储在数据库,由所述监控守护组件从所述数据库拉取并写入所述微服务***的本地磁盘,并由所述监控探针从所述本地磁盘获取。
13.根据权利要求11所述的装置,其中,所述监控探针还包括:
规则更新命令响应模块,用于响应于来自所述监控守护组件的规则更新命令,执行卸载操作,其中,所述规则更新命令是所述监控守护组件判断所述熔断降级规则存在更新时生成;
卸载状态返回模块,用于将当前的卸载状态返回至所述监控守护组件,以由所述监控守护组件根据更新的熔断降级规则重新在所述业务进程中织入监控探针。
14.根据权利要求11所述的装置,其中,所述监控探针还包括:
阈值更新命令响应模块,用于响应于来自所述监控守护组件的阈值更新命令,在所述业务进程中更新所述熔断器组件的阈值,其中,所述阈值更新命令是所述监控守护组件判断所述熔断降级规则中的阈值存在更新时生成。
15.根据权利要求10所述的装置,其中,所述织入模块具体用于:
所述监控探针通过增强业务代码的方式,在所述业务进程的业务代码中织入所述熔断器组件的代码。
16.根据权利要求15所述的装置,其中,所述熔断器组件的代码包括业务代码执行前的组件代码和业务代码执行后的组件代码;
其中,所述业务代码执行后的组件代码用于统计所述业务代码执行是否成功;
所述业务代码执行前的组件代码用于根据所述业务代码执行是否成功的统计结果和所述熔断降级规则判断是否进行熔断降级,并在判断为是时执行熔断降级。
17.根据权利要求16所述的装置,其中,所述熔断降级规则至少包括:降级策略、熔断耗时阈值和业务执行的错误率阈值。
相应的,所述业务代码执行前的组件代码具体用于:
如果所述熔断器组件的当前状态为关闭,且所述业务代码执行的错误率超出所述错误率阈值,则根据所述降级策略对当前的业务请求进行降级,并将所述熔断器组件的当前状态设为开启;
如果所述熔断器组件的当前状态为开启,且开启的时间超出所述熔断耗时阈值,则将所述熔断器组件的当前状态设为半开启;
如果所述熔断器组件的当前状态为半开启,则在业务请求中,随机对设定数量的业务请求进行熔断降级;
如果所述熔断器组件的当前状态为半开启,且执行所述设定数量的业务请求的错误率超出所述错误率阈值,则将所述熔断器组件的当前状态设为开启,反之,则将所述熔断器组件的当前状态设为关闭。
18.根据权利要求17所述的装置,其中,所述降级策略包括:
通过自定义降级函数进行降级;或
返回空对象;或
通过反序列化的方式构造新对象返回。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的用于微服务的熔断降级方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行权利要求1-9中任一项所述的用于微服务的熔断降级方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的用于微服务的熔断降级方法。
CN202110245817.5A 2021-03-05 2021-03-05 用于微服务的熔断降级方法、装置、设备和介质 Pending CN112965848A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110245817.5A CN112965848A (zh) 2021-03-05 2021-03-05 用于微服务的熔断降级方法、装置、设备和介质
US17/676,056 US12034820B2 (en) 2021-03-05 2022-02-18 Fusing and degradation method and apparatus for micro-service, device, and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110245817.5A CN112965848A (zh) 2021-03-05 2021-03-05 用于微服务的熔断降级方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN112965848A true CN112965848A (zh) 2021-06-15

Family

ID=76276598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110245817.5A Pending CN112965848A (zh) 2021-03-05 2021-03-05 用于微服务的熔断降级方法、装置、设备和介质

Country Status (2)

Country Link
US (1) US12034820B2 (zh)
CN (1) CN112965848A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645152A (zh) * 2021-06-29 2021-11-12 福建天泉教育科技有限公司 一种服务降级方法及终端
CN114675957A (zh) * 2022-05-26 2022-06-28 广州市玄武无线科技股份有限公司 插件熔断方法、装置、终端设备及计算机可读存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115671716B (zh) * 2022-12-28 2023-03-14 北京海誉动想科技股份有限公司 预加载实例申请的处理方法、装置、存储介质及电子设备
CN116980480B (zh) * 2023-09-25 2024-02-27 上海伊邦医药信息科技股份有限公司 基于微服务网络模型的熔断信息的处理方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684105A (zh) * 2018-12-18 2019-04-26 中国平安人寿保险股份有限公司 在微服务架构下对请求进行控制的方法、设备和存储介质
CN111049670A (zh) * 2019-11-07 2020-04-21 苏宁云计算有限公司 一种用于微服务的熔断隔离的方法及装置
CN111130939A (zh) * 2019-12-26 2020-05-08 深圳前海环融联易信息科技服务有限公司 一种流量控制方法、装置、计算机设备及存储介质
CN111782340A (zh) * 2020-06-29 2020-10-16 中国工商银行股份有限公司 一种基于字节码的数据处理方法、装置、设备及***
CN111831504A (zh) * 2019-04-15 2020-10-27 北京京东尚科信息技术有限公司 监控方法、监控装置、计算机设备和介质
CN112131036A (zh) * 2020-10-09 2020-12-25 腾讯科技(深圳)有限公司 一种过载保护方法、装置、设备及计算机可读存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10938650B1 (en) * 2018-03-07 2021-03-02 Amdocs Development Limited System, method, and computer program for improving a quality of experience based on artificial intelligence
US10313362B2 (en) * 2016-07-29 2019-06-04 ShieldX Networks, Inc. Systems and methods for real-time configurable load determination
US10341189B2 (en) * 2016-09-22 2019-07-02 International Business Machines Corporation Operator fusion management in a stream computing environment
US10244034B2 (en) * 2017-03-29 2019-03-26 Ca, Inc. Introspection driven monitoring of multi-container applications
US10728954B2 (en) * 2018-08-07 2020-07-28 At&T Intellectual Property I, L.P. Automated network design and traffic steering
US10684940B1 (en) * 2018-09-18 2020-06-16 Amazon Technologies, Inc. Microservice failure modeling and testing
US20200117482A1 (en) * 2018-10-12 2020-04-16 Ca, Inc. Dynamic loading of a java agent into a running process through direct process memory manipulation
US11074201B2 (en) * 2019-07-22 2021-07-27 Micron Technology, Inc. Apparatus with a security mechanism and methods for operating the same
US11146658B2 (en) * 2019-07-30 2021-10-12 At&T Intellectual Property I, L.P. Enhanced self-assembling and self-configuring microservices
US11573848B2 (en) * 2020-11-10 2023-02-07 International Business Machines Corporation Identification and/or prediction of failures in a microservice architecture for enabling automatically-repairing solutions
US11996990B2 (en) * 2021-01-18 2024-05-28 Nokia Solutions And Networks Oy Wireless connectivity for autonomous devices

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684105A (zh) * 2018-12-18 2019-04-26 中国平安人寿保险股份有限公司 在微服务架构下对请求进行控制的方法、设备和存储介质
CN111831504A (zh) * 2019-04-15 2020-10-27 北京京东尚科信息技术有限公司 监控方法、监控装置、计算机设备和介质
CN111049670A (zh) * 2019-11-07 2020-04-21 苏宁云计算有限公司 一种用于微服务的熔断隔离的方法及装置
CN111130939A (zh) * 2019-12-26 2020-05-08 深圳前海环融联易信息科技服务有限公司 一种流量控制方法、装置、计算机设备及存储介质
CN111782340A (zh) * 2020-06-29 2020-10-16 中国工商银行股份有限公司 一种基于字节码的数据处理方法、装置、设备及***
CN112131036A (zh) * 2020-10-09 2020-12-25 腾讯科技(深圳)有限公司 一种过载保护方法、装置、设备及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
计算机JAVA编程: "最全面!一文让你看懂无侵入的微服务探针原理", pages 1 - 14, Retrieved from the Internet <URL:https://baijiahao.***.com/s?id=1687335419204822793&wfr=spider&for=pc> *
课⼯场教育: "微服务应⽤故障定位***实现原理剖析", pages 1 - 4, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/139867375?from_voters_page=true 第> *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645152A (zh) * 2021-06-29 2021-11-12 福建天泉教育科技有限公司 一种服务降级方法及终端
CN113645152B (zh) * 2021-06-29 2023-09-26 福建天泉教育科技有限公司 一种服务降级方法及终端
CN114675957A (zh) * 2022-05-26 2022-06-28 广州市玄武无线科技股份有限公司 插件熔断方法、装置、终端设备及计算机可读存储介质

Also Published As

Publication number Publication date
US12034820B2 (en) 2024-07-09
US20220174122A1 (en) 2022-06-02

Similar Documents

Publication Publication Date Title
CN112965848A (zh) 用于微服务的熔断降级方法、装置、设备和介质
CN112667403B (zh) 一种服务器的调度方法、装置及电子设备
CN111625195A (zh) 用于服务器扩容的方法及装置
CN113590329A (zh) 资源处理方法及装置
CN117573331A (zh) 内存控制方法、装置、设备及介质
CN112817992A (zh) 执行更改任务的方法、装置、电子设备以及可读存储介质
CN112799642B (zh) 用于处理数据的方法、装置、设备以及存储介质
CN113590287B (zh) 任务处理方法、装置、设备、存储介质及调度***
CN116594563A (zh) 分布式存储扩容方法、装置、电子设备和存储介质
CN113377295B (zh) 多生产者单消费者的数据存储和读取方法、装置、设备
CN113139891B (zh) 图像处理方法、装置、电子设备和存储介质
CN114386577A (zh) 用于执行深度学习模型的方法、设备和存储介质
CN116909757B (zh) 集群管理的控制***、方法、电子设备和存储介质
CN114371889B (zh) 一种事件配置方法、装置、电子设备及存储介质
CN113365171B (zh) 有屏音箱处理方法、装置、电子设备及存储介质
CN114428646B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN112819285B (zh) 航班的匹配处理、训练方法、装置和设备
CN114327460A (zh) 页面布局调整方法、装置、电子设备和存储介质
CN118170617A (zh) 集群异常的检测方法及装置、电子设备和存储介质
CN114356505A (zh) 用于调度容器组的方法、装置、设备、介质和产品
CN115529346A (zh) 服务变更方法、装置、设备及存储介质
CN114281436A (zh) 小程序通讯方法、装置、设备和存储介质
CN115913954A (zh) 集群管理信息交互方法、装置、设备和存储介质
CN117009000A (zh) 运行开源鸿蒙***的组件、方法、装置、设备及介质
CN115061664A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210615