CN112527544A - 一种服务器、触发熔断的方法及装置 - Google Patents

一种服务器、触发熔断的方法及装置 Download PDF

Info

Publication number
CN112527544A
CN112527544A CN202011324817.6A CN202011324817A CN112527544A CN 112527544 A CN112527544 A CN 112527544A CN 202011324817 A CN202011324817 A CN 202011324817A CN 112527544 A CN112527544 A CN 112527544A
Authority
CN
China
Prior art keywords
threshold value
period
fault
server
counting
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.)
Granted
Application number
CN202011324817.6A
Other languages
English (en)
Other versions
CN112527544B (zh
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.)
Qingdao Hisense Media Network Technology Co Ltd
Original Assignee
Qingdao Hisense Media Network 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 Qingdao Hisense Media Network Technology Co Ltd filed Critical Qingdao Hisense Media Network Technology Co Ltd
Priority to CN202011324817.6A priority Critical patent/CN112527544B/zh
Publication of CN112527544A publication Critical patent/CN112527544A/zh
Application granted granted Critical
Publication of CN112527544B publication Critical patent/CN112527544B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请涉及通信技术领域,特别地,涉及一种服务器、触发熔断的方法及装置。一定程度上可以解决触发熔断时间点难以准确配置造成服务降级、服务可用性降低的问题。所述服务器包括:第一计数器,用于统计计数周期、及目标服务在每个计数周期的故障计数;第一控制器,被配置为:在当前计数周期的故障计数大于等于次数阈值时,控制所述服务器触发所述目标服务熔断;否则,在当前计数周期的故障计数小于次数阈值时,判定所述当前周期和第一过往周期的故障计数都处于第一范围阈值时,控制所述服务器触发所述目标服务熔断,所述第一范围阈值大于等于所述次数阈值的第一百分比、小于所述次数阈值。

Description

一种服务器、触发熔断的方法及装置
技术领域
本申请涉及通信技术领域,特别地,涉及一种服务器、触发熔断的方法及装置。
背景技术
在服务高可用性场景下,熔断是一种保护服务自身不被第三方服务故障影响的重要手段。触发熔断在系统中个别服务出现不可用、响应超时的情况时,为了防止整个系统出现拥堵雪崩效应,暂时停止对故障服务的调用;当服务恢复时,再继续对该服务进行调用。目前常用的微服务架构下,触发服务熔断可以提高系统可用性。
在一些触发熔断的实现中,通常需要设置一个具体阈值;在一个时间间隔内服务请求出错数量超过设定的具体阈值时,则触发熔断;系统管理员根据经验、或线上流量、资源配置等估算所述具体阈值。
然而,复杂场景下单一阈值过小会造成频繁熔断、阈值过大不能及时触发熔断,或故障率长期保持高位但还没有达到具体阈值时不能主动触发熔断,导致系统引发雪崩效应。
发明内容
为了解决触发熔断时间点难以准确配置造成服务降级、服务可用性降低的问题,本申请提供了一种服务器、触发熔断的方法及装置。
本申请的实施例是这样实现的:
本申请实施例的第一方面提供服务器,包括:第一计数器,用于统计计数周期、及目标服务在每个计数周期的故障计数;第一控制器,被配置为:在当前计数周期的故障计数大于等于次数阈值时,控制所述服务器触发所述目标服务熔断;否则,在当前计数周期的故障计数小于次数阈值时,判定所述当前周期和第一过往周期的故障计数都处于第一范围阈值时,控制所述服务器触发所述目标服务熔断,所述第一范围阈值大于等于所述次数阈值的第一百分比、小于所述次数阈值。
本申请实施例的第二方面提供一种触发熔断的方法,所述方法包括:在当前计数周期的故障计数大于等于次数阈值时,触发目标服务熔断;否则,在当前计数周期的故障计数小于次数阈值时,判定所述当前周期和第一过往周期的故障计数都处于第一范围阈值时,触发所述目标服务熔断,所述第一范围阈值大于等于所述次数阈值的第一百分比、小于所述次数阈值。
本申请实施例的第三方面提供一种触发熔断的装置,包括:第二计数器,用于统计计数周期、及目标服务在每个计数周期的故障计数;第二控制器,被配置为:在当前计数周期的故障计数大于等于次数阈值时,触发所述目标服务熔断;否则,在当前计数周期的故障计数小于次数阈值时,判定所述当前周期和第一过往周期的故障计数都处于第一范围阈值时,触发所述目标服务熔断,所述第一范围阈值为大于等于所述次数阈值的第一百分比、小于所述次数阈值。
本申请实施例的第四方面提供服务器,包括:第三计数器,用于统计计数周期、及目标服务在每个计数周期的故障比例;第三控制器,被配置为:在当前计数周期的故障比例大于等于比例阈值时,控制所述服务器触发所述目标服务熔断;否则,在当前计数周期的故障比例小于比例阈值时,判定所述当前周期和第一过往周期的故障比例都处于第一范围阈值时,控制所述服务器触发所述目标服务熔断,所述第一范围阈值为大于等于所述比例阈值的第一百分比、小于所述比例阈值。
本申请实施例有益效果在于:通过统计当前周期和过往周期的故障计数,可以实现加权历史数据、服务稳定性、波动性计算触发熔断时机;进一步通过构建范围阈值,可以实现动态触发熔断、扩大触发熔断时机,一定程度上可以提高触发熔断时机的准确性、避免服务降级、提高服务可用性。
附图说明
具体为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例一种服务器可实现触发熔断服务的系统100示意图;
图2示出了本申请实施例一种示例性计算设备200的示意图;
图3示出了本申请一实施例服务器触发熔断服务的时序示意图;
图4示出了本申请一实施例服务器端触发熔断方法的流程示意图;
图5示出了本申请一实施例服务器目标服务触发熔断的逻辑示意图。
具体实施方式
现在将描述某些示例性实施方案,以从整体上理解本文所公开的装置和方法的结构、功能、制造和用途的原理。这些实施方案的一个或多个示例已在附图中示出。本领域的普通技术人员将会理解,在本文中具体描述并示出于附图中的装置和方法为非限制性的示例性实施方案,并且本发明的多个实施方案的范围仅由权利要求书限定。结合一个示例性实施方案示出或描述的特征可与其他实施方案的特征进行组合。这种修改和变型旨在包括在本发明的范围之内。
本说明书通篇提及的″多个实施例″、″一些实施例″、″一个实施例″或″实施例″等,意味着结合该实施例描述的具体特征、结构或特性包括在至少一个实施例中。因此,本说明书通篇出现的短语″在多个实施例中″、″在一些实施例中″、″在至少另一个实施例中″或″在实施例中″等并不一定都指相同的实施例。此外,在一个或多个实施例中,具体特征、结构或特性可以任何合适的方式进行组合。因此,在无限制的情形下,结合一个实施例示出或描述的具体特征、结构或特性可全部或部分地与一个或多个其他实施例的特征、结构或特性进行组合。这种修改和变型旨在包括在本发明的范围之内。
本申请中使用了流程图用来说明根据本申请的一些实施例的系统所执行的操作。应当明确理解,流程图的操作可以不按顺序来精确地执行。相反,这些操作可以以相反的顺序或同时执行。而且,可以将一个或多个其他操作添加到流程图。一个或多个操作可以从流程图中移除。
图1是根据本申请的一些实施例所示的一种服务器可实现触发熔断服务的系统100示意图。
服务器可实现触发熔断服务的系统100是一个包含服务器可实现触发熔断的系统。服务器可实现触发熔断服务的系统100可以包括一个服务器110、至少一个存储设备120、至少一个网络130,服务器110可以包括一个控制器112。
在一些实施例中,服务器110可以是一个单独的服务器或者一个服务器群组。所述服务器群可以是集中式的或分布式的(例如,服务器110可以是一个分布式的系统)。在一些实施例中,服务器110可以是本地的或远程的。例如,服务器110可以通过网络130访问存储在存储设备120中的数据。服务器110可以直接连接到存储设备120访问存储数据。在一些实施例中,服务器110可以在一个云平台上实现。所述云平台可以包括私有云、公共云、混合云、社区云、分布云、多重云等或上述举例的任意组合。在一些实施例中,服务器110可以在与本申请图2所示的计算设备上实现,包括计算设备200中的一个或多个部件。
在一些实施例中,服务器110可以包括一个控制器112。控制器112可以处理与服务请求相关的信息和/或数据以执行本申请描述的一个或多个功能。例如,控制器112可以通过网络130发送数据至存储设备120,用于更新存储在其中的数据。在一些实施例中,控制器112可以包括一个或多个处理器。控制器112可以包括一个或多个硬件处理器,例如中央处理器(CPU)、专用集成电路(ASIC)、专用指令集处理器(ASIP)、图像处理器(GPU)、物理运算处理器(PPU)、数字信号处理器(DSP)、现场可编辑门阵列(FPGA)、可编辑逻辑器件(PLD)、控制器、微控制器单元、精简指令集计算机(RISC)、微处理器等或上述举例的任意组合。
存储设备120可以存储数据和/或指令。在一些实施例中,存储设备120可以存储数据。在一些实施例中,存储设备120可以存储供服务器110执行或使用的数据和/或指令,服务器110可以通过执行或使用所述数据和/或指令以实现本申请描述的实施例方法。在一些实施例中,存储设备120可以包括大容量存储器、可移动存储器、挥发性读写存储器、只读存储器(ROM)等或上述举例的任意组合。在一些实施例中,存储设备120可以在一个云平台上实现。例如所述云平台可以包括私有云、公共云、混合云、社区云、分布云、多重云等或上述举例的任意组合。
在一些实施例中,存储设备120可以与网络130连接以实现与服务器可实现触发熔断服务的系统100中的一个或多个部件之间的通信。服务器可实现触发熔断服务的系统100的一个或多个部件可以通过网络130访问存储在存储设备120中的数据或指令。在一些实施例中,存储设备120可以直接与服务器可实现触发熔断服务的系统100的一个或多个部件连接或通信。在一些实施例中,存储设备120可以是服务器110的一部分。
网络130可以促进信息和/或数据的交换。在一些实施例中,服务器可实现触发熔断服务的系统100中的一个或多个部件可以通过网络130向服务器可实现触发熔断服务的系统100中的其他部件发送信息和/或数据。例如服务器110可以通过网络130获取/得到请求。在一些实施例中,网络130可以是有线网络或无线网络中的任意一种,或其组合。在一些实施例中,网络130可以包括一个或多个网络接入点。例如,网络130可能包括有线或无线网络接入点,如基站和/或互联网交换点130-1、130-2等等。通过接入点,服务器可实现触发熔断服务的系统100的一个或多个部件可能连接到网络130以交换数据和/或信息。
图2是根据本申请的一些实施例所示的一种示例性计算设备200的示意图。服务器110、存储设备120可以在计算设备200上实现。例如,控制器112可以在计算设备200上实现并被配置为实现本申请中所披露的功能。
计算设备200可以包括用来实现本申请所描述的系统的任意部件。例如,控制器112可以在计算设备200上通过其硬件、软件程序、固件或其组合实现。为了方便起见图中仅绘制了一台计算机,但是本申请所描述的与服务器可实现触发熔断服务的系统100相关的计算功能可以以分布的方式、由一组相似的平台所实施,以分散系统的处理负荷。
计算设备200可以包括与网络连接的通信端口250,用于实现数据通信。计算设备200可以包括一个处理器220,可以以一个或多个处理器的形式执行程序指令。示例性的电脑平台可以包括一个内部总线210、不同形式的程序存储器和数据存储器包括,例如,硬盘270、和只读存储器(ROM)230或随机存储器(RAM)240,用于存储由计算机处理和/或传输的各种各样的数据文件。示例性的计算设备可以包括存储在只读存储器230、随机存储器240和/或其他类型的非暂时性存储介质中的由处理器220执行的程序指令。本申请的方法和/或流程可以以程序指令的方式实现。计算设备200也包括输入/输出部件260,用于支持电脑与其他部件之间的输入/输出。计算设备200也可以通过网络通讯接收本披露中的程序和数据。
为理解方便,图2中仅示例性绘制了一个处理器。然而,需要注意的是,本申请中的计算设备200可以包括多个处理器,因此本申请中描述的由一个处理器实现的操作和/或方法也可以共同地或独立地由多个处理器实现。例如,如果在本申请中,计算设备200的处理器执行步骤1和步骤2,应当理解的是,步骤1和步骤2也可以由计算设备200的两个不同的处理器共同地或独立地执行。
微服务架构已经应用于系统的开发和部署当中,微服务具备海量的节点程序提供服务。微服务节点之间存在互相依赖,链式调用的情况,例如调用链:微服务A-》B-》C,在实际应用过程中,大量节点很可能存在某个微服务节点因为种种原因失去响应,例如C节点迟迟不能返回请求结果,会关联影响B、A节点,导致用户请求积压,并造成雪崩效应,连带造成关联的微服务阻塞。
图3示出了本申请一实施例服务器触发熔断服务的时序示意图。
在一些实施例中,本申请提供的服务器包括第一计数器以及第一控制器。所述第一计数器用于统计计数周期、及目标服务在每个计数周期的故障计数;所述第一控制器被配置为在当前计数周期的故障计数大于等于次数阈值时,控制所述服务器触发所述目标服务熔断。
服务器的第一控制器取一个计数周期,即固定的时间周期例如实施为1s,计数器统计此时间间隔内目标服务出错请求数,即故障次数,所述故障例如可包括访问超时、或访问不通等情况。
如果服务器的目标服务在1s内出错请求数大于等于设定的次数阈值,例如所述次数阈值实施为500次,则第一控制器控制服务器触发所述目标服务熔断;若此时间间隔结束时,计数器统计的此时间间隔内累积出错请求数小于次数阈值,则第一控制器控制计数器清零,重新开始一个新的时间间隔、即重新开始一个新的计数周期,重新开始统计故障计数。
在一些实施例中,计数周期可实施为1s、触发熔断的次数阈值可实施为500;我方终端发送服务请求至我方系统端,所述服务请求用于调用目标服务,即第三方服务;我方系统端发送调用请求至第三方服务;如果第三方服务返回出错信息至我方系统端,则我方系统端控制熔断计数器将当前计数周期的故障次数加1;熔断计数器计数成功后反馈成功信息至我方系统端;我方系统端返回服务调用失败信息至我方终端;当第Tn计数周期的故障次数小于次数阈值时,不启动熔断触发器;第Tn+1计数周期的故障次数大于等于次数阈值时,启动熔断触发器;第三方服务触发熔断后,如果有我方终端继续发送关于第三方服务请求至我方系统端,我方系统端将返回系统降级提示至我方终端。
为了减小触发熔断对阈值的强依赖,本申请还提供了一种触发熔断的方法,在计算熔断触发时机时,将历史计数周期的故障计数纳入统计,可以反映近段时间内目标服务的波动性,更好的支撑判定触发熔断决策。
图4示出了本申请一实施例服务器端触发熔断方法的流程示意图。
在步骤401中,在当前计数周期的故障计数大于等于次数阈值时,触发目标服务熔断。
本申请还提供了一种服务器,包括第一计数器和第一控制器。第一计数器用于统计计数周期、及目标服务在每个计数周期的故障计数;第一控制器被配置为在当前计数周期的故障计数大于等于次数阈值时,控制所述服务器触发所述目标服务熔断。
在一些实施例中,服务器的第一控制器控制第一计数器在在每个计数周期开始时进行当前计数清零,目标服务每增加一个错误请求所述第一计数器的故障计数增加加1;在一个计数周期结束时,记录存储计第一计数器当前记录的故障次数值,若第一计数器当前记录的故障次数超过预设的次数阈值时,则第一控制器控制服务器触发所述目标服务熔断。
在一些实施例中,第一控制器实时监控微服务架构下每一个微服务节点的状态信息;判断微服务节点的状态信息是否符合预设的熔断触发条件;当任意的第一微服务节点对应的任意一种状态信息符合熔断触发条件时,通过预设的熔断器替代第一微服务节点进行请求响应,并向服务器的微服务注册中心请求解除第一微服务节点的注册,以暂停第一微服务节点的服务。
其中,微服务是指将原有的单个业务系统会拆分为多个可以独立开发、设计、运行和运维的小应用,可在多个主机节点部署多个相同的小应用提高业务系统的可靠性,每一个小应用可以看做一个微服务节点。
在一些实施例中,第一控制器预先对各个微服务节点进行状态监控,当某个微服务节点出现不明原因导致的请求时间过长,请求失败等非正常情况时,通过一系列的智能判断,将该微服务节点的服务暂时解除注册,防止一个微服务节点不可用造成请求积压,影响调用微服务链中的其他微服务节点。
在一些实施例中,该状态信息可以包括微服务节点的响应时长、中央处理器CPU负载以及内存负载。熔断触发条件与状态信息相对应,包括响应时长大于或等于预设的时长阈值、CPU负载大于或等于第一预设负载阈值以及内存负载大于或等于第二预设负载阈值。
例如,检测每一个微服务节点的状态信息为响应时长时,可以将当前的响应时长与预设的时长阈值相比较,当该响应时长大于或等于该时长阈值时,说明当前的微服务节点响应超时,可以判定该微服务节点可能出现故障;
当检测每一个微服务节点的状态信息为CPU负载(或称CPU实时占用率)时,可以将当前的CPU负载与第一预设负载阈值相比较,当该CPU负载大于或等于该第一预设负载阈值时,说明当前的微服务节点的CPU负载过大,容易造成微服务崩溃;
当检测每一个微服务节点的状态信息为内存负载(或称内存实时占用率)时,可以将当前的内存负载与第二预设负载阈值相比较,当该内存负载大于或等于该第二预设负载阈值时,说明当前的微服务节点的内存负载过大,也容易造成微服务崩溃。
在步骤402中,在当前计数周期的故障计数小于次数阈值时,判定所述当前周期和第一过往周期的故障计数都处于第一范围阈值时,触发所述目标服务熔断,所述第一范围阈值大于等于所述次数阈值的第一百分比、小于所述次数阈值。
本申请提供的触发熔断方法是一种动态触发熔断的方案,第一控制器将历史技术周期的故障次数、或故障比例作为判定是否触发熔断的参考,将具体阈值改变为范围阈值,以实现动态判定触发熔断时机,提高熔断触发的正确性。
在一些实施例中,服务器第一控制器在当前计数周期的故障计数大于等于次数阈值时,控制所述服务器触发所述目标服务熔断;否则,在当前计数周期的故障计数小于次数阈值时,判定所述当前周期和第一过往周期的故障计数都处于第一范围阈值时,控制所述服务器触发所述目标服务熔断,所述第一范围阈值大于等于所述次数阈值的第一百分比、小于所述次数阈值。
所述当前周期和第一过往周期的故障计数,最近第一过往周期的故障计数例如可实施为最近N个过往周期中每个计数周期的故障计数统计,所述第一数过往周期为N;所述第一范围阈值为大于等于所述次数阈值的第一百分比,小于所述次数阈值。例如第一范围阈值可实施为大于等于次数阈值的90%,小于所述次数阈值,所述第一百分比实施为90%。
例如,在当前计数周期的故障计数小于次数阈值时,第一控制器判定目标服务在第一计数器中最近N个计数周期的故障次数,若连续N个计数周期的故障次数都大于等于上述次数阈值的90%,小于所述次数阈值,则认为目标服务,即第三方服务出现故障、或有较大波动,应触发熔断以保护本系统。
在一些实施例中,服务器第一控制器判定当前周期和第一过往周期的故障计数不都处于第一范围阈值时,第一控制器还被配置为:判定所述当前周期和第二过往周期的故障计数都处于第二范围阈值时,控制所述服务器触发所述目标服务熔断,所述第二范围阈值大于等于所述次数阈值的第二百分比、小于所述次数阈值;其中,所述第二过往周期包含所述第一过往周期,所述第二百分比小于所述第一百分比。
所述第二过往周期的故障计数例如可实施为最近M个计数周期中每个计数周期的故障计数统计,所述第二数量实施为M,M大于N;所述第二范围阈值为大于等于所述次数阈值的第二百分比,小于所述次数阈值。例如第二范围阈值可实施为大于等于次数阈值的80%,小于次数阈值,所述第二百分比实施为80%。
例如,第一控制器判定当前周期和第一过往周期的故障计数、即连续N个计数周期的故障次数没有都大于等于上述次数阈值的90%,则第一控制器继续判定目标服务在第一计数器中最近M个计数周期的故障次数,若连续M个计数周期的故障次数都大于等于上述次数阈值的80%,则认为目标服务,即第三方服务出现故障、或有较大波动,应触发熔断以保护本系统。
需要说明的是,本方法步骤可计算多次从而动态反应第三方服务的波动性。
在一些实施例中,所述服务器可配置为:如果最近2个计数周期的故障计数都大于次数阈值的90%,则触发熔断;若最近4个计数周期的故障计数都大于次数阈值的80%,则触发熔断;若最近6个计数周期的故障计数都大于次数阈值的70%,则触发熔断。
在一些实施例中,服务器的第一控制器将第一计数器配置为可统计有限个数的计数周期数据。例如,第一控制器将第一计数器配置为最多可统计10个计数周期的故障计数,如果每个计数周期为1s,则第一计数器总计可统计10s钟内目标服务每个计数周期的故障计数。
本申请将判定触发熔断的具体阈值改变为范围阈值,同时将历史计数周期数据纳入计算,可以较准确的动态识别第三方服务的稳定性,及时发现波动性,能更精确的触发熔断。第一控制器在计算历史熔断故障计数数据时,根据次数阈值的百分比进行加权比较,避免单一的阈值比较,可以有效识别目标服务处于高位出错故障计数但没有触发熔断而导致系统持续拥堵的场景。
图5示出了本申请一实施例服务器目标服务触发熔断的逻辑示意图。
在一些实施例中,第一计数器在每个计数周期开始时,将当前周期的故障计数清零;每当出现一个目标服务、即第三方服务的错误响应,例如服务超时、连接失败等异常,则第一计数器的故障计数加1;在第一计数器的计数周期结束时,第一控制器将第一计数器当前记录的故障计数值、以及计数周期序列号存储于环形数组中。
在一些实施例中,在计数周期结束时,第一控制器将所述计数周期的序列号、及其故障计数存储于环形数组,所述环形数组的长度设置为所述有限个数,以保留最近有限个数计数周期的故障计数。
第一计数器统计的计数周期、及故障计数按照时间顺序覆盖存储于所述环形数组;例如所述环形数组的长度设置为10,则所述环形数组可存储最近10个计数周期的故障计数。
在一些实施例中,当第一计数器统计数据进入新的计数周期后,第一控制器的重新比较新的计数周期故障计数与次数阈值的关系,进而判定是否进行当前周期和第一过往周期的故障计数与第一范围阈值的比较、当前周期和第二过往周期的故障计数与第二范围阈值的比较。
例如,Tn计数周期结束后,判定触发熔断逻辑计算重新开始;
在Tn+1计数周期,第一计数器的故障计数每增加1次后,第一控制器比较当前故障计数和次数阈值;若故障计数大于等于次数阈值,则触发熔断,服务器的熔断器开始执行熔断逻辑;若故障计数小于次数阈值,则服务器的熔断器开始执行熔断逻辑;
当一个计数周期结束时,比较当前周期和不同数量过往周期的故障次数与不同范围阈值,以判定是否触发目标服务熔断。
例如,若最近2个计数周期的故障计数都大于等于次数阈值的90%,则第一控制器触发目标服务熔断;否则进入下列步骤;
若最近5个计数周期的故障计数都大于等于次数阈值的70%,则第一控制器触发目标服务熔断;否则进入下列步骤;
若最近10个计数周期的故障计数都大于等于次数阈值的50%,则第一控制器触发目标服务熔断,否则结束此次触发熔断逻辑判定计算。
需要说明的是,本申请提供的触发熔断方法、及服务器,其中触发熔断逻辑计算过程中的迭代次数可灵活配置,即聚合故障计数中的第一过往周期数量、第二过往周期数量可根据实际情况进行配置,最大不超过第一计数器可记录的计数周期数量;范围阈值阈值中的第一百分比、第二百分比可根据实际情况、需要进行配置;
在一些实施例中,如果线上服务实际出错、故障发生次数波动较大,则第一控制器可将服务器配置更多的迭代计算判定,并考虑更低的范围阈值下限,以容易触发熔断。
本申请还提供了一种服务器,包括:第三计数器,用于统计计数周期、及目标服务在每个计数周期的故障比例;第三控制器,被配置为:在当前计数周期的故障比例大于等于比例阈值时,控制所述服务器触发所述目标服务熔断;否则,在当前计数周期的故障比例小于比例阈值时,判定所述当前周期和第一过往周期的故障比例都处于第一范围阈值时,控制所述服务器触发所述目标服务熔断,所述第一范围阈值为大于等于所述比例阈值的第一百分比、小于所述比例阈值。
在一些实施例中,第三控制器判定所述当前周期和第一过往周期的故障计比例不都处于所述第一范围阈值时,所述第三控制器还被配置为:判定所述当前周期和第二过往周期的故障计比例处于第二范围阈值时,控制所述服务器触发所述目标服务熔断,所述第二范围阈值大于等于所述比例阈值的第二百分比、小于所述比例阈值;其中,所述第二过往周期包含所述第一过往周期,所述第二百分比小于所述第一百分比。
可以发现,上述技术方案与前文提供的服务器实现熔断技术方案区别在于用比例阈值代替了次数阈值、故障比例代替了故障次数。
例如,故障比例实施为0.2、第一过往周期实施为N、第二过往周期实施为M、第一百分比实施为0.9、第二百分比实施为0.8;
第三控制器判定当前周期的故障比例大于等于0.2时,控制服务器触发目标服务熔断;
第三控制器判定当前周期的故障比例小于0.2时、且当前周期和连续N个计数周期的故障比例都大于等于比例阈值0.2的90%,,既0.18时,第三控制器控制服务器触发目标服务熔断;
第三控制器判定所述当前周期和第一过往周期的故障计比例不都处于第一范围阈值时,第三控制器继续判定目标服务在第三计数器中最近M个计数周期的故障比例,若连续M个计数周期的故障比例都大于等于上述比例阈值的80%,则认为目标服务,即第三方服务出现故障、或有较大波动,应触发熔断以保护本系统。
所述服务器实现触发熔断的其他具体操作、步骤在上文提供的另一种服务器触发熔断方法、及服务器实现方案中已进行详细阐述,在此不再赘述。基于上文中触发熔断方法、及服务器实现触发熔断方案的阐述,本申请还提供了一种触发熔断的装置,包括:第二计数器,用于统计计数周期、及目标服务在每个计数周期的故障计数;第二控制器,被配置为:在当前计数周期的故障计数大于等于次数阈值时,控制服务器触发所述目标服务熔断;否则,在当前计数周期的故障计数小于次数阈值时,判定所述当前周期和第一过往周期的故障计数都处于第一范围阈值时,触发所述目标服务熔断,所述第一范围阈值为大于等于所述次数阈值的第一百分比、小于所述次数阈值。所述触发熔断的装置实现触发熔断的具体操作、步骤在上文对触发熔断方法、及服务器实现方案中已进行详细阐述,在此不再赘述。
在一些实施例中,所述第二控制器判定所述当前周期和第一过往周期的故障计数不都处于所述第一范围阈值时,所述第二控制器还被配置为:判定所述当前周期和第二过往周期的故障计数都处于第二范围阈值时,触发所述目标服务熔断,所述第二范围阈值为大于等于所述次数阈值的第二百分比、小于所述次数阈值;其中,所述第二过往周期包含所述第一过往周期,所述第二百分比小于所述第一百分比。所述触发熔断的装置实现触发熔断的具体操作、步骤在上文对触发熔断方法、及服务器实现方案中已进行详细阐述,在此不再赘述。
本申请的有益效果在于,通过统计当前周期和过往周期的故障计数,可以实现加权历史数据、服务稳定性、波动性计算触发熔断时机;进一步通过构建范围阈值,可以实现动态触发熔断、扩大触发熔断时机,一定程度上可以提高触发熔断时机的准确性、避免服务降级、提高服务可用性。
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为″数据块″、″模块″、″引擎″、″单元″、″组件″或″系统″。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN)、或连接至外部计算机(例如通过因特网)、或在云计算环境中、或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。

Claims (10)

1.一种服务器,其特征在于,包括:
第一计数器,用于统计计数周期、及目标服务在每个计数周期的故障计数;
第一控制器,被配置为:
在当前计数周期的故障计数大于等于次数阈值时,控制所述服务器触发所述目标服务熔断;否则,
在当前计数周期的故障计数小于次数阈值时,判定所述当前周期和第一过往周期的故障计数都处于第一范围阈值时,控制所述服务器触发所述目标服务熔断,所述第一范围阈值大于等于所述次数阈值的第一百分比、小于所述次数阈值。
2.如权利要求1所述服务器,其特征在于,所述第一控制器判定所述当前周期和第一过往周期的故障计数不都处于所述第一范围阈值时,所述第一控制器还被配置为:
判定所述当前周期和第二过往周期的故障计数都处于第二范围阈值时,控制所述服务器触发所述目标服务熔断,所述第二范围阈值大于等于所述次数阈值的第二百分比、小于所述次数阈值;
其中,所述第二过往周期包含所述第一过往周期,所述第二百分比小于所述第一百分比。
3.如权利要求1所述服务器,其特征在于,所述第一控制器还被配置为:将所述第一计数器配置为可统计有限个数的计数周期数据。
4.如权利要求3所述服务器,其特征在于,在所述计数周期结束时,所述第一控制器还被配置为:
将所述计数周期的序列号、及其故障计数存储于环形数组,所述环形数组的长度设置为所述有限个数,以保留最近有限个数计数周期的故障计数。
5.一种触发熔断的方法,其特征在于,所述方法包括:
在当前计数周期的故障计数大于等于次数阈值时,触发目标服务熔断;否则,
在当前计数周期的故障计数小于次数阈值时,判定所述当前周期和第一过往周期的故障计数都处于第一范围阈值时,触发所述目标服务熔断,所述第一范围阈值大于等于所述次数阈值的第一百分比、小于所述次数阈值。
6.如权利要求5所述触发熔断的方法,其特征在于,判定所述当前周期和第一过往周期的故障计数不都处于所述第一范围阈值时,所述方法还包括:
判定所述当前周期和第二过往周期的故障计数都处于第二范围阈值时,触发所述目标服务熔断,所述第二范围阈值为大于等于所述次数阈值的第二百分比、小于所述次数阈值;
其中,所述第二过往周期包含所述第一过往周期,所述第二百分比小于所述第一百分比。
7.如权利要求5所述触发熔断的方法,其特征在于,所述方法还包括:计数周期配置为可统计有限个数。
8.如权利要求7所述触发熔断的方法,其特征在于,在所述计数周期结束时,所述方法还包括:
将所述计数周期的序列号、及其故障计数存储于环形数组,所述环形数组的长度设置为所述有限个数,以保留最近有限个数计数周期的故障计数。
9.一种触发熔断的装置,其特征在于,包括:
第二计数器,用于统计计数周期、及目标服务在每个计数周期的故障计数;
第二控制器,被配置为:
在当前计数周期的故障计数大于等于次数阈值时,触发所述目标服务熔断;否则,
在当前计数周期的故障计数小于次数阈值时,判定所述当前周期和第一过往周期的故障计数都处于第一范围阈值时,触发所述目标服务熔断,所述第一范围阈值为大于等于所述次数阈值的第一百分比、小于所述次数阈值。
10.一种服务器,其特征在于,包括:
第三计数器,用于统计计数周期、及目标服务在每个计数周期的故障比例;
第三控制器,被配置为:
在当前计数周期的故障比例大于等于比例阈值时,控制所述服务器触发所述目标服务熔断;否则,
在当前计数周期的故障比例小于比例阈值时,判定所述当前周期和第一过往周期的故障比例都处于第一范围阈值时,控制所述服务器触发所述目标服务熔断,所述第一范围阈值为大于等于所述比例阈值的第一百分比、小于所述比例阈值。
CN202011324817.6A 2020-11-23 2020-11-23 一种服务器、触发熔断的方法及装置 Active CN112527544B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011324817.6A CN112527544B (zh) 2020-11-23 2020-11-23 一种服务器、触发熔断的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011324817.6A CN112527544B (zh) 2020-11-23 2020-11-23 一种服务器、触发熔断的方法及装置

Publications (2)

Publication Number Publication Date
CN112527544A true CN112527544A (zh) 2021-03-19
CN112527544B CN112527544B (zh) 2022-04-29

Family

ID=74992967

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011324817.6A Active CN112527544B (zh) 2020-11-23 2020-11-23 一种服务器、触发熔断的方法及装置

Country Status (1)

Country Link
CN (1) CN112527544B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113126018A (zh) * 2021-04-19 2021-07-16 广东电网有限责任公司计量中心 一种电能计量装置检定设备启停参数预警方法及系统
CN113312202A (zh) * 2021-07-29 2021-08-27 太平金融科技服务(上海)有限公司 基于组件的故障处理逻辑生成方法、装置、设备和介质
US20220308869A1 (en) * 2021-03-26 2022-09-29 International Business Machines Corporation Computer management of microservices for microservice based applications

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH075221A (ja) * 1993-06-14 1995-01-10 Nishimu Denshi Kogyo Kk 送電線故障電流検出装置、故障区間検出方法および装置
WO2015196821A1 (zh) * 2014-06-27 2015-12-30 中兴通讯股份有限公司 WebSocket服务器监控方法及装置
CN107197473A (zh) * 2017-06-15 2017-09-22 三星电子(中国)研发中心 一种终端异常状态确定方法和装置
US20180039533A1 (en) * 2016-08-02 2018-02-08 International Business Machines Corporation Preventative system issue resolution
CN108681476A (zh) * 2018-05-08 2018-10-19 广州品唯软件有限公司 一种底层接口自动熔断方法及装置
US20200057686A1 (en) * 2018-08-14 2020-02-20 Industrial Technology Research Institute Compute node, failure detection method thereof and cloud data processing system
WO2020052147A1 (zh) * 2018-09-11 2020-03-19 清华大学合肥公共安全研究院 监测设备故障检测方法及装置
CN111031000A (zh) * 2019-11-18 2020-04-17 腾讯科技(深圳)有限公司 一种业务风控系统的处理方法、装置、系统及存储介质
US20200159635A1 (en) * 2017-09-30 2020-05-21 Huawei Technologies Co., Ltd. Memory Fault Detection
CN111831504A (zh) * 2019-04-15 2020-10-27 北京京东尚科信息技术有限公司 监控方法、监控装置、计算机设备和介质
CN111882067A (zh) * 2020-07-24 2020-11-03 北京睿知图远科技有限公司 一种基于数据统计的动态熔断算法及电子设备
US20200366583A1 (en) * 2018-09-30 2020-11-19 Wangsu Science & Technology Co., Ltd. Method and apparatus for monitoring bandwidth condition

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH075221A (ja) * 1993-06-14 1995-01-10 Nishimu Denshi Kogyo Kk 送電線故障電流検出装置、故障区間検出方法および装置
WO2015196821A1 (zh) * 2014-06-27 2015-12-30 中兴通讯股份有限公司 WebSocket服务器监控方法及装置
US20180039533A1 (en) * 2016-08-02 2018-02-08 International Business Machines Corporation Preventative system issue resolution
CN107197473A (zh) * 2017-06-15 2017-09-22 三星电子(中国)研发中心 一种终端异常状态确定方法和装置
US20200159635A1 (en) * 2017-09-30 2020-05-21 Huawei Technologies Co., Ltd. Memory Fault Detection
CN108681476A (zh) * 2018-05-08 2018-10-19 广州品唯软件有限公司 一种底层接口自动熔断方法及装置
US20200057686A1 (en) * 2018-08-14 2020-02-20 Industrial Technology Research Institute Compute node, failure detection method thereof and cloud data processing system
WO2020052147A1 (zh) * 2018-09-11 2020-03-19 清华大学合肥公共安全研究院 监测设备故障检测方法及装置
US20200366583A1 (en) * 2018-09-30 2020-11-19 Wangsu Science & Technology Co., Ltd. Method and apparatus for monitoring bandwidth condition
CN111831504A (zh) * 2019-04-15 2020-10-27 北京京东尚科信息技术有限公司 监控方法、监控装置、计算机设备和介质
CN111031000A (zh) * 2019-11-18 2020-04-17 腾讯科技(深圳)有限公司 一种业务风控系统的处理方法、装置、系统及存储介质
CN111882067A (zh) * 2020-07-24 2020-11-03 北京睿知图远科技有限公司 一种基于数据统计的动态熔断算法及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
佟业新等: "微服务架构中的服务质量保障研究", 《计算机系统应用》 *
刘尊民等: "智能交通系统中故障精确定位方法研究", 《重庆交通大学学报(自然科学版)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220308869A1 (en) * 2021-03-26 2022-09-29 International Business Machines Corporation Computer management of microservices for microservice based applications
CN113126018A (zh) * 2021-04-19 2021-07-16 广东电网有限责任公司计量中心 一种电能计量装置检定设备启停参数预警方法及系统
CN113312202A (zh) * 2021-07-29 2021-08-27 太平金融科技服务(上海)有限公司 基于组件的故障处理逻辑生成方法、装置、设备和介质

Also Published As

Publication number Publication date
CN112527544B (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
CN112527544B (zh) 一种服务器、触发熔断的方法及装置
US11277273B2 (en) Computer network service providing system including self adjusting volume enforcement functionality
CN109039833B (zh) 一种监控带宽状态的方法和装置
CN109391505B (zh) 网络实例管理方法及相关设备
CN107872402B (zh) 全局流量调度的方法、装置及电子设备
CN110611623B (zh) 限流方法和装置
EP4238295A1 (en) Methods, systems, and computer readable media for rank processing for network function selection
EP3264723B1 (en) Method, related apparatus and system for processing service request
US20190036798A1 (en) Method and apparatus for node processing in distributed system
CN107402851B (zh) 一种数据恢复控制方法及装置
CN111585824B (zh) 资源分发方法、装置、系统及电子设备
CN112965823B (zh) 调用请求的控制方法、装置、电子设备和存储介质
CN109660624B (zh) 内容分发网络资源的规划方法、服务器及存储介质
CN110138808B (zh) 基于cdn的反劫持下载方法和系统
CN111538572A (zh) 任务处理方法、装置、调度服务器及介质
CN109697117B (zh) 终端控制方法、装置以及计算机可读存储介质
CN106603631B (zh) 分布式消息系统及扩容方法
CN116382892B (zh) 一种基于多云融合以及云服务的负载均衡方法及装置
EP3375169B1 (fr) Procédé de gestion du trafic réseau relatif à un mécanisme de signalisation de présence d'un terminal
CN110019372A (zh) 数据监控方法、装置、服务器及存储介质
EP2887215B1 (en) Moving median usage frequency based maintenance of server instances
CN109547439B (zh) 一种服务节点接入网络的处理方法及装置
US20160013991A1 (en) Analytics-driven policy control in computer networks
CN111555986B (zh) 一种拥塞控制方法、装置及设备
CN112532450B (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
GR01 Patent grant
GR01 Patent grant