CN111049670A - 一种用于微服务的熔断隔离的方法及装置 - Google Patents

一种用于微服务的熔断隔离的方法及装置 Download PDF

Info

Publication number
CN111049670A
CN111049670A CN201911082761.5A CN201911082761A CN111049670A CN 111049670 A CN111049670 A CN 111049670A CN 201911082761 A CN201911082761 A CN 201911082761A CN 111049670 A CN111049670 A CN 111049670A
Authority
CN
China
Prior art keywords
fuse
service
open state
server
state
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
CN201911082761.5A
Other languages
English (en)
Other versions
CN111049670B (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.)
Jiangsu Suning Cloud Computing Co ltd
SuningCom Co ltd
Original Assignee
Suning Cloud Computing 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 Suning Cloud Computing Co Ltd filed Critical Suning Cloud Computing Co Ltd
Priority to CN201911082761.5A priority Critical patent/CN111049670B/zh
Publication of CN111049670A publication Critical patent/CN111049670A/zh
Application granted granted Critical
Publication of CN111049670B publication Critical patent/CN111049670B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/06Management of faults, events, alarms or notifications
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • 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/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/0836Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability to enhance reliability, e.g. reduce downtime
    • 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/0893Assignment of logical groups to network elements
    • 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/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明实施例公开了一种用于微服务的熔断隔离的方法及装置,涉及云计算技术领域,能够降低由于非核心服务对核心服务的影响。本发明包括:调用业务接口后,分配独立线程池,所述业务接口对应业务服务;获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器;当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线;检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。本发明适用于微服务***的抗风险。

Description

一种用于微服务的熔断隔离的方法及装置
技术领域
本发明涉及云计算技术领域,尤其涉及一种用于微服务的熔断隔离的方法及装置。
背景技术
通常在服务器上所应用的熔断器的基本原理为:将受保护的函数调用包装在断路器对象中,该对象监视故障。一旦故障达到一定的阈值,熔断器就会跳闸,所有对断路器的进一步调用都会出错返回。其中,熔断器跳闸指的是:当在一定时间段内服务调用方调用服务提供方的服务的故障次数达到设定的阈值,就会进行服务熔断降级,让服务调用方之间执行本地设置的降级策略,而不再发起远程调用。
目前的熔断器方案主要是基于服务的维度进行熔断,对于各类电商、购票平台等大型的在线业务***,起到了很好的抗风险作用。但是若一种服务部署在多个服务器上(目前这种服务通常称为“微服务”),每个服务器具备该服务的局部,当局部服务器出现故障导致达到熔断阈值,就会导致服务整体熔断;也有可能是,局部服务器出现故障没有达到熔断阈值,导致服务持续故障。在一个具有巨大用户基数的大型互联网电商公司,由于实时处理海量客户端发出的请求,一旦微服务出现上述两种故障则会很容易导致“雪崩”效应,同时影响百万级别的用户,造成很大的经济损失。
发明内容
本发明的实施例提供一种用于微服务的熔断隔离的方法及装置,能够降低由于非核心服务对核心服务的影响。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供的方法,包括:
调用业务接口后,分配独立线程池,所述业务接口对应业务服务;
获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器;
当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线;
检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。
第二方面,本发明的实施例提供的装置,包括:
线程管理模块,用于调用业务接口后,分配独立线程池,所述业务接口对应业务服务;
配置模块,用于获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器;
熔断器状态管理模块,用于当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线;检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。
本实施例中在采用服务基于服务器维度进行熔断降级,服务调度负载均衡策略增加对熔断机制的依赖,动态下线、预上线、上线故障服务器,解决了现有技术采用服务基于服务整体故障率进行熔断降级导致局部故障导致全局熔断降级、或则局部故障范围太小未达到熔断阈值而导致局部故障持续影响业务。服务端核心服务采用独立的线程池,和其他服务达到线程隔离,避免其他服务对核心服务的影响,解决了现有技术服务端采用公共线程池导致其他服务对核心服务的影响的问题,由于微服务之间的依赖性,服务故障会传播,一旦核心服务出现故障影响范围很广,从而降低由于非核心服务对核心服务的影响。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的***架构示意图;
图2为本发明实施例提供的方法流程示意图;
图3、图4、图5为本发明实施例提供的具体实例的示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本实施例中的方法流程,具体可以执行在一种如图1所示的***中,其中包括:服务器集群和客户端。其中,服务器具体可以是刀片机、工作站、超级计算机等设备,多个服务器组成的一种用于数据处理的服务器集群***。在实际应用中,服务器可以连接业务***,比如SCM(Supply Chain Management,供应链管理)。
本发明实施例提供一种用于微服务的熔断隔离的方法,如图2所示,包括:
S101,调用业务接口后,分配独立线程池。
本实施例中,服务端为核心服务分配独立线程池,其中,预先在服务契约中增加核心服务标记;并在微服务服务管理平台增加对独立线程池的配置;服务端的服务执行器根据最新独立线程池的配置是否变化决定是否重建线程池,具体的线程池采用懒惰模式创建,在服务被调用的时候创建或重建,从而避免独立线程池过多地占用线程资源。
在实际应用中,业务接口可以理解为一种技术层面的说法,业务服务可以理解为一种业务层面的说法,比如下单接口也叫下单服务。因此可以理解为业务接口对应业务服务。
S102,获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器。
其中,每一个业务接口所占用的线程池,可以部署到多台服务器上,每个业务接口所占用的线程池的每一台服务器,都会对应一个熔断器。熔断器可以运行在消费端,也就是消费端调用业务接口的时候,先实例化这个业务接口所占用的线程池的每一个服务器的熔断器。
本实施例中,客户端也可称为消费端,即运行并使用熔断器的设备端。消费端和服务端相对应,即一个服务端为多个消费端提供服务,熔断器在消费端上进行实例化。在业务层面,消费端是调用业务服务的,服务端时提供业务服务的。在硬件层面,消费端和服务端都有对应的服务器设备,为实现在服务器设备上的一种***程序。消费端是调用业务服务的,消费端也可以提供业务服务,作为其他消费端的服务端,因此消费端和服务端的概念是相对的。
所述的熔断器工厂,具体是一种采用JAVA语言编写的程序,具有熔断功能的组件,作用是实例化(俗称:生产)熔断器。
熔断器状态组件是熔断器的状态组件,用于实时表现各个熔断器的状态情况。熔断度量组件用于记录业务服务调用情况,比如:调用一百次有多少次失败。本实施例中所述的“组件”,具体也是一种采用JAVA语言编写的程序。
熔断器容器(ConcurrentMap)用于存放熔断器,熔断器工厂生产出来的熔断器存放到熔断器容器中,可以进行重复使用。
S103,当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线。
S104,检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。
具体的,在客户端基于服务所在的服务器维度进行熔断降级对的方式包括:熔断器状态包含:闭合、半开、全开。熔断器初始化状态为闭合。如图3所示的,当服务所在的某台服务器出现故障,熔断度量达到阈值,该服务所在的这台故障服务器的熔断器状态编程全开状态。同时,访问该服务的请求不分配给该服务器,熔断器经过一段时间全开状态转为半开状态,半开状态目的是探测该服务器是否正常,如果正常,熔断器状态转变为闭合状态。如果异常,熔断器状态转变为全开状态。本实施例中通过熔断器的闭合、半开、全开的三个状态互相转化,将有问题的服务器熔断下线,然后定期进行探测,达到自动化上线已经恢复的故障服务器。
本实施例中,所述调用服务的业务接口后,分配独立线程池,包括:
调用服务的业务接口后,根据所述业务接口对应的微服务是否存在核心服务标记,确认核心服务。为所述核心服务分配独立线程池。
其中,不存在核心服务标记的微服务为次要服务,次要服务的访问量大于核心服务,次要服务线程池与所述独立线程池相互隔离。例如:作为订单类的微服务,下单是核心服务,订单查询、晒单服务是次要服务,次要服务的访问量远大于核心服务的访问量,通过线程池隔离核心服务和次要服务,尽量减少核心服务的异常次数。具体的,次要服务线程池与所述独立线程池相互隔离,指的是:次要服务线程池和独立线程池分别包含各自的线程资源,且二者所包含的线程资源不重合,次要服务线程池的使用不会涉及到独立线程池中的线程资源。
本实施例中,所述获取对应所述业务接口的熔断器,并将所获取的熔断器分别对应所述独立线程池的服务器,包括:
所述业务接口被调用后,读取熔断配置信息。根据所述配置信息创建熔断器,将所创建的熔断器分配至所述独立线程池的服务器,并加载各个服务器的熔断器状态组件。之后,客户端加载熔断度量组件,并记录所述熔断器状态组件的执行结果。在本实施例中,客户端可以采用BitSet。并在业务接口下线时,清理对应的熔断器。
如图4所示的,本实施例中所述的熔断器在创建-运行-删除的整个过程中,需要利用熔断器工厂、部署在SCM的熔断配置、熔断器状态组件、熔断度量组件。具体的,SCM作为统一配置管理***,而熔断器工厂、熔断器状态组件和熔断度量组件这3样实现在消费端。熔断器的状态包含:闭合、半开和全开状态,初始化状态为闭合状态。三种状态之间的转换过程如图5所示,包括:
对于每一个服务器,当熔断器处于关闭状态时,若所述熔断器状态组件监听到失败率超标,则切换为全开状态,其中,所述失败率包括服务器处理所述业务接口对应的微服务的失败率。当熔断器的全开状态持续预设时长后,若不处于半开状态,则切换为全开状态关闭状态。本实施例中所述的“超标”指的是失败率大于预设值,当失败率小于等于预设值时则判定为不超标。
进一步的,当熔断器的全开状态持续预设时长后,切换为半开状态。检测熔断器处于半开状态的服务器的失败率,若所述处于半开状态的服务器的失败率不超标则切换熔断器为关闭状态,若所述处于半开状态的服务器的失败率超标则切换熔断器为全开状态。
所述根据所述配置信息创建熔断器包括:熔断器工厂监听部署在SCM上的熔断配置,并将所述熔断配置导入熔断器容器(ConcurrentMap)。
还包括:当所述独立线程池被释放后,删除对应所述业务接口的熔断器。
本实施例中所述的熔断配置具体包括了:闭状态度量容器大小,关闭状态失败率;半开状态度量容器大小,半开状态失败率,半开状态允许最大并发,是否存在半开状态;全开状态持续时间;熔断配置可以部署在SCM(Supply Chain Management,供应链管理)。具体的,熔断配置是熔断器工厂根据熔断配置实例化(俗称:生产)熔断器,如果熔断配置发生变化,SCM(统一配置管理***)会实时告知消费端,这样之前实例化的熔断器都无效,需要重新按照新的熔断配置实例化熔断器。
在本实施例中,将熔断和业务降级一一对应,有熔断的服务器所涉及的业务上同时应用业务降级方案,业务降级方案应该包含:业务故障展示、告警、补偿机制;根据告警数据统计业务影响范围;补偿机制要满足幂等性的要求。
在本实施例中,在客户端采用的技术方案的主要设计思路是:通过客户端基于服务所在的服务器维度进行熔断降级,目前微服务之间依赖非常复杂,一个服务可能依赖很多其他服务,同时微服务是分布式的,一个服务部署在不同的服务器上,基于服务所在的服务器维度进行熔断降级,每一个服务所在的每一台服务器的熔断度量都是不同的,在客户端内存中存储了很多熔断度量对象,对内存的占用也是巨大的,在客户端采用BitSet作为熔断度量容器大大降低了对内存的占用。
服务调度的负载均衡依赖熔断机制,动态下线、预上线、上线故障服务器,自动化降低故障服务器对业务的影响。并且,将熔断和业务降级一一对应,有熔断的地方业务上必须明确业务降级方案,业务降级方案应该包含:业务故障展示、告警、补偿机制;根据告警数据统计业务影响范围;补偿机制要满足幂等性的要求。
在服务端采用的技术方案的主要设计思路是:在服务端核心服务独立线程池,在服务契约中增加核心服务标记、在微服务服务管理平台增加对独立线程池的配置,服务被调用时,根据最新独立线程池的配置是否变化,决定是否重建线程池。
本实施例中在客户端采用服务基于服务器维度进行熔断降级,服务调度负载均衡策略增加对熔断机制的依赖,动态下线、预上线、上线故障服务器,解决了现有技术采用服务基于服务整体故障率进行熔断降级导致局部故障导致全局熔断降级、或则局部故障范围太小未达到熔断阈值而导致局部故障持续影响业务。服务端核心服务采用独立的线程池,和其他服务达到线程隔离,避免其他服务对核心服务的影响,解决了现有技术服务端采用公共线程池导致其他服务对核心服务的影响的问题,由于微服务之间的依赖性,服务故障会传播,一旦核心服务出现故障影响范围很广,从而降低由于非核心服务对核心服务的影响。
在实际应用中,客户端熔断降级依赖服务更加精确,有问题的服务器被熔断降级掉,没有问题的服务继续提供服务。举例来说:订单服务部署在三台服务器上,请求60次,负载均衡到每一台服务器为20次请求。熔断开关从闭合到打开设置阈值:请求数60,异常率为5%。采用现有方案需要发生的异常请求数为:60*5%=3次;采用本方案发生的异常请求数为:20*5%=1次。
现有方案发生3次异常请求数就打开熔断开关,服务降级为采用降级方案。本方案发生1次异常请求数才打开异常服务器的熔断开关并动态下线,其他服务器正常提供服务,降低采用降级方案。原因是:大型互联网公司***容量普遍有50%冗余,个别服务器故障不足以影响整体。
本实施例还提供一种用于微服务的熔断隔离的装置,包括:
线程管理模块,用于调用业务接口后,分配独立线程池,所述业务接口对应业务服务。
配置模块,用于获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器。
熔断器状态管理模块,用于当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线。检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。
所述线程管理模块,具体用于调用服务的业务接口后,根据所述业务接口对应的微服务是否存在核心服务标记,确认核心服务。为所述核心服务分配独立线程池。其中,不存在核心服务标记的微服务为次要服务,次要服务的访问量大于核心服务,次要服务线程池与所述独立线程池相互隔离。
所述配置模块,具体用于所述业务接口被调用后,读取熔断配置信息。根据所述配置信息创建熔断器,将所创建的熔断器分配至所述独立线程池的服务器,并加载各个服务器的熔断器状态组件。客户端加载熔断度量组件,并记录所述熔断器状态组件的执行结果。
所述熔断器状态管理模块,具体用于当熔断器处于关闭状态时,若所述熔断器状态组件监听到失败率超标,则切换为全开状态,其中,所述失败率包括服务器处理所述业务接口对应的微服务的失败率。当熔断器的全开状态持续预设时长后,若不处于半开状态,则切换为全开状态关闭状态。熔断器的状态包含:闭合、半开和全开状态,初始化状态为闭合状态。
当熔断器的全开状态持续预设时长后,切换为半开状态。检测熔断器处于半开状态的服务器的失败率,若所述处于半开状态的服务器的失败率不超标则切换熔断器为关闭状态,若所述处于半开状态的服务器的失败率超标则切换熔断器为全开状态。
所述配置模块,具体用于熔断器工厂监听部署在SCM上的熔断配置,并将所述熔断配置导入熔断器容器(ConcurrentMap)。当所述独立线程池被释放后,删除对应所述业务接口的熔断器。
本实施例中在客户端采用服务基于服务器维度进行熔断降级,服务调度负载均衡策略增加对熔断机制的依赖,动态下线、预上线、上线故障服务器,解决了现有技术采用服务基于服务整体故障率进行熔断降级导致局部故障导致全局熔断降级、或则局部故障范围太小未达到熔断阈值而导致局部故障持续影响业务。服务端核心服务采用独立的线程池,和其他服务达到线程隔离,避免其他服务对核心服务的影响,解决了现有技术服务端采用公共线程池导致其他服务对核心服务的影响的问题,由于微服务之间的依赖性,服务故障会传播,一旦核心服务出现故障影响范围很广,从而降低由于非核心服务对核心服务的影响。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种用于微服务的熔断隔离的方法,其特征在于,包括:
调用业务接口后,分配独立线程池;
获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器;
当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线;
检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。
2.根据权利要求1所述的方法,其特征在于,所述调用服务的业务接口后,分配独立线程池,包括:
调用服务的业务接口后,根据所述业务接口对应的微服务是否存在核心服务标记,确认核心服务;
为所述核心服务分配独立线程池;
其中,不存在核心服务标记的微服务为次要服务,次要服务的访问量大于核心服务,次要服务线程池与所述独立线程池相互隔离。
3.根据权利要求1所述的方法,其特征在于,所述获取对应所述业务接口的熔断器,并将所获取的熔断器分别对应所述独立线程池的服务器,包括:
所述业务接口被调用后,读取熔断配置信息;
根据所述配置信息创建熔断器,将所创建的熔断器分配至所述独立线程池的服务器,并加载各个服务器的熔断器状态组件;
客户端加载熔断度量组件,并记录所述熔断器状态组件的执行结果。
4.根据权利要求3所述的方法,其特征在于,熔断器的状态包含:闭合、半开和全开状态,初始化状态为闭合状态;
对于每一个服务器,当熔断器处于关闭状态时,若所述熔断器状态组件监听到失败率超标,则切换为全开状态,其中,所述失败率包括服务器处理所述业务接口对应的微服务的失败率;
当熔断器的全开状态持续预设时长后,若不处于半开状态,则切换为全开状态关闭状态。
5.根据权利要求4所述的方法,其特征在于,还包括:
当熔断器的全开状态持续预设时长后,切换为半开状态;
检测熔断器处于半开状态的服务器的失败率,若所述处于半开状态的服务器的失败率不超标则切换熔断器为关闭状态,若所述处于半开状态的服务器的失败率超标则切换熔断器为全开状态。
6.根据权利要求3所述的方法,其特征在于,所述根据所述配置信息创建熔断器包括:
熔断器工厂监听部署在SCM上的熔断配置,并将所述熔断配置导入熔断器容器(ConcurrentMap);
还包括:当所述独立线程池被释放后,删除对应所述业务接口的熔断器。
7.一种用于微服务的熔断隔离的装置,其特征在于,包括:
线程管理模块,用于调用业务接口后,分配独立线程池;
配置模块,用于获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器;
熔断器状态管理模块,用于当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线;检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。
8.根据权利要求7所述的装置,其特征在于,所述线程管理模块,具体用于调用服务的业务接口后,根据所述业务接口对应的微服务是否存在核心服务标记,确认核心服务;为所述核心服务分配独立线程池;其中,不存在核心服务标记的微服务为次要服务,次要服务的访问量大于核心服务,次要服务线程池与所述独立线程池相互隔离。
9.根据权利要求7所述的装置,其特征在于,所述配置模块,具体用于所述业务接口被调用后,读取熔断配置信息;根据所述配置信息创建熔断器,将所创建的熔断器分配至所述独立线程池的服务器,并加载各个服务器的熔断器状态组件;客户端加载熔断度量组件,并记录所述熔断器状态组件的执行结果;
所述熔断器状态管理模块,具体用于当熔断器处于关闭状态时,若所述熔断器状态组件监听到失败率超标,则切换为全开状态,其中,所述失败率包括服务器处理所述业务接口对应的微服务的失败率;当熔断器的全开状态持续预设时长后,若不处于半开状态,则切换为全开状态关闭状态;熔断器的状态包含:闭合、半开和全开状态,初始化状态为闭合状态;
当熔断器的全开状态持续预设时长后,切换为半开状态;检测熔断器处于半开状态的服务器的失败率,若所述处于半开状态的服务器的失败率不超标则切换熔断器为关闭状态,若所述处于半开状态的服务器的失败率超标则切换熔断器为全开状态。
10.根据权利要求9所述的装置,其特征在于,所述配置模块,具体用于熔断器工厂监听部署在SCM上的熔断配置,并将所述熔断配置导入熔断器容器(ConcurrentMap);当所述独立线程池被释放后,删除对应所述业务接口的熔断器。
CN201911082761.5A 2019-11-07 2019-11-07 一种用于微服务的熔断隔离的方法及装置 Active CN111049670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911082761.5A CN111049670B (zh) 2019-11-07 2019-11-07 一种用于微服务的熔断隔离的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911082761.5A CN111049670B (zh) 2019-11-07 2019-11-07 一种用于微服务的熔断隔离的方法及装置

Publications (2)

Publication Number Publication Date
CN111049670A true CN111049670A (zh) 2020-04-21
CN111049670B CN111049670B (zh) 2023-02-21

Family

ID=70231849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911082761.5A Active CN111049670B (zh) 2019-11-07 2019-11-07 一种用于微服务的熔断隔离的方法及装置

Country Status (1)

Country Link
CN (1) CN111049670B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111787073A (zh) * 2020-06-18 2020-10-16 多加网络科技(北京)有限公司 一种统一服务的限流熔断平台及其方法
CN111813568A (zh) * 2020-05-25 2020-10-23 北京皮尔布莱尼软件有限公司 一种服务管理***和方法
CN112965848A (zh) * 2021-03-05 2021-06-15 北京百度网讯科技有限公司 用于微服务的熔断降级方法、装置、设备和介质
CN114157551A (zh) * 2021-11-29 2022-03-08 中国平安财产保险股份有限公司 适用于微服务的熔断识别方法、装置、设备及存储介质
CN114285844A (zh) * 2021-12-07 2022-04-05 深圳市欧瑞博科技股份有限公司 服务器接口智能熔断的方法、装置、电子设备及存储介质
CN116016646A (zh) * 2022-11-07 2023-04-25 中国工商银行股份有限公司 业务访问控制方法、装置、设备及介质
US12034820B2 (en) 2021-03-05 2024-07-09 Beijing Baidu Netcom Science Technology Co., Ltd. Fusing and degradation method and apparatus for micro-service, device, and medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108600005A (zh) * 2018-04-23 2018-09-28 国云科技股份有限公司 一种防御微服务雪崩效应的方法
CN108650262A (zh) * 2018-05-09 2018-10-12 聚龙股份有限公司 一种基于微服务架构的云平台扩展方法及***
CN109032783A (zh) * 2018-08-01 2018-12-18 杭州朗和科技有限公司 信息交互方法、介质、装置和计算设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108600005A (zh) * 2018-04-23 2018-09-28 国云科技股份有限公司 一种防御微服务雪崩效应的方法
CN108650262A (zh) * 2018-05-09 2018-10-12 聚龙股份有限公司 一种基于微服务架构的云平台扩展方法及***
CN109032783A (zh) * 2018-08-01 2018-12-18 杭州朗和科技有限公司 信息交互方法、介质、装置和计算设备

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813568A (zh) * 2020-05-25 2020-10-23 北京皮尔布莱尼软件有限公司 一种服务管理***和方法
CN111813568B (zh) * 2020-05-25 2024-05-31 北京皮尔布莱尼软件有限公司 一种服务管理***和方法
CN111787073A (zh) * 2020-06-18 2020-10-16 多加网络科技(北京)有限公司 一种统一服务的限流熔断平台及其方法
CN111787073B (zh) * 2020-06-18 2023-08-22 庞茂林 一种统一服务的限流熔断平台及其方法
CN112965848A (zh) * 2021-03-05 2021-06-15 北京百度网讯科技有限公司 用于微服务的熔断降级方法、装置、设备和介质
US12034820B2 (en) 2021-03-05 2024-07-09 Beijing Baidu Netcom Science Technology Co., Ltd. Fusing and degradation method and apparatus for micro-service, device, and medium
CN114157551A (zh) * 2021-11-29 2022-03-08 中国平安财产保险股份有限公司 适用于微服务的熔断识别方法、装置、设备及存储介质
CN114157551B (zh) * 2021-11-29 2023-07-21 中国平安财产保险股份有限公司 适用于微服务的熔断识别方法、装置、设备及存储介质
CN114285844A (zh) * 2021-12-07 2022-04-05 深圳市欧瑞博科技股份有限公司 服务器接口智能熔断的方法、装置、电子设备及存储介质
CN116016646A (zh) * 2022-11-07 2023-04-25 中国工商银行股份有限公司 业务访问控制方法、装置、设备及介质
CN116016646B (zh) * 2022-11-07 2024-05-28 中国工商银行股份有限公司 业务访问控制方法、装置、设备及介质

Also Published As

Publication number Publication date
CN111049670B (zh) 2023-02-21

Similar Documents

Publication Publication Date Title
CN111049670B (zh) 一种用于微服务的熔断隔离的方法及装置
US11269718B1 (en) Root cause detection and corrective action diagnosis system
US10048996B1 (en) Predicting infrastructure failures in a data center for hosted service mitigation actions
CN105187249B (zh) 一种故障恢复方法及装置
CN101689114B (zh) 用于集群软件实体的动态cli映射
TWI701916B (zh) 用於在分布式系統中使管理能力自恢復的方法和裝置
CN108769179A (zh) 一种服务健康状态评估方法及装置
Panteli et al. Quantifying the reliability level of system integrity protection schemes
CN105872024A (zh) 容灾设备、***及方法
Rosendo et al. How to improve cloud services availability? Investigating the impact of power and it subsystems failures
US20220129601A1 (en) Techniques for generating a configuration for electrically isolating fault domains in a data center
CN106951445A (zh) 一种分布式文件***及其存储节点上线方法
Sharma et al. Availability modelling of cluster-based system with software aging and optional rejuvenation policy
CN105391790A (zh) 类RAC One Node的数据库高可用方法
CN115834668B (zh) 集群节点控制方法、装置、设备、存储介质和程序产品
CN111866210A (zh) 一种虚拟ip均衡分配方法、***、终端及存储介质
Endo et al. Highly available clouds: System modeling, evaluations, and open challenges
Kansal et al. Using dark fiber to displace diesel generators
CN113656215B (zh) 一种基于集中配置的自动化容灾方法、***、介质和设备
Abderrahim et al. The three-dimensional model for dependability integration in cloud computing
CN115225642A (zh) 超融合***的弹性负载均衡方法及***
KR20230020052A (ko) 인공지능과 빅데이터 플랫폼에 의한 장애 예측을 이용한 멀티클라우드 서비스 방법 및 시스템
Wang et al. Service Deployment Strategy for Customer Experience and Cost Optimization under Hybrid Network Computing Environment.
CN108920164A (zh) 云计算***中主机的管理方法和装置
Yi et al. Research and Implementation of Service Auto Expansion and Fusing Technology for Dispatching and Control System

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 210042 No.1, Suning Avenue, Xuanwu District, Nanjing City, Jiangsu Province

Patentee after: Jiangsu Suning cloud computing Co.,Ltd.

Country or region after: China

Address before: 210042 No.1, Suning Avenue, Xuanwu District, Nanjing City, Jiangsu Province

Patentee before: Suning Cloud Computing Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240506

Address after: 210000, 1-5 story, Jinshan building, 8 Shanxi Road, Nanjing, Jiangsu.

Patentee after: SUNING.COM Co.,Ltd.

Country or region after: China

Address before: 210042 No.1, Suning Avenue, Xuanwu District, Nanjing City, Jiangsu Province

Patentee before: Jiangsu Suning cloud computing Co.,Ltd.

Country or region before: China