System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于元数据上报的注册中心动态负载均衡算法制造技术_技高网

一种基于元数据上报的注册中心动态负载均衡算法制造技术

技术编号:40947003 阅读:3 留言:0更新日期:2024-04-18 20:20
本发明专利技术属于计算机技术领域,公开了一种基于元数据上报的注册中心动态负载均衡算法,包括如下步骤:服务提供者以预设的时间间隔T向注册中心上报心跳,且在上报心跳时采集系统资源指标信息,作为心跳请求所附带的元数据一同上报;服务提供者对每项系统资源指标的当前变化率进行监听,当机器的即时系统资源指标变化率达到阈值,服务提供者会再触发一次心跳上报,以保证注册中心对该实例当前状态追踪的时效性,本发明专利技术使用服务端而非客户端负载均衡,将负载均衡与具体业务逻辑相解耦,服务消费者只需要专注于应用业务的开发即可,无需负责负载均衡决策。

【技术实现步骤摘要】

本专利技术属于计算机,具体涉及一种基于元数据上报的注册中心动态负载均衡算法


技术介绍

1、随着软件开发技术的迭代升级,后端服务体系架构由最初的单体架构,逐步演进为分布式soa(service-oriented architecture)架构,最终演进为具备云原生特征的微服务体系架构。在微服务体系架构中,不同的功能模块,甚至业务模块均以细粒度被拆分到不同的机器上部署,每个机器上所部署的微服务只具有单一且不可拆分的职能,不同微服务之间通过rpc(远程过程调用)进行相互通信。同时,公共的功能组件(如配置中心、注册中心、日志中心等)被独立出来部署和管理,并与应用业务解耦合。注册中心作为微服务架构中的关键组件之一,负责服务注册与发现、负载均衡和故障转移,在微服务应用的整体运转中扮演极其核心的角色。

2、目前,业界较常用的开源注册中心包括但不限于eureka,zookeeper和nacos。但无论是哪种技术实现,均未注重在注册中心中所发挥的负载均衡作用,其更多的关注点在于服务注册和发现本身的功能全面性、注册中心的可用性、并发能力等。在服务发现中,注册中心往往只负责提供健康的服务地址列表信息,负载均衡步骤被延后到服务消费者端进行,此类客户端负载均衡模式在实际生产中存在以下几点问题:

3、相较于注册中心本身,客户端(服务消费者端)不具有全局视角,缺乏足够的信息来进行合理的负载均衡决策,往往只能实现简单的负载均衡算法;

4、将负载均衡延后到客户端进行,导致了负载均衡和实际应用业务的耦合,违背了微服务架构的设计初衷。

5、nacos注册中心使用了简单的服务端负载均衡策略来避免上述问题,但这种基于用户自设权重的服务端负载均衡策略存在一定的人为主导性,无法准确、动态地对微服务应用流量进行合理调配,从而保障应用运行期间的自适应负载均衡。


技术实现思路

1、本专利技术的目的在于提供一种基于元数据上报的注册中心动态负载均衡算法,用于解决
技术介绍
中提出的技术问题。

2、为了实现上述目的,本专利技术采用了如下技术方案:一种基于元数据上报的注册中心动态负载均衡算法,包括如下步骤:

3、s01:服务提供者以预设的时间间隔t向注册中心上报心跳,且在上报心跳时采集系统资源指标信息,作为心跳请求所附带的元数据一同上报;

4、s02:服务提供者对每项系统资源指标的当前变化率进行监听,当机器的即时系统资源指标变化率达到阈值,服务提供者会再触发一次心跳上报,以保证注册中心对该实例当前状态追踪的时效性;

5、s03:注册中心维护一个数据结构来保存每个注册实例最近一次的心跳元数据,当收到来自实例的心跳信息上报时,立即对当前实例的即时权重进行计算和更新;

6、s04:服务消费者请求获取服务信息时,注册中心根据权重算法,选择其中一个实例信息进行返回,服务消费者直接对该实例地址发起调用即可。

7、优选的,采集的系统资源指标为机器当前的系统资源指标,包括cpu使用率、内存使用率、磁盘io吞吐量以及网络吞吐量信息。

8、优选的,采集的系统资源信息包括cpu内核数、内存总大小、磁盘io读写速度以及网卡带宽信息。

9、优选的,权重的计算公式为:

10、

11、其中,w为权重结果,np,nm,分别为机器cpu内核数,内存大小(gb),磁盘写速率(mb/s),磁盘读速率(mb/s),网卡入向带宽(mb/s),网卡出向带宽(mb/s);pp,pm,分别为当前cpu使用率(%),内存使用率(%),磁盘写吞吐量(mb/s),磁盘读吞吐量(mb/s),网卡入向吞吐量(mb/s),网卡出向吞吐量(mb/s);αp,αm,αd,αn分别为cpu、内存、磁盘、网络的指标影响因子,且αp,αm,αd,αn均大于零。

12、优选的,所述步骤s02中再触发一次心跳上报的时间间隔最为为10ms。

13、优选的,所述步骤s02中变化率的计算公式为:

14、

15、其中,bh为变化率,zi为第i次采集的新值,zi-1为第i-1次采集的新值,t为预设时间间隔。

16、优选的,所述步骤s02中,对每项系统资源指标的变化率监听所使用的工具为prometheus、grafana和nagios中的一种。

17、优选的,所述步骤s04中,实例地址为服务提供者的网络地址,由ip地址和端口号组成。

18、优选的,所述心跳上报是指服务实例定期向注册中心发送心跳消息,以表明该实例仍然处于活动状态。

19、优选的,所述心跳上报通过http通信协议,所述上报的心跳消息包含实例的标识符以及当前的时间戳。

20、综上所述,由于采用了上述技术方案,本专利技术的有益效果是:

21、1.使用服务端而非客户端负载均衡,将负载均衡与具体业务逻辑相解耦,服务消费者只需要专注于应用业务的开发即可,无需负责负载均衡决策;

22、2.注册中心能够实时监控所有服务提供者的当前机器状态,并根据机器状态计算并实时更新实例权重,使得动态负载均衡得以实现,流量调配、故障转移更加精准及时,保障微服务间调用的持续稳定性、高效性;

23、3.负载均衡权重由算法自动更新,无需人工介入调整,降低了注册中心的运维难度;

24、4.面对洪峰流量时,由于服务提供者在当前状态发生快速变化时会及时上报机器的系统资源信息,注册中心对实例权重值的维护具有较好的时效性,从而能够及时分散流量,避免出现流量热点效应。

本文档来自技高网...

【技术保护点】

1.一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,包括如下步骤:

2.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,采集的系统资源指标为机器当前的系统资源指标,包括CPU使用率、内存使用率、磁盘IO吞吐量以及网络吞吐量信息。

3.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,采集的系统资源信息包括CPU内核数、内存总大小、磁盘IO读写速度以及网卡带宽信息。

4.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,权重的计算公式为:

5.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,所述步骤S02中再触发一次心跳上报的时间间隔最为为10ms。

6.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,所述步骤S02中变化率的计算公式为:

7.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,所述步骤S02中,对每项系统资源指标的变化率监听所使用的工具为Prometheus、Grafana和Nagios中的一种。

8.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,所述步骤S04中,实例地址为服务提供者的网络地址,由IP地址和端口号组成。

9.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,所述心跳上报是指服务实例定期向注册中心发送心跳消息,以表明该实例仍然处于活动状态。

10.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,所述心跳上报通过HTTP通信协议,所述上报的心跳消息包含实例的标识符以及当前的时间戳。

...

【技术特征摘要】

1.一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,包括如下步骤:

2.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,采集的系统资源指标为机器当前的系统资源指标,包括cpu使用率、内存使用率、磁盘io吞吐量以及网络吞吐量信息。

3.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,采集的系统资源信息包括cpu内核数、内存总大小、磁盘io读写速度以及网卡带宽信息。

4.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,权重的计算公式为:

5.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡算法,其特征在于,所述步骤s02中再触发一次心跳上报的时间间隔最为为10ms。

6.如权利要求1所述的一种基于元数据上报的注册中心动态负载均衡...

【专利技术属性】
技术研发人员:周朝
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1