CN109766210B - 服务熔断控制方法、服务熔断控制装置和服务器集群 - Google Patents
服务熔断控制方法、服务熔断控制装置和服务器集群 Download PDFInfo
- Publication number
- CN109766210B CN109766210B CN201910044441.4A CN201910044441A CN109766210B CN 109766210 B CN109766210 B CN 109766210B CN 201910044441 A CN201910044441 A CN 201910044441A CN 109766210 B CN109766210 B CN 109766210B
- Authority
- CN
- China
- Prior art keywords
- service
- electronic equipment
- service request
- executing
- execution
- 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.)
- Active
Links
Images
Abstract
本申请提供的服务熔断控制方法、服务熔断控制装置和服务器集群,涉及信息处理技术领域。其中,服务熔断控制方法包括:获取在第一预设时长内各服务节点执行电子设备的服务请求的执行状态信息,其中,执行状态信息包括执行成功信息和执行失败信息;基于预设条件和获取的执行状态信息判断是否需要停止执行电子设备的服务请求;若需要停止执行电子设备的服务请求,则控制每一个服务节点停止执行电子设备的服务请求,以停止对电子设备提供服务。通过上述方法,可以改善现有技术中存在的服务熔断控制效果较差的问题。
Description
技术领域
本申请涉及信息处理技术领域,具体而言,涉及一种服务熔断控制方法、服务熔断控制装置和服务器集群。
背景技术
在新零售行业背景下,提供后台服务的服务器集群与商家进行系统对接时,一般采用互联网http/https接口调用方式。其中,在商家接口异常或网络传输速度过慢时,会引起接口调用时长过长,从而导致超时等问题,进而会引起系统内部各个部分的雪崩效应,将整个内部系统处理速度拖慢。
现有技术中,在监控到接口异常或网络传输速度过慢时,一般会进行服务熔断处理,以停止执行对应的服务请求。但是,由于服务器集群一般包括多个用于提供服务的服务节点,且该多个服务节点能够向一个电子设备提供服务。因此,存在着每一个服务节点都需要单独去判断是否停止对同一个电子设备提供服务的问题,进而导致由于各个服务节点的不同步而出现并未真正停止提供服务的问题(部分节点已经停止提供服务,部分节点仍未停止提供服务)。因而,存在着服务熔断控制效果较差的问题。
发明内容
有鉴于此,本申请的目的在于提供一种服务熔断控制方法、服务熔断控制装置和服务器集群,以改善现有技术中存在的服务熔断控制效果较差的问题。
为实现上述目的,本申请实施例采用如下技术方案:
一种服务熔断控制方法,应用于包括多个服务节点的服务器集群,且该多个服务节点能够用于向一个电子设备提供服务,所述方法包括:
获取在第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息,其中,所述执行状态信息包括执行成功信息和执行失败信息;
基于预设条件和获取的执行状态信息判断是否需要停止执行所述电子设备的服务请求;
若需要停止执行所述电子设备的服务请求,则控制每一个所述服务节点停止执行所述电子设备的服务请求,以停止对所述电子设备提供服务。
在本申请实施例较佳的选择中,在上述服务熔断控制方法中,获取在第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息的步骤,包括:
在第一次执行服务请求失败时开始进行计时处理;
在计时时长达到第一预设时长时,获取该第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息。
在本申请实施例较佳的选择中,在上述服务熔断控制方法中,述服务器集群还包括缓存节点,获取在第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息的步骤,还包括:
在开始进行计时处理时生成一熔断周期标志,其中,该熔断周期标志包括第一次执行服务请求失败的时间;
将所述熔断周期标志发送至所述缓存节点进行存储,其中,该缓存节点为分布式存储节点且采用键值对存储方式。
在本申请实施例较佳的选择中,在上述服务熔断控制方法中,获取在第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息的步骤,还包括:
在计时时长达到第一预设时长时,在所述缓存节点中删除所述熔断周期标志,以在下一个第一次执行服务失败请求失败时重新生成一熔断周期标志。
在本申请实施例较佳的选择中,在上述服务熔断控制方法中,基于预设条件和获取的执行状态信息判断是否需要停止执行所述电子设备的服务请求的步骤,包括:
判断执行所述电子设备的服务请求的总次数是否达到预设次数,且执行失败的次数的占比是否达到预设比例;
若执行所述电子设备的服务请求的总次数达到预设次数且执行失败的次数的占比达到预设比例,则判定需要停止执行所述电子设备的服务请求;
若执行所述电子设备的服务请求的总次数未达到预设次数和/或执行失败的次数的占比未达到预设比例,则判定不需要停止执行所述电子设备的服务请求。
在本申请实施例较佳的选择中,在上述服务熔断控制方法中,在控制每一个所述服务节点停止执行所述电子设备的服务请求的步骤之后,所述方法还包括:
步骤a,在第二预设时长之后执行所述电子设备当前发送的服务请求,并判断该服务请求是否执行成功;
步骤b,若所述服务请求执行成功,则恢复向所述电子设备提供服务,以使每一个所述服务节点能够执行所述电子设备的服务请求;
步骤c,若所述服务请求未执行成功,则再次执行步骤a。
本申请实施例还提供了一种服务熔断控制装置,应用于包括多个服务节点的服务器集群,且该多个服务节点能够用于向一个电子设备提供服务,所述装置包括:
状态信息获取模块,用于获取在第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息,其中,所述执行状态信息包括执行成功信息和执行失败信息;
执行停止判断模块,用于基于预设条件和获取的执行状态信息判断是否需要停止执行所述电子设备的服务请求;
执行停止控制模块,用于在需要停止执行所述电子设备的服务请求时,控制每一个所述服务节点停止执行所述电子设备的服务请求,以停止对所述电子设备提供服务。
在本申请实施例较佳的选择中,在上述服务熔断控制装置中,所述状态信息获取模块包括:
计时处理子模块,用于在第一次执行服务请求失败时开始进行计时处理;
状态信息获取子模块,用于在计时时长达到第一预设时长时,获取该第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息。
在本申请实施例较佳的选择中,在上述服务熔断控制装置中,所述执行停止判断模块包括:
判断子模块,判断执行所述电子设备的服务请求的总次数是否达到预设次数,且执行失败的次数的占比是否达到预设比例;
第一判定子模块,用于在执行所述电子设备的服务请求的总次数达到预设次数且执行失败的次数的占比达到预设比例时,判定需要停止执行所述电子设备的服务请求;
第二判定子模块,用于在执行所述电子设备的服务请求的总次数未达到预设次数和/或执行失败的次数的占比未达到预设比例时,判定不需要停止执行所述电子设备的服务请求。
在上述基础上,本申请实施例还提供了一种服务器集群,包括多个服务节点,且该多个服务节点能够用于向一个电子设备提供服务;
其中,所述服务器集群还包括存储器、处理器和存储于该存储器并能够在该处理器上运行的计算机程序,该计算机程序在所述处理器上运行时实现上述的服务熔断控制方法。
本申请提供的服务熔断控制方法、服务熔断控制装置和服务器集群,基于各服务节点执行服务请求的执行状态信息判断是否需要停止执行该服务请求,并在需要停止执行该服务请求时,控制每一个服务节点停止执行该服务请求,以使服务器集群整体停止对该电子设备提供服务,从而避免需要每一个服务节点单独去判断是否需要停止对同一个电子设备提供服务的问题,进而避免导致由于各个服务节点的不同步而出现并未真正停止提供服务的问题(部分节点已经停止提供服务,部分节点仍未停止提供服务),有效地改善了现有技术中存在的服务熔断控制效果较差的问题,极大地提高了服务熔断控制方法的实用价值和服务器集群使用的安全性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
图1为本申请实施例提供的服务器集群的方框示意图。
图2为本申请实施例提供的服务器的方框示意图。
图3为本申请实施例提供的服务熔断控制方法包括的步骤的流程示意图。
图4为图3中步骤S110的流程示意图。
图5为图3中步骤S110包括的其它子步骤的流程示意图。
图6为图3中步骤S120的流程示意图。
图7为本申请实施例提供的服务熔断控制方法包括的其它步骤的流程示意图。
图8为本申请实施例提供的服务熔断控制装置包括功能模块的方框示意图。
图9为本申请实施例提供的状态信息获取模块包括的子功能模块的方框示意图。
图10为本申请实施例提供的执行停止判断模块包括的子功能模块的方框示意图。
图标:10-服务器集群;12-存储器;14-处理器;20-服务节点;30-控制节点;40-缓存节点;50-监控节点;100-服务熔断控制装置;110-状态信息获取模块;111-计时处理子模块;113-状态信息获取子模块;120-执行停止判断模块;121-判断子模块;123-第一判定子模块;125-第二判定子模块;130-执行停止控制模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本申请的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。在本申请的描述中,术语“第一”、“第二”、“第三”、“第四”等仅用于区分描述,而不能理解为只是或暗示相对重要性。
在本申请的描述中,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
如图1所示,本申请实施例提供了一种服务器集群10,可以包括服务节点20、控制节点30、缓存节点40和监控节点50。
详细地,所述服务节点20可以为多个,用于执行通过连接的电子设备的不同服务请求。所述控制节点30与所述服务节点20通信连接,用于判断是否需要控制所述服务节点20停止对电子设备提供服务。所述缓存节点40与所述控制节点30通信连接,用于存储所述控制节点30需要的数据或信息,以便于该控制节点30能够快速地读取该数据或信息。所述监控节点50用于监控所述服务节点20与所述电子设备之间的服务接口(如HTTP接口或HTTPs接口),以获取服务节点20执行服务请求的执行状态信息,并可存储于所述缓存节点40。
其中,不同的服务节点20可以执行同一个电子设备的服务请求,例如,一个电子设备用100个服务请求,可以分别由10个服务节点20执行,每一个服务节点20执行的服务请求的数量可以不受限制,既可以是相同的(如每一个服务节点20执行10个服务请求),也可以是不同的。
并且,需要说明的是,上述的服务节点20、控制节点30、缓存节点40和监控节点50可以是集成于同一个服务器,也可以是对应于不同的服务器,根据实际应用需求进行选择即可,在此不做具体限定。
进一步地,在本实施例中,结合图2,所述服务器集群10中的服务器可以包括存储器12、处理器14和服务熔断控制装置100。
详细地,所述存储器12和处理器14之间直接或间接地电性连接,以实现数据的传输或交互。例如,相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述服务熔断控制装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器12中的软件功能模块。所述处理器14用于执行所述存储器12中存储的可执行的计算机程序,例如,所述服务熔断控制装置100所包括的软件功能模块及计算机程序等,以实现服务熔断控制方法。
其中,所述存储器12可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器12用于存储程序,所述处理器14在接收到执行指令后,执行所述程序。
所述处理器14可能是一种集成电路芯片,具有信号的处理能力。上述的处理器14可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、片上系统(System on Chip,SoC)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
需要说明的是,执行上述计算机程序可以是由不同的处理器14实现,例如,部分程序可以由服务节点20对应的处理器14执行,部分程序可以由控制节点30对应的处理器14执行。
可以理解,图2所示的结构仅为示意,所述服务器还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
可选地,所述服务器的类型不受限制,例如,可以包括,但不限于web(网站)服务器、数据服务器等具备数据处理能力的设备。
结合图3,本申请实施例还提供一种可应用于上述服务器集群10的服务熔断控制方法。其中,所述服务熔断控制方法有关的流程所定义的方法步骤可以由所述处理器14实现。下面将对图2所示的具体流程进行详细阐述。
步骤S110,获取在第一预设时长内各所述服务节点20执行所述电子设备的服务请求的执行状态信息。
在本实施例中,所述执行状态信息包括执行成功信息和执行失败信息。对应地,所述执行成功信息为所述服务节点20执行所述电子设备的服务请求成功后返回的一状态信息,所述执行失败信息为所述服务节点20执行所述电子设备的服务请求失败后返回的一状态信息。
其中,上述的各所述服务节点20是指,在所述第一预设时长内有执行所述电子设备的服务请求的全部服务节点20。例如,在所述第一预设时长内所述电子设备发送了100个服务请求,并且,由10个服务节点20分别执行,那么,执行步骤S110时就需要获取该10个服务节点20对应的全部执行状态信息。
也就是说,在上述电子设备发送了100个服务请求的示例中,在执行步骤S110时可以获取到100条执行状态信息。
并且,需要说明的是,“在所述第一预设时长内”可以是包括该第一预设时长的起始时刻和结束时刻,以及该起始时刻与该结束时刻之间的各个时刻。
步骤S120,基于预设条件和获取的执行状态信息判断是否需要停止执行所述电子设备的服务请求。
在本实施例中,通过步骤S110获取到所述执行状态信息之后,可以将该执行状态信息与预设条件进行对比,以判断是否需要停止执行所述电子设备的服务请求。其中,在判定需要停止执行所述电子设备的服务请求时,可以执行步骤S130。
也就是说,所述预设条件可以基于停止执行服务请求的一般需求进行设置。例如,可以是基于执行失败信息的占比或数量进行确定。
步骤S130,控制每一个所述服务节点20停止执行所述电子设备的服务请求,以停止对所述电子设备提供服务。
在本实施例中,在判定需要停止执行所述电子设备的服务请求时,可以控制每一个所述服务节点20停止执行该电子设备的服务请求,以停止向该电子设备提供服务。
其中,需要说明的是,执行步骤S110获取所述执行状态信息的方式可以是通过所述监控节点50对所述电子设备和服务节点20之间的服务接口进行监控。执行步骤S120,可以是所述控制节点30将所述预设条件和获取的执行状态信息进行比较判断,然后,在需要停止执行电子设备的服务请求时,向各所述服务节点20发送对应的控制指令,以使所述集成于各所述服务节点20的熔断客户端(计算机程序)被执行,以实现停止执行服务请求的目的。
可选地,执行步骤S110获取执行状态信息的具体方式不受限制,可以根据实际应用需求进行选择。例如,在一种可以替代的示例中,可以是获取以任意一个时刻为起始时刻并持续第一预设时长内的执行状态信息。
又例如,在另一种可以替代的示例中,可以是获取以一个确定的时刻为起始时刻并持续第一预设时长内的执行状态信息。具体地,结合图4,步骤S110可以包括步骤S111和步骤S113,具体内容如下所述。
步骤S111,在第一次执行服务请求失败时开始进行计时处理。
在本实施例中,可以通过所述监控节点50实时监控所述电子设备与所述服务节点20之间的服务接口,以确定每一次执行服务请求是否成功。并且,在第一次执行服务请求失败时,可以开始计时处理。
步骤S113,在计时时长达到第一预设时长时,获取该第一预设时长内各所述服务节点20执行所述电子设备的服务请求的执行状态信息。
在本实施例中,在执行步骤S111开始计时处理后,并在计时时长达到所述第一预设时长之后,获取在这一段时间内执行所述电子设备的所有的服务请求的执行状态信息。
其中,所述第一预设时长的具体大小不受限制,可以根据实际应用需求进行选择,例如,可以是30s、60s、80s等。
进一步地,为了便于有效地标识第一次出现执行失败,在本实施例中,结合图5,步骤S110还可以包括步骤S115和步骤S117,具体内容如下所述。
步骤S115,在开始进行计时处理时生成一熔断周期标志。
在本实施例中,在开始进行计时处理时,也就是在第一出现执行失败时可以生成一熔断周期标志,以进入当前一个熔断周期。其中,所述熔断周期标志包括第一次执行服务请求失败的时间,也就是说,所述熔断周期的起始时刻为第一次执行服务请求失败的时间,且该熔断周期的周期为所述第一预设时长。
步骤S117,将所述熔断周期标志发送至所述缓存节点40进行存储。
在本实施例中,在生成所述熔断周期标志之后,为便于对该熔断周期标志进行读取,可以将该熔断周期标志发送至所述缓存节点40进行存储。其中,所述缓存节点40为分布式存储节点且采用键值对存储方式。
可选地,所述缓存节点40进行分布式缓存的具体方式不受限制,可以根据实际应用需求进行选择,例如,可以是基于redis数据库实现。
并且,键值对存储方式的具体形式也不受限制,可以根据实际应用需求进行选择。例如,在一种可以替代的示例中,在对所述熔断周期标志进行存储时键(key)可以为“电子设备对应的商家-门店-接口-第一次执行服务请求失败的时间”,值(value)可以为“第一次执行服务请求失败的时间”。
进一步地,为避免存储资源的浪费的问题,在本实施例中,步骤S110还可以包括以下步骤:在计时时长达到第一预设时长时,在所述缓存节点40中删除所述熔断周期标志,以在下一个第一次执行服务失败请求失败时重新生成一熔断周期标志。
也就是说,在一个熔断周期结束之后可以将当前的熔断周期标志进行删除,以避免占用缓存节点40的存储资源的问题。并且,还可以避免与下一次生成的熔断周期标志产生冲突的问题。
可选地,执行步骤S120进行判断的具体方式不受限制,可以根据实际应用需求进行选择。例如,根据预设条件的具体内容不同可以有不同的选择。在一种可以替代的示例中,结合图6,步骤S120可以包括步骤S121、步骤S123和步骤S125,具体内容如下所述。
步骤S121,判断执行所述电子设备的服务请求的总次数是否达到预设次数,且执行失败的次数的占比是否达到预设比例。
在本实施例中,可以预设存储以预设次数和一预设比例。然后,在通过步骤S110获取到执行状态信息之后,可以将该执行状态信息与该预设次数和预设比例进行比较以判断是否需要停止执行服务请求。
其中,在执行所述电子设备的服务请求的总次数达到预设次数,且其中执行失败的次数的占比达到预设比例时,可以执行步骤S123;在执行所述电子设备的服务请求的总次数未达到预设次数和/或执行失败的次数的占比未达到预设比例时,可以执行步骤S125。
可选地,所述预设次数和所述预设比例的具体数值不受限制,可以根据实际应用需求进行选择。例如,所述预设次数可以是100、150、180次等,所述预设比例可以是50%、60%、65%等。
步骤S123,判定需要停止执行所述电子设备的服务请求。
在本实施例中,在判定需要停止执行所述电子设备的服务请求时,可以停止向所述电子设备提供服务。也就是说,从此刻开始对所述电子设备进行熔断状态。
并且,为便于对该熔断状态进行标识,还可以生成对应的一熔断状态标志,并通过所述缓存节点40通过键值对的方式进行存储。例如,熔断状态标志的键(key)可以为“电子设备对应的商家-门店-接口-自定义字符1”、值(value)可以为“自定义字符2”。
其中,所述监控节点50可以对服务节点20对电子设备的每一个服务请求进行监控,以获取当前执行所述电子设备的服务请求的总次数和执行失败的次数,并可以通过所述缓存节点40进行存储。同样地,对该当前执行所述电子设备的服务请求的总次数和执行失败的次数进行存储时,也可以采用键值对的方式进行存储。
具体地,当前执行所述电子设备的服务请求的总次数的键(key)可以为“电子设备对应的商家-门店-接口-自定义字符3”、值(value)可以为“当前执行所述电子设备的服务请求的总次数”。当前执行失败的次数的键(key)可以为“电子设备对应的商家-门店-接口-自定义字符4”、值(value)可以为“当前执行失败的次数”。
步骤S125,判定不需要停止执行所述电子设备的服务请求。
在本实施例中,在判断出存在以下任意一种情形时,执行所述电子设备的服务请求的总次数未达到预设次数且执行失败的次数的占比未达到预设比例,执行所述电子设备的服务请求的总次数未达到预设次数且执行失败的次数的占比达到预设比例,或执行所述电子设备的服务请求的总次数达到预设次数且执行失败的次数的占比未达到预设比例,可以判定不需要停止执行所述电子设备的服务请求。也就是说,当前不需要对电子设备的服务进行熔断。
并且,在执行步骤S125之后,同样可以表明当前的一个熔断周期结束,在下一次出现执行失败时可以开始一个新的熔断周期。
进一步地,在通过上述步骤S110-步骤S130进行服务熔断之后,还可能需要对熔断进行恢复,例如,若服务熔断的原因是网络故障,在该网络故障消失之后需要对服务熔断进行恢复,以继续执行电子设备的服务请求。在一种可以替代的示例中,结合图7,所述服务熔断控制方法还可以包括步骤S140和步骤S150,具体内容如下所述。
步骤S140,在第二预设时长之后执行所述电子设备当前发送的服务请求,并判断该服务请求是否执行成功。
在本实施例中,在控制每一个所述服务节点20停止执行所述电子设备的服务请求之后,也就是在进入熔断状态之后,并经过第二预设时长,可以允许再次执行至少一个该电子设备的服务请求,并基于该服务请求是否执行成功以判断该电子设备的故障是否消除。
可选地,所述第二预设时长的具体数值不受限制,可以根据实际应用需求进行选择。例如,可以是20s、30s、50s等,也可以是所述第一预设时长的一半。
其中,所述服务请求执行成功时,也就是该电子设备的故障已消除,可以执行步骤S150;在所述服务请求执行失败时,也就是该电子设备的故障未消除,可以再次执行步骤S140,以维持当前的熔断状态。
步骤S150,恢复向所述电子设备提供服务,以使每一个所述服务节点20能够执行所述电子设备的服务请求。
在本实施例中,在经过第二预设时长之后若执行所述电子设备的服务请求成功,说明该电子设备的故障已消除,因此,可以恢复向所述电子设备提供服务,以使每一个接收到所述电子设备的服务请求的服务节点20都能够执行该服务请求。
需要说明的是,在执行进入所述熔断状态时,为对所述第二预设时长进行标识,还可以生成一半熔断状态标志(对应的第二预设时长为第一预设时长的一半),并在第二预设时长到达之后,删除该半熔断状态标志。也就是说,在存储该半熔断状态标志时,都不能执行电子设备的服务请求。
其中,所述半熔断状态标志也可以通过键值对的方式存储于所述缓存节点40。具体地,所述半熔断状态标志的键(key)可以为“电子设备对应的商家-门店-接口-自定义字符5”、值(value)可以为“自定义字符6”。
基于上述实施例,本申请还提供一具体的应用示例,在该示例中,具体的参数可以如下表所示:
第一预设时长(s) | 预设次数 | 预设比例 | 第二预设时长(s) |
60 | 100 | 50% | 30 |
基于上述参数,在执行本实施例提供的服务熔断控制方法时,可以有如下步骤:
在第一次执行服务请求失败时开始进行计时处理(进入为60s的熔断周期),在该熔断周期内正常执行电子设备的服务请求。然后,在60s之后(当前的熔断周期结束),若执行服务请求的次数大于或等于100且执行失败的次数的占比大于或等于50%(次数大于或等于50),停止执行该电子设备的服务请求。并且,可以进入熔断状态和半熔断状态(进入为30s的半熔断周期),并再次开始计时。然后,在30s之后(当前的半熔断周期结束),若执行服务请求失败,则继续维持熔断状态,并进入下一个为30s的半熔断周期;若执行服务请求成功,则退出当前的熔断状态和半熔断状态,然后,在下一次又出现服务请求失败时,进入下一个为60s的熔断周期。
如此,循环执行上述步骤,就可以对电子设备的服务的熔断和恢复进行有效地的控制,从而在保证能够有效地向电子设备提供服务基础上,还可以避免应该停止向电子设备提供服务而未停止,进而导致出现资源浪费、降低服务器集群10的运行效率等问题。
结合图8,本申请实施例还提供一种可应用于上述服务器集群10的服务熔断控制装置100。其中,所述服务熔断控制装置100可以包括状态信息获取模块110、执行停止判断模块120和执行停止控制模块130。
所述状态信息获取模块110,用于获取在第一预设时长内各所述服务节点20执行所述电子设备的服务请求的执行状态信息,其中,所述执行状态信息包括执行成功信息和执行失败信息。在本实施例中,所述状态信息获取模块110可用于执行图3所示的步骤S110,关于所述状态信息获取模块110的相关内容可以参照前文对步骤S110的描述。
所述执行停止判断模块120,用于基于预设条件和获取的执行状态信息判断是否需要停止执行所述电子设备的服务请求。在本实施例中,所述执行停止判断模块120可用于执行图3所示的步骤S120,关于所述执行停止判断模块120的相关内容可以参照前文对步骤S120的描述。
所述执行停止控制模块130,用于在需要停止执行所述电子设备的服务请求时,控制每一个所述服务节点20停止执行所述电子设备的服务请求,以停止对所述电子设备提供服务。在本实施例中,所述执行停止控制模块130可用于执行图3所示的步骤S130,关于所述执行停止控制模块130的相关内容可以参照前文对步骤S130的描述。
结合图9,在本实施例中,所述状态信息获取模块110可以包括计时处理子模块111和状态信息获取子模块113。
所述计时处理子模块111,用于在第一次执行服务请求失败时开始进行计时处理。在本实施例中,所述计时处理子模块111可用于执行图4所示的步骤S111,关于所述计时处理子模块111的相关内容可以参照前文对步骤S111的描述。
所述状态信息获取子模块113,用于在计时时长达到第一预设时长时,获取该第一预设时长内各所述服务节点20执行所述电子设备的服务请求的执行状态信息。在本实施例中,所述状态信息获取子模块113可用于执行图4所示的步骤S113,关于所述状态信息获取子模块113的相关内容可以参照前文对步骤S113的描述。
结合图10,在本实施例中,所述执行停止判断模块120可以包括判断子模块121、第一判定子模块123和第二判定子模块125。
所述判断子模块121,判断执行所述电子设备的服务请求的总次数是否达到预设次数,且执行失败的次数的占比是否达到预设比例。在本实施例中,所述判断子模块121可用于执行图6所示的步骤S121,关于所述判断子模块121的相关内容可以参照前文对步骤S121的描述。
所述第一判定子模块123,用于在执行所述电子设备的服务请求的总次数达到预设次数且执行失败的次数的占比达到预设比例时,判定需要停止执行所述电子设备的服务请求。在本实施例中,所述第一判定子模块123可用于执行图6所示的步骤S123,关于所述第一判定子模块123的相关内容可以参照前文对步骤S123的描述。
所述第二判定子模块125,用于在执行所述电子设备的服务请求的总次数未达到预设次数和/或执行失败的次数的占比未达到预设比例时,判定不需要停止执行所述电子设备的服务请求。在本实施例中,所述第二判定子模块125可用于执行图6所示的步骤S125,关于所述第二判定子模块125的相关内容可以参照前文对步骤S125的描述。
综上所述,本申请提供的服务熔断控制方法、服务熔断控制装置100和服务器集群10,基于各服务节点20执行服务请求的执行状态信息判断是否需要停止执行该服务请求,并在需要停止执行该服务请求时,控制每一个服务节点20停止执行该服务请求,以使服务器集群10整体停止对该电子设备提供服务,从而避免需要每一个服务节点20单独去判断是否需要停止对同一个电子设备提供服务的问题,进而避免导致由于各个服务节点20的不同步而出现并未真正停止提供服务的问题(部分节点已经停止提供服务,部分节点仍未停止提供服务),有效地改善了现有技术中存在的服务熔断控制效果较差的问题,极大地提高了服务熔断控制方法的实用价值和服务器集群10使用的安全性。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种服务熔断控制方法,其特征在于,应用于包括多个服务节点的服务器集群,且该多个服务节点能够用于向一个电子设备提供服务,所述方法包括:
获取在第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息,其中,所述执行状态信息包括执行成功信息和执行失败信息;
基于预设条件和获取的执行状态信息判断是否需要停止执行所述电子设备的服务请求;
若需要停止执行所述电子设备的服务请求,则控制每一个所述服务节点停止执行所述电子设备的服务请求,以停止对所述电子设备提供服务;
所述基于预设条件和获取的执行状态信息判断是否需要停止执行所述电子设备的服务请求的步骤,包括:
判断执行所述电子设备的服务请求的总次数是否达到预设次数,且执行失败的次数的占比是否达到预设比例;
若执行所述电子设备的服务请求的总次数达到预设次数且执行失败的次数的占比达到预设比例,则判定需要停止执行所述电子设备的服务请求;
若执行所述电子设备的服务请求的总次数未达到预设次数和/或执行失败的次数的占比未达到预设比例,则判定不需要停止执行所述电子设备的服务请求。
2.根据权利要求1所述的服务熔断控制方法,其特征在于,获取在第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息的步骤,包括:
在第一次执行服务请求失败时开始进行计时处理;
在计时时长达到第一预设时长时,获取该第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息。
3.根据权利要求2所述的服务熔断控制方法,其特征在于,所述服务器集群还包括缓存节点,获取在第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息的步骤,还包括:
在开始进行计时处理时生成一熔断周期标志,其中,该熔断周期标志包括第一次执行服务请求失败的时间;
将所述熔断周期标志发送至所述缓存节点进行存储,其中,该缓存节点为分布式存储节点且采用键值对存储方式。
4.根据权利要求3所述的服务熔断控制方法,其特征在于,获取在第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息的步骤,还包括:
在计时时长达到第一预设时长时,在所述缓存节点中删除所述熔断周期标志,以在下一个第一次执行服务失败请求失败时重新生成一熔断周期标志。
5.根据权利要求1-4任意一项所述的服务熔断控制方法,其特征在于,在控制每一个所述服务节点停止执行所述电子设备的服务请求的步骤之后,所述方法还包括:
步骤a,在第二预设时长之后执行所述电子设备当前发送的服务请求,并判断该服务请求是否执行成功;
步骤b,若所述服务请求执行成功,则恢复向所述电子设备提供服务,以使每一个所述服务节点能够执行所述电子设备的服务请求;
步骤c,若所述服务请求未执行成功,则再次执行步骤a。
6.一种服务熔断控制装置,其特征在于,应用于包括多个服务节点的服务器集群,且该多个服务节点能够用于向一个电子设备提供服务,所述装置包括:
状态信息获取模块,用于获取在第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息,其中,所述执行状态信息包括执行成功信息和执行失败信息;
执行停止判断模块,用于基于预设条件和获取的执行状态信息判断是否需要停止执行所述电子设备的服务请求;
执行停止控制模块,用于在需要停止执行所述电子设备的服务请求时,控制每一个所述服务节点停止执行所述电子设备的服务请求,以停止对所述电子设备提供服务;
所述执行停止判断模块包括:
判断子模块,用于判断执行所述电子设备的服务请求的总次数是否达到预设次数,且执行失败的次数的占比是否达到预设比例;
第一判定子模块,用于在执行所述电子设备的服务请求的总次数达到预设次数且执行失败的次数的占比达到预设比例时,判定需要停止执行所述电子设备的服务请求;
第二判定子模块,用于在执行所述电子设备的服务请求的总次数未达到预设次数和/或执行失败的次数的占比未达到预设比例时,判定不需要停止执行所述电子设备的服务请求。
7.根据权利要求6所述的服务熔断控制装置,其特征在于,所述状态信息获取模块包括:
计时处理子模块,用于在第一次执行服务请求失败时开始进行计时处理;
状态信息获取子模块,用于在计时时长达到第一预设时长时,获取该第一预设时长内各所述服务节点执行所述电子设备的服务请求的执行状态信息。
8.一种服务器集群,其特征在于,包括多个服务节点,且该多个服务节点能够用于向一个电子设备提供服务;
其中,所述服务器集群还包括存储器、处理器和存储于该存储器并能够在该处理器上运行的计算机程序,该计算机程序在所述处理器上运行时实现权利要求1-5任意一项所述的服务熔断控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910044441.4A CN109766210B (zh) | 2019-01-17 | 2019-01-17 | 服务熔断控制方法、服务熔断控制装置和服务器集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910044441.4A CN109766210B (zh) | 2019-01-17 | 2019-01-17 | 服务熔断控制方法、服务熔断控制装置和服务器集群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766210A CN109766210A (zh) | 2019-05-17 |
CN109766210B true CN109766210B (zh) | 2022-04-22 |
Family
ID=66454116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910044441.4A Active CN109766210B (zh) | 2019-01-17 | 2019-01-17 | 服务熔断控制方法、服务熔断控制装置和服务器集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766210B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187995B (zh) * | 2019-05-30 | 2022-12-20 | 北京奇艺世纪科技有限公司 | 一种熔断对端节点的方法及熔断装置 |
CN110309016B (zh) * | 2019-06-13 | 2022-03-04 | 北京奇艺世纪科技有限公司 | 一种熔断恢复方法、装置及服务器 |
CN110460639A (zh) * | 2019-07-12 | 2019-11-15 | 口碑(上海)信息技术有限公司 | 服务器集群的熔断处理方法、装置及系统 |
CN112306701B (zh) * | 2019-07-25 | 2024-05-03 | 中移动信息技术有限公司 | 服务熔断方法、装置、设备及存储介质 |
CN110737567A (zh) * | 2019-10-17 | 2020-01-31 | 吉旗(成都)科技有限公司 | 基于缓存的服务端接口熔断方法及装置 |
CN110837431A (zh) * | 2019-11-13 | 2020-02-25 | 深圳前海环融联易信息科技服务有限公司 | 服务控制方法、装置、计算机设备及计算机可读存储介质 |
CN110941844B (zh) * | 2019-11-27 | 2022-04-01 | 网易(杭州)网络有限公司 | 一种认证鉴权方法、系统、电子设备及可读存储介质 |
CN111324477A (zh) * | 2020-02-03 | 2020-06-23 | 北京同邦卓益科技有限公司 | 一种分布式熔断的处理方法及装置 |
CN113676434B (zh) * | 2020-05-13 | 2023-03-24 | 华为技术有限公司 | 网络资源的熔断方法、装置、电子设备及存储介质 |
CN113783908B (zh) * | 2020-06-10 | 2023-06-27 | 腾讯科技(上海)有限公司 | 服务调用方法、装置、设备及存储介质 |
CN111866156B (zh) * | 2020-07-27 | 2023-07-18 | 网易(杭州)网络有限公司 | 熔断处理方法及装置 |
CN112073492B (zh) * | 2020-08-31 | 2022-12-13 | 中国平安财产保险股份有限公司 | 请求执行方法、装置、电子设备及存储介质 |
CN112256454B (zh) * | 2020-10-30 | 2023-05-12 | 上海哔哩哔哩科技有限公司 | 消息延时处理方法和系统 |
CN113472879B (zh) * | 2021-06-29 | 2023-12-08 | 中国平安财产保险股份有限公司 | 一种服务请求的方法、装置、计算机设备及存储介质 |
CN114006904A (zh) * | 2021-10-28 | 2022-02-01 | 济南浪潮数据技术有限公司 | 一种大数据集群管理方法、装置和计算机设备 |
CN114357048A (zh) * | 2022-01-05 | 2022-04-15 | 携程旅游网络技术(上海)有限公司 | 接口熔断方法及系统、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656604A (zh) * | 2016-12-23 | 2017-05-10 | 郑州云海信息技术有限公司 | 微服务请求管理方法、微服务控制器及高并发微服务架构 |
CN107608812A (zh) * | 2017-09-08 | 2018-01-19 | 北京奇艺世纪科技有限公司 | 一种熔断方法和服务器 |
CN108712309A (zh) * | 2018-06-11 | 2018-10-26 | 郑州云海信息技术有限公司 | 一种微服务架构下的微服务节点防护方法和系统 |
CN108874531A (zh) * | 2017-05-12 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 用于熔断服务的方法、装置、系统及电子设备 |
CN109104336A (zh) * | 2018-09-27 | 2018-12-28 | 平安普惠企业管理有限公司 | 服务请求处理方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106856489B (zh) * | 2015-12-08 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 一种分布式存储系统的服务节点切换方法和装置 |
-
2019
- 2019-01-17 CN CN201910044441.4A patent/CN109766210B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656604A (zh) * | 2016-12-23 | 2017-05-10 | 郑州云海信息技术有限公司 | 微服务请求管理方法、微服务控制器及高并发微服务架构 |
CN108874531A (zh) * | 2017-05-12 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 用于熔断服务的方法、装置、系统及电子设备 |
CN107608812A (zh) * | 2017-09-08 | 2018-01-19 | 北京奇艺世纪科技有限公司 | 一种熔断方法和服务器 |
CN108712309A (zh) * | 2018-06-11 | 2018-10-26 | 郑州云海信息技术有限公司 | 一种微服务架构下的微服务节点防护方法和系统 |
CN109104336A (zh) * | 2018-09-27 | 2018-12-28 | 平安普惠企业管理有限公司 | 服务请求处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109766210A (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766210B (zh) | 服务熔断控制方法、服务熔断控制装置和服务器集群 | |
CN109739527B (zh) | 一种客户端灰度发布的方法、装置、服务器和存储介质 | |
CN112380089A (zh) | 一种数据中心监控预警方法及系统 | |
CN113656168A (zh) | 一种流量的自动容灾和调度的方法、系统、介质和设备 | |
CN111581055B (zh) | 业务系统的控制方法及装置、电子设备和可读存储介质 | |
CN111090511A (zh) | 任务处理方法、装置及计算机可读存储介质 | |
CN107025129B (zh) | 一种数据处理方法以及装置 | |
CN106506278B (zh) | 一种服务可用性监控方法及装置 | |
CN110896382A (zh) | 流量控制方法、装置、设备和计算机可读存储介质 | |
CN109495543B (zh) | 一种ceph集群中监视器的管理方法及装置 | |
CN114363334A (zh) | 云系统及云桌面虚拟机的网络配置方法、装置及设备 | |
CN111756594B (zh) | 压力测试的控制方法、计算机设备和计算机可读存储介质 | |
CN112506570A (zh) | 设备指令下发方法、系统和服务器 | |
CN116633766A (zh) | 故障处理方法、装置、电子设备及存储介质 | |
CN110752972A (zh) | 一种网卡状态监控方法、装置、设备及介质 | |
CN113778763B (zh) | 一种三方接口服务故障智能切换方法及系统 | |
CN110968475A (zh) | 监控网页的方法、装置、电子设备及可读存储介质 | |
CN114285844A (zh) | 服务器接口智能熔断的方法、装置、电子设备及存储介质 | |
CN114168435A (zh) | 一种告警处理推荐方法、装置、设备及可读存储介质 | |
CN110837431A (zh) | 服务控制方法、装置、计算机设备及计算机可读存储介质 | |
CN112068935A (zh) | kubernetes程序部署监控方法、装置以及设备 | |
CN111352803A (zh) | 业务数据处理方法、装置、设备和存储介质 | |
CN114090346A (zh) | 一种数据处理方法和装置 | |
CN111694705A (zh) | 监控方法、装置、设备及计算机可读存储介质 | |
CN116016128A (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 |