基于服务发现动态权重的方法技术

技术编号:39521940 阅读:30 留言:0更新日期:2023-11-25 19:01
本发明专利技术提出了一种基于服务发现动态权重的方法

【技术实现步骤摘要】
基于服务发现动态权重的方法、系统、设备以及存储介质


[0001]本专利技术涉及计算机
,具体涉及一种基于服务发现动态权重的方法

系统

设备以及存储介质


技术介绍

[0002]在分布式系统中,多实例或多负载较为常见,通常一个服务不止一个实例,且服务实例数是可以动态伸缩的,在伸缩过程中,一些动态缓存或静态元素在扩容过程中,不能很好地对外服务,因此,需要使用到弹性扩容的服务,在准备程度不佳的时候,通过低流量即低权重方式完成系统的初始化,不间断地加大权重,以致最后达到和其他实例相同的权重;然而,现有的分布式服务中,提供服务的进程启动完成后,有些懒加载或者动态缓存由于还没正式接收外界的访问,其缓存并没有生效,使得在高并发场景下,瞬间的流量击穿新实例的缓存的概率会变得畸高,从而击垮该实例,该情况下,会非常容易造成该链路大量的请求延时

超时,甚至被挂起的情况,导致整个服务的可用性大大降低的问题

因此,需要对该问题进行研究改进


技术实现思路

[0003]针对现有技术的不足,本专利技术提出一种基于服务发现动态权重的方法

系统

设备以及存储介质,可以在业务请求高峰期实现平滑扩容,对用户影响较低;同时,在平时业务低峰期也可以回收资源,大大节约成本,提高扩容的效果

[0004]本专利技术第一方面公开了一种基于服务发现动态权重的方法,在微服务体系中包括网关模块和多个服务模块,执行以下步骤,
S1
:各服务模块新增负载权重值计算,用于动态上报当前服务模块的负载情况;
S2
:在每个服务模块上均设有与之对应的注册中心,所述注册中心实时更新所述服务模块所对应的负载权重值,用于所述服务模块中各微服务实例的流量动态配置;
S3
:网关模块根据其可调度的所有服务模块相对应的注册中心,分别设计并引入定时触发器,周期性采集各注册中心的负载权重值;
S4
:基于
S3
,网关模块对所有注册中心的负载权重值进行流量分配计算;
S5
:网关模块将接收到的服务请求,根据各实例的流量分配情况分发给对应服务模块

[0005]在一个可选的实施例中,
S2
中,所述服务模块的负载权重值更新包含所有微服务实例负载权重值

[0006]在一个可选的实施例中,
S5
中,流量分配包括流量的比例和服务请求次数

[0007]在一个可选的实施例中,
S1
中,所述服务模块的负载权重值上报的时间间隔为
25

35s。
[0008]在一个可选的实施例中,
S1
中,所述负载权重值的取值为有限阶梯式数值

[0009]本专利技术第二方面公开了一种基于服务发现动态权重的系统,
在微服务体系中包括网关模块和多个服务模块,其中,各所述服务模块新增负载权重值计算,用于动态上报当前服务模块的负载情况;在每个所述服务模块上均设有与之对应的注册中心,所述注册中心实时更新所述服务模块所对应的负载权重值,用于所述服务模块中各微服务实例的流量动态配置;所述网关模块根据其可调度的所有服务模块相对应的所述注册中心,分别设计并引入定时触发器,周期性采集各所述注册中心的负载权重值;所述网关模块对所有注册中心的负载权重值进行流量分配计算;所述网关模块将接收到的服务请求,并根据各实例的流量分配情况分发给对应服务模块

[0010]本专利技术第三方面公开了一种基于服务发现动态权重的设备,包括:至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本专利技术第一方面公开的任一项所述的的基于服务发现动态权重的方法

[0011]本专利技术第四方面公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如本专利技术第一方面公开的任一项所述的基于服务发现动态权重的方法

[0012]与现有技术相比,本专利技术具有以下优点:本专利技术中,服务模块通过注册中心实时向网关模块更新其负载权重值,在定时触发器的辅助下,网关模块周期性采集各注册中心的最新负载权重值,并对其进行流量分配计算,即,计算出各服务模块需要用的流量,从而更新所有服务模块的各微服务实例的流量动态配置,最后将接收到的服务请求根据各实例的流量分配情况分发给对应服务模块,采用本方案扩容后的微服务系统,其吞吐量不会发生明显下降,同时接口耗时亦没有明显增加,较好地达到了及时扩容的效果;而扩容期间,动态权重设置也较之前的设置有较明显的提高,能够为用户带来较佳的体验感

附图说明
[0013]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图

[0014]图1为本专利技术基于服务发现动态权重的方法的流程图;图2为本专利技术基于服务发现动态权重的系统的示意图

具体实施方式
[0015]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚

完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例

基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
实施例,都属于本专利技术保护的范围

[0016]在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位

以特定的方位构造和操作,因此不能理解为对本专利技术的限制

此外,术语“第一”、“第二”、“第三”、“第四”等仅用于描述目的,而不能理解为指示或暗示相对重要性

[0017]在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、
“ꢀ
相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通

对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义

实施例
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于服务发现动态权重的方法,其特征在于,在微服务体系中包括网关模块和多个服务模块,执行以下步骤,
S1
:各服务模块新增负载权重值计算,用于动态上报当前服务模块的负载情况;
S2
:在每个服务模块上均设有与之对应的注册中心,所述注册中心实时更新所述服务模块所对应的负载权重值,用于所述服务模块中各微服务实例的流量动态配置;
S3
:网关模块根据其可调度的所有服务模块相对应的注册中心,分别设计并引入定时触发器,周期性采集各注册中心的负载权重值;
S4
:基于
S3
,网关模块对所有注册中心的负载权重值进行流量分配计算;
S5
:网关模块将接收到的服务请求,根据各实例的流量分配情况分发给对应服务模块
。2.
根据权利要求1所述的一种基于服务发现动态权重的方法,其特征在于,
S2
中,所述服务模块的负载权重值更新包含所有微服务实例负载权重值
。3.
根据权利要求1所述的一种基于服务发现动态权重的方法,其特征在于,
S5
中,流量分配包括流量的比例和服务请求次数
。4.
根据权利要求1所述的一种基于服务发现动态权重的方法,其特征在于,
S1
中,所述服务模块的负载权重值上报的时间间隔为
25
...

【专利技术属性】
技术研发人员:郑乾业丁一黄海亮白剑梁瑛玮张海林鲁和平李长杰陈焕然李乐王浩洪行健冷冬李尚然
申请(专利权)人:易方信息科技股份有限公司
类型:发明
国别省市:

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

1