一种用于微服务的熔断隔离的方法及装置制造方法及图纸

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

A method and device of fusing isolation for microservice

【技术实现步骤摘要】
一种用于微服务的熔断隔离的方法及装置
本专利技术涉及云计算
,尤其涉及一种用于微服务的熔断隔离的方法及装置。
技术介绍
通常在服务器上所应用的熔断器的基本原理为:将受保护的函数调用包装在断路器对象中,该对象监视故障。一旦故障达到一定的阈值,熔断器就会跳闸,所有对断路器的进一步调用都会出错返回。其中,熔断器跳闸指的是:当在一定时间段内服务调用方调用服务提供方的服务的故障次数达到设定的阈值,就会进行服务熔断降级,让服务调用方之间执行本地设置的降级策略,而不再发起远程调用。目前的熔断器方案主要是基于服务的维度进行熔断,对于各类电商、购票平台等大型的在线业务系统,起到了很好的抗风险作用。但是若一种服务部署在多个服务器上(目前这种服务通常称为“微服务”),每个服务器具备该服务的局部,当局部服务器出现故障导致达到熔断阈值,就会导致服务整体熔断;也有可能是,局部服务器出现故障没有达到熔断阈值,导致服务持续故障。在一个具有巨大用户基数的大型互联网电商公司,由于实时处理海量客户端发出的请求,一旦微服务出现上述两种故障则会很容易导致“雪崩”效应,同时影响百万级别的用户,造成很大的经济损失。
技术实现思路
本专利技术的实施例提供一种用于微服务的熔断隔离的方法及装置,能够降低由于非核心服务对核心服务的影响。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,本专利技术的实施例提供的方法,包括:调用业务接口后,分配独立线程池,所述业务接口对应业务服务;获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器;当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线;检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。第二方面,本专利技术的实施例提供的装置,包括:线程管理模块,用于调用业务接口后,分配独立线程池,所述业务接口对应业务服务;配置模块,用于获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器;熔断器状态管理模块,用于当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线;检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。本实施例中在采用服务基于服务器维度进行熔断降级,服务调度负载均衡策略增加对熔断机制的依赖,动态下线、预上线、上线故障服务器,解决了现有技术采用服务基于服务整体故障率进行熔断降级导致局部故障导致全局熔断降级、或则局部故障范围太小未达到熔断阈值而导致局部故障持续影响业务。服务端核心服务采用独立的线程池,和其他服务达到线程隔离,避免其他服务对核心服务的影响,解决了现有技术服务端采用公共线程池导致其他服务对核心服务的影响的问题,由于微服务之间的依赖性,服务故障会传播,一旦核心服务出现故障影响范围很广,从而降低由于非核心服务对核心服务的影响。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术实施例提供的系统架构示意图;图2为本专利技术实施例提供的方法流程示意图;图3、图4、图5为本专利技术实施例提供的具体实例的示意图。具体实施方式为使本领域技术人员更好地理解本专利技术的技术方案,下面结合附图和具体实施方式对本专利技术作进一步详细描述。下文中将详细描述本专利技术的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本专利技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本
技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本专利技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。本实施例中的方法流程,具体可以执行在一种如图1所示的系统中,其中包括:服务器集群和客户端。其中,服务器具体可以是刀片机、工作站、超级计算机等设备,多个服务器组成的一种用于数据处理的服务器集群系统。在实际应用中,服务器可以连接业务系统,比如SCM(SupplyChainManagement,供应链管理)。本专利技术实施例提供一种用于微服务的熔断隔离的方法,如图2所示,包括:S101,调用业务接口后,分配独立线程池。本实施例中,服务端为核心服务分配独立线程池,其中,预先在服务契约中增加核心服务标记;并在微服务服务管理平台增加对独立线程池的配置;服务端的服务执行器根据最新独立线程池的配置是否变化决定是否重建线程池,具体的线程池采用懒惰模式创建,在服务被调用的时候创建或重建,从而避免独立线程池过多地占用线程资源。在实际应用中,业务接口可以理解为一种技术层面的说法,业务服务可以理解为一种业务层面的说法,比如下单接口也叫下单服务。因此可以理解为业务接口对应业务服务。S102,获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器。其中,每一个业务接口所占用的线程池,可以部署到多台服务器上,每个业务接口所占用的线程池的每一台服务器,都会对应一个熔断器。熔断器可以运行在消费端,也就是消费端调用业务接口的时候,先实例化这个业务接口所占用的线程池的每一个服务器的熔断器。本实施例中,客户端也可称为消费端,即运行并使用熔断器的设备端。消费端和服务端相对应,即一个服务端为多个消费端提供服务,熔断器在消费端上进行实例化。在业务层面,消费端是调用业务服务的,服务端时提供业务服务的。在硬件层面,消费端和服务端都有对应的服务器设备,为实现在服务器设备上的一种系统程序。消费端是调用业务服务的,消费端也可以提供业务服务,作为其他消费端的服务端,因此消费端和本文档来自技高网
...

【技术保护点】
1.一种用于微服务的熔断隔离的方法,其特征在于,包括:/n调用业务接口后,分配独立线程池;/n获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器;/n当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线;/n检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。/n

【技术特征摘要】
1.一种用于微服务的熔断隔离的方法,其特征在于,包括:
调用业务接口后,分配独立线程池;
获取对应所述业务接口的熔断器,并将所获取的熔断器配置到所述独立线程池的服务器;
当检测到熔断度量达到阈值的服务器时,将所述熔断度量达到阈值的服务器的熔断器切换至全开状态,并将熔断器为全开状态的服务器离线;
检测转为半开状态的熔断器所在的服务器是否正常,若正常则由半开状态转变为闭合状态,并将闭合状态的熔断器所在的服务器上线。


2.根据权利要求1所述的方法,其特征在于,所述调用服务的业务接口后,分配独立线程池,包括:
调用服务的业务接口后,根据所述业务接口对应的微服务是否存在核心服务标记,确认核心服务;
为所述核心服务分配独立线程池;
其中,不存在核心服务标记的微服务为次要服务,次要服务的访问量大于核心服务,次要服务线程池与所述独立线程池相互隔离。


3.根据权利要求1所述的方法,其特征在于,所述获取对应所述业务接口的熔断器,并将所获取的熔断器分别对应所述独立线程池的服务器,包括:
所述业务接口被调用后,读取熔断配置信息;
根据所述配置信息创建熔断器,将所创建的熔断器分配至所述独立线程池的服务器,并加载各个服务器的熔断器状态组件;
客户端加载熔断度量组件,并记录所述熔断器状态组件的执行结果。


4.根据权利要求3所述的方法,其特征在于,熔断器的状态包含:闭合、半开和全开状态,初始化状态为闭合状态;
对于每一个服务器,当熔断器处于关闭状态时,若所述熔断器状态组件监听到失败率超标,则切换为全开状态,其中,所述失败率包括服务器处理所述业务接口对应的微服务的失败率;
当熔断器的全开状态持续预设时长后,若不处于半开状态,则切换为全开状态关闭状态。


5.根据权利要求4所述的方法,其特征在于,还包括:
当熔断器的全开状态持续预设时长后,切换为半开状态;
检测熔断器处于半开状态的服务器的失败率,若所述处于半开状态的服务器的失败率不超标则切换熔断器为关闭状态,若所述处于半开状态的服务器的失败率超标则切换熔断器为全开状态。


6.根据权利要求3所述的方法,其特征在于,所述根据所述配置信息创建熔断器包括:
熔断器工厂监听部署在SCM上的熔断配置,并将所述熔断...

【专利技术属性】
技术研发人员:吴忠
申请(专利权)人:苏宁云计算有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1