[发明专利]一种微服务治理系统和方法有效

专利信息
申请号: 202110713888.3 申请日: 2021-06-25
公开(公告)号: CN113382080B 公开(公告)日: 2023-03-28
发明(设计)人: 李超;杨倬;石会昌;杨培钦 申请(专利权)人: 中关村智慧城市产业技术创新战略联盟
主分类号: H04L47/10 分类号: H04L47/10;H04L47/215;G06F11/07
代理公司: 北京科迪生专利代理有限责任公司 11251 代理人: 张乾桢
地址: 100080 北京*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 微服 治理 系统 方法
【权利要求书】:

1.一种微服务治理方法,其特征在于,包括如下步骤:

步骤1、负载均衡步骤:基于负反馈调节的调整机制,即统计各个服务器节点的性能,计算出其性能的压力情况和权重情况,根据这两个值来调整该服务器节点的权重,以实现动态的负载均衡权重;

步骤2、链路追踪步骤:通过snowflake算法生成链路追踪的标识,将该标识隐式传递到整个链路中,通过消息队列接收该标识,并存储至数据库中,得以完整得知微服务拓扑调用网络中的调用链路;

步骤3、服务限流步骤:以触发性的方法,渐进式的异步更新令牌数量,以实现集群级别限流,使用探活变量,使得令牌桶能够自动退化为单机模式;

步骤4、熔断降级步骤:采用自动探活重连的分布式熔断方法,集群熔断器收集各实例的请求状态,并在集群熔断器内部持有熔断状态的状态机,根据请求状态切换状态机到关闭、半开启和开启状态,以实现分布式集群熔断;

所述步骤1中,负反馈调节的动态调整方法如下:

(1.1)使用Linux系统的定时任务cron定期对集群中各个节点的各项指标采集,然后输出到数据库中,以便后期计算;

(1.2)在负载均衡服务器的本地内存维护一份权重,执行时的策略和固定权重的负载均衡算法一致,还设置有一个异步的定时任务,用于定时调整各个节点权重的值,并将其刷入本地内存,完成权重的动态调整,调整公式如下:

公式1:

公式2:L(Ni)=R1Ci+R2Mi+R3Pi+R4Ti

公式3:

公式4:

公式5:W(Ni)′=W(Ni)+W(Ni)×a(r(L)-r(W))

其中,Ri表示权重系数,R1表示进程数,R2表示响应时间,R3表示CPU利用率,R4表示内存利用率的权重系数,Ci为该服务器节点CPU利用率,Mi为该节点内存利用率,Pi为该节点线程比值,Ti为该节点响应时间比值;集群中任意一个节点N的负载情况,表示为L(Ni),n为节点N的数量,r(L)是该节点的机器负载占总集群机器负载的比值,r(W)是该节点权重比值,W(Ni)为该节点的权重;a是动态调整的变化因子;W(Ni)′是调整后的服务器节点权重;。

2.根据权利要求1所述微服务治理方法,其特征在于:所述步骤2链路追踪的过程如下:

(2.1)基于整个调用链路和链路中每次远程方法调用的两层结构,构造链路追踪;

(2.2)链路追踪标识的生成:使用snowflake算法来构建分布式的全局唯一ID;

(2.3)链路追踪标识的传递:使用线程本地存储变量来实现隐式传递,然后异步收集链路数据。

3.根据权利要求1所述微服务治理方法,其特征在于:所述步骤3中使得令牌桶能够自动退化为单机模式,采用触发式令牌桶集群限流的过程如下:

(3.1)在redis中持有一个令牌桶,定义令牌桶的大小和令牌产生的速度;当服务调用者进行服务请求时,首先申请令牌,此时令牌桶先对比当前时间和下一次能请求到令牌的时间,再计算当前产生的令牌数,进行限流控制;

(3.2)使用lua语言编写脚本计算令牌桶,计算公式如下:

公式7:

公式8:expect_tokenCount=permits-tokenCount

其中permits是请求间隔内产生的令牌数,timestamp为当前时间戳;lastTimestamp是上一次远程方法调用记录的时间戳,slope是令牌的产生速度,expect_tokenCount是所剩令牌数量,tokenCount是本次请求的令牌数,通过比较所剩令牌数量的正负,判断远程方法调用有没有达成服务限流;

(3.3)微服务的每个节点增加一个限流的降级配置,该配置默认关闭,当与服务器失联的情况下,微服务节点会将限流的降级配置开启,此时不再使用分布式限流方案,而是改为在本机维护令牌桶,切换为单机限流模式。

4.根据权利要求1所述微服务治理方法,其特征在于:所述步骤4中,自动探活重连的分布式熔断方法如下:

(4.1)本系统首先维护一个熔断状态,实例从配置中读取到熔断的阈值,然后统计远程方法调用的成功率,与熔断阈值比较;当熔断器关闭时,表明远程方法调用处于正常状态,服务提供者可以继续正常提供服务;当熔断器打开时,说明远程方法调用失败的情况很多,服务不可用,为避免影响下游,需要降级处理;

(4.2)服务的消费者,从集群熔断器拉取当前的熔断配置,得知当前的熔断器状态,如果是关闭的,则不执行远程方法调用,直接返回设置的fallback的结果;如果熔断器允许执行远程方法调用,则调用后,服务的提供者上报调用的结果,这样集群熔断器得以统计请求失败和超时的比例,然后更新当前的熔断状态;

(4.3)分布式熔断器的状态机不止有开启和关闭两种状态,在这两种状态之外,还存在个半开启状态;当服务已经进入熔断状态,一定时间后,下游服务的提供者,提供服务的能力可能已经恢复,则熔断器进入半开启状态,即此时允许部分流量的进入;半开启状态允许一部分流量进入,对于这一部分允许进入的流量,会尝试进行远程方法调用,然后进行调用成功率的统计,如果调用成功率高于阈值,说明此时熔断的下游已经恢复,则继续提供服务,那么系统不再熔断;如果调用成功率低于阈值,说明下游还未恢复,为避免对下游的影响,熔断器重新开启。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中关村智慧城市产业技术创新战略联盟,未经中关村智慧城市产业技术创新战略联盟许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110713888.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top