一种基于Nacos的网关负载均衡方法技术

技术编号:37990116 阅读:14 留言:0更新日期:2023-06-30 10:04
本发明专利技术涉及网关负载技术领域,提供一种基于Nacos的网关负载均衡方法,本发明专利技术的方法包括:业务方将获取主机信息接口的插件挂载至集群服务,启动集群服务;将挂载有获取主机信息接口的插件的集群服务注册至Nacos;API网关定时获取注册至Nacos的集群服务的主机资源信息,将获取的集群服务的主机资源信息进行缓存;数据请求方调用API网关筛选获取资源使用最低、最空闲、性能最高的服务器所部署的服务;采用筛选获取的服务处理数据请求方的请求,将处理后的数据返回至数据请求方。本发明专利技术可以实现各个业务服务所在服务器的资源使用状态读取,提供给API网关请求分发之前进行判断,以达到将请求分发到压力最小、最空闲、性能最好的服务器上,使资源达到最优化使用。使资源达到最优化使用。使资源达到最优化使用。

【技术实现步骤摘要】
一种基于Nacos的网关负载均衡方法


[0001]本专利技术涉及网关负载
,尤其涉及一种基于Nacos的网关负载均衡方法。

技术介绍

[0002]随着微服务及容器化部署的发展,API网关的作用越来越重要,既承担着统一出入口的作用,也承担着统一鉴权的作用,还承担着请求分发、负载均衡的作用。以往服务提供方将自身所提供的服务能力注册到注册中心上如Nacos,API网关则能访问所有的服务提供的能力。外部访问API网关时,网关在根据负载均衡方法如随机策略、轮训策略、加权策略时,无法知晓服务提供方所在服务器的CPU压力、内存使用比例、IO读写压力情况、带宽占用情况以及负载信息等,也就无法将请求转发到空闲最大/压力最小的服务上,无法得到最优方案,甚至有可能将请求转发到压力最大的服务上,从而导致压力更大而服务崩溃,耗时陡增等情况。
[0003]因此,如何提供一种通过知晓各服务资源状况使负载和请求分发更加合理的方法,成为亟待解决的技术问题。

技术实现思路

[0004]有鉴于此,为了克服现有技术的不足,本专利技术旨在提供一种基于Nacos的网关负载均衡方法,用于解决API网关无法知晓服务器资源使用状态以及资源无法最优化使用的问题。
[0005]本专利技术提供一种基于Nacos的网关负载均衡方法,包括:
[0006]步骤S1:业务方将获取主机信息接口的插件挂载至集群服务,启动集群服务;
[0007]步骤S2:将挂载有获取主机信息接口的插件的集群服务注册至Nacos;
[0008]步骤S3:API网关定时获取注册至Nacos的集群服务的主机资源信息,将获取的集群服务的主机资源信息进行缓存;
[0009]步骤S4:数据请求方调用API网关筛选获取资源使用最低、最空闲、性能最高的服务器所部署的服务;
[0010]步骤S5:采用步骤S4筛选获取的服务处理数据请求方的请求,将处理后的数据返回至数据请求方。
[0011]作为本专利技术的优选,步骤S2包括:在启动集群服务后,将获取主机信息接口的插件中的资源实时获取接口注册至Nacos上,所述资源实时获取接口用于查询集群服务所在主机的资源信息。
[0012]作为本专利技术的优选,步骤S3中,API网关定时获取注册至Nacos的集群服务的主机资源信息,包括:API网关挂载负载均衡的插件,所述插件包括一个定时任务,所述定时任务用于以一定的执行频率调用注册在Nacos上的资源实时获取接口,获取对应的集群服务所在主机的资源信息。
[0013]作为本专利技术的优选,步骤S3中,将获取的集群服务的主机资源信息进行缓存,包
括:API网关以服务为维度将获取的各个服务集群所在主机的资源信息缓存至Redis中。
[0014]作为本专利技术的优选,步骤S4,包括:
[0015]步骤S41:数据请求方调用相应的网关API,根据路径获取所述网关API所属的服务;
[0016]步骤S42:API网关根据步骤S41获取服务的名称从Redis中获取对应的主机的资源信息;
[0017]步骤S43:API网关根据获取的主机的资源信息,筛选资源使用最低、最空闲、性能最高的服务器所部署的服务。
[0018]作为本专利技术的优选,步骤S42中,主机的资源信息包括CPU使用率、内存使用率、IO读写率、带宽使用率以及连接数。
[0019]作为本专利技术的优选,步骤S43中,按照CPU使用率、内存使用率、IO读写率、带宽使用率以及连接数依次降低的优先级对服务器所部署的服务进行筛选。
[0020]作为本专利技术的优选,步骤S4包括:当从Redis中未获取到对应的主机的资源信息,按照轮询的方式调用集群服务。
[0021]作为本专利技术的优选,步骤S5包括:API网关将数据请求方的请求转发到步骤S4筛选获取的服务,所述服务收到数据请求方的请求进行处理,将处理处理得到的数据返回至数据请求方。
[0022]最后,本专利技术还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于Nacos的网关负载均衡方法。
[0023]本专利技术基于Nacos的网关负载均衡方法,具有以下有益效果:
[0024]1.可以实现各个业务服务所在服务器的资源使用状态读取,提供给API网关请求分发之前进行判断,以达到将请求分发到压力最小、最空闲、性能最好的服务器上,使资源达到最优化使用。
[0025]2.可以将各个服务提供的服务器资源情况进行汇总,分析出当前的服务节点是否够用,使用需要扩容,提供出一个资源接口供运维实现告警及人工干预进行扩容,亦或是根据提供的分析汇总数据由运维配置进行自动扩容。
附图说明
[0026]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0027]图1为本专利技术示例性第一实施例一种基于Nacos的网关负载均衡方法的流程图。
[0028]图2为本专利技术示例性第一实施例的一种基于Nacos的网关负载均衡方法的技术原理示意图。
[0029]图3为根据本专利技术示例性第三实施例的一种基于Nacos的网关负载均衡方法的流程图。
[0030]图4为根据本专利技术示例性第三实施例的一种基于Nacos的网关负载均衡方法的时序图。
[0031]图5为本专利技术提供的设备的结构示意图。
具体实施方式
[0032]下面结合附图对本专利技术实施例进行详细描述。
[0033]需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0034]需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
[0035]本专利技术的技术原理如下:
[0036]本专利技术提供了一种将Nacos作为注册中心的API网关负载均衡方法,实现各个业务服务所在服务器的资源使用状态读取,提供给API网关请求分发之前进行判断,以达到将请求分发到压力最小、最空闲、性能最好的服务器上,使资源达到最优化使用。还可以将各个服务提供的服务器资源情况进行汇总,分析出当前的服务节点是否够用,使用需要扩容,提供出一个资源接口供运本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Nacos的网关负载均衡方法,其特征在于,所述方法包括:步骤S1:业务方将获取主机信息接口的插件挂载至集群服务,启动集群服务;步骤S2:将挂载有获取主机信息接口的插件的集群服务注册至Nacos;步骤S3:API网关定时获取注册至Nacos的集群服务的主机资源信息,将获取的集群服务的主机资源信息进行缓存;步骤S4:数据请求方调用API网关筛选获取资源使用最低、最空闲、性能最高的服务器所部署的服务;步骤S5:采用步骤S4筛选获取的服务处理数据请求方的请求,将处理后的数据返回至数据请求方。2.根据权利要求1所述的基于Nacos的网关负载均衡方法,其特征在于,步骤S2包括:在启动集群服务后,将获取主机信息接口的插件中的资源实时获取接口注册至Nacos上,所述资源实时获取接口用于查询集群服务所在主机的资源信息。3.根据权利要求1所述的基于Nacos的网关负载均衡方法,其特征在于,步骤S3中,API网关定时获取注册至Nacos的集群服务的主机资源信息,包括:API网关挂载负载均衡的插件,所述插件包括一个定时任务,所述定时任务用于以一定的执行频率调用注册在Nacos上的资源实时获取接口,获取对应的集群服务所在主机的资源信息。4.根据权利要求1所述的基于Nacos的网关负载均衡方法,其特征在于,步骤S3中,将获取的集群服务的主机资源信息进行缓存,包括:API网关以服务为维度将获取的各个服务集群所在主机的资源信息缓存至Redis中。5.根据权利要求1所述的基于Nacos...

【专利技术属性】
技术研发人员:陈于黄宝财
申请(专利权)人:光控特斯联上海信息科技有限公司
类型:发明
国别省市:

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

1