CN115242797B - 一种面向微服务架构的客户端负载均衡方法及*** - Google Patents
一种面向微服务架构的客户端负载均衡方法及*** Download PDFInfo
- Publication number
- CN115242797B CN115242797B CN202210692502.XA CN202210692502A CN115242797B CN 115242797 B CN115242797 B CN 115242797B CN 202210692502 A CN202210692502 A CN 202210692502A CN 115242797 B CN115242797 B CN 115242797B
- Authority
- CN
- China
- Prior art keywords
- service
- server
- utilization rate
- load
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- YHXISWVBGDMDLQ-UHFFFAOYSA-N moclobemide Chemical compound C1=CC(Cl)=CC=C1C(=O)NCCN1CCOCC1 YHXISWVBGDMDLQ-UHFFFAOYSA-N 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims description 14
- 238000005311 autocorrelation function Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 238000009499 grossing Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 5
- 238000001744 unit root test Methods 0.000 claims description 5
- 230000006872 improvement Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 230000010365 information processing Effects 0.000 claims description 2
- 238000012549 training Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013485 heteroscedasticity test Methods 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Algebra (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本文发明公开了一种面向微服务架构的客户端负载均衡方法及***。包括:在接收到用户发来的服务请求信息,客户端从注册中心获取集群中部署该服务的实例注册表;从信息收集器模块中获取部署此服务的所有服务器资源利用率的历史信息,利用基于改进的ARIMA模型的服务器资源预测算法来预测对应节点的下一秒资源利用率;服务器根据历史资源利用率和预测的下一秒资源利用率进行动态权重负载方法的计算,得到对应的服务器负载值,将负载值信息返回客户端并对比选择负载值最优的服务器执行请求。本发明的方法和***合理分配用户的请求,提高了集群资源的利用率。
Description
技术领域
本发明涉及信息技术领域,具体而言,涉及一种面向微服务架构的客户端负载均衡方法及***。
背景技术
随着互联网+产业的高速发展,互联网企业目前大都采用微服务架构模式进行开发,但随着服务访问并发量的幂指数增加,服务器主机上的负载压力不断增大,负载均衡成为目前国内外科研工作者和互联网厂商研究工作的重点。服务请求如何在多台服务器间均匀的分配成为目前非常重要的研究领域。
目前负载均衡算法的研究主要分为两部分,静态负载均衡算法和动态负载均衡算法。静态负载均衡算法是根据服务节点的先验信息调度服务节点,分配任务,不考虑节点当前的负载情况,常见的静态负载均衡算法包括轮询算法、加权轮询算法、区域感知轮询算法以及随机算法等。随着时间的推移,静态负载均衡算法容易造成集群服务器负载失衡的情况,导致集群服务器资源利用不充分,集群***效率降低。动态负载均衡算法是根据选定的负载指标计算服务节点的实时负载情况,合理调度服务节点,分配任务,常见的动态负载均衡算法包括最小连接算法、加权轮询算法等。在采用动态负载均衡算法时候,常常由人工经验设置负载均衡的权重值,当面对用户需求变化时,无法根据需求实时调整权重的分配策略,影响其响应时间,存在一定的滞后性。
另外,在微服务架构的***应用中,服务端的负载均衡由专门的实例服务器作为负载均衡器,进行请求的转发。当面对用户大量的请求时,集中式的计算导致的问题只能进行负载均衡器的扩容,来增加其吞吐量。同样的,这种服务端负载均衡只能够配置一种负载均衡策略,无法根据每台服务器负载值来进行请求的转发,除非更改源代码,这些显然耗费大量的物力和财力。
因此,如何根据集群中服务器资源值来动态的进行服务请求均衡的转发,并将最终结果发送到客户端,使整个***更好的处理高并发成为目前需要解决的问题。
发明内容
本发明的目的是提供一种面向微服务架构的客户端负载均衡方法及***,减轻了服务端服务器的压力,此外服务注册表采用的是实时动态的更新,可以确保获取的服务注册实例的有效性。
具体包括:
一种面向微服务架构的客户端负载均衡方法,所述方法包括:
S1:获取用户的服务请求信息,客户端于注册中心获取集群中部署该服务的实例注册表;
S2:于信息收集器中获取部署此服务的所有节点服务器的资源利用率的历史信息,利用ARIMA模型预测对应节点服务器的下一秒资源利用率;
S3:节点服务器根据历史资源利用率和预测的下一秒资源利用率,进行动态权重负载方法的计算,得到对应的节点服务器负载值,节点服务器负载值返回客户端并对比,选择节点服务器负载值最小的节点服务器执行请求。
可选的,所述的利用ARIMA模型预测对应节点的下一秒资源利用率包括:
(1)将处理之后的数据作为输入的数据序列,利用单位根检验法则判断数据是否平稳,若序列不平稳,对序列进行差分处理,直至满足单位根检验,确定差分的阶数;
(2)根据样本自相关函数ACF和偏自相关函数PACF的拖尾性和结尾性来确定模型最优值,并根据样本数据输出对应的预测值;
(3)对节点服务器的CPU利用率和内存利用率的历史资源信息值和预测值数据由归一化可转换成实际数据。
可选的,所述的S2具体包括:
将一段时间内的服务器的资源利用率作为输入量,对ARIMA模型进行建模,建模过程如下:
S2.1判断样本序列是否是平稳序列,若非平稳序列,则对样本序列采用差分法,直至序列平稳,同时确定差分阶数d,得到差分后的时间序列模型;
S2.2计算样本序列的自相关函数和偏自相关函数,利用赤池信息准则AIC计算MA模型的q值和AR模型的p值,AIC标准函数为:
AIC=n logσ2+(p+q+1)log n (1);
其中,n为样本数,σ2为拟合残差平方和,p为自回归的阶次,q为移动平滑的阶次;
S2.3利用最小二乘法估计线性预测模型中参数的值,ARIMA模型为:
其中,为自回归系数;p为自回归的阶次;θi为移动平滑系数;q为移动平滑的阶次;xt表示以负载数据作为时间序列时t时刻的负载值;εi为零均值白噪声序列;
则残差项为
其中zt是数据t时刻负载数据真实负载值,是预测对象观测值;
定义wi为滞后i阶的数据的权重,用残差的平方来表达,即
构建加权矩阵;
则即为加权最小二乘参数估计值;
其中,
xi为时间序列;Y为预测时间t前真实值组成的(n-p)×1矩阵。
可选的,在接收到用户发送的服务请求信息之前,所述方法还包括:
初始化注册中心,服务提供者和服务调用者定时向各个服务注册实例发送心跳检测机制,对于更改或停用的服务实例在注册表中进行更新或移除;初始化服务器,每台服务器中设定单独的线程来进行服务器资源利用率的收集,以秒为单位,并将其存入对应的信息收集器中;初始化客户端负载均衡执行器和缓存。
可选的,在接收到用户发送的服务请求信息之后,判断该请求的服务是否是集群部署,包括:
获取注册中心的注册表,根据用户请求的服务信息查找服务实例注册表,并根据服务实例注册表判断是否是集群服务器部署此服务;
若未存在集群服务器部署此服务,则通过服务实例注册表中筛选出对应的节点服务器处理用户发送的请求;
若存在集群服务器部署此服务,根据服务注册实例表获取部署此服务的所有节点服务器,同时向这些服务器发送收集服务器负载值的请求,对应的节点服务器从信息收集器线程中获取资源利用率,将归一化后的数据作为基于ARIMA模型预测的输入值,这些服务器资源包括:服务器每秒的CPU利用率和内存利用率。
可选的,所述对应节点服务器获取到自身的历史资源利用率信息,包括:
(1)每台节点服务器同时开始各自的资源信息处理,获取当前服务器CPU和内存利用率一段时间的值,若CPU利用率或内存利用率在某一秒内空值,用前1s和后1s的均值将其填充;
(2)若CPU利用率和内存利用率数据无误,节点服务器将各自的CPU利用率和内存利用率样本序列进行归一化处理,将归一化后的数据输入到基于改进的ARIMA模型中进行模型训练,得到最优的ARIMA模型并对下一秒的CPU利用率和内存利用率做出预测。
可选的,节点服务器进行动态权重负载方法的计算,包括:
(1)每个节点服务器计算出当前CPU利用率的变化量和内存利用率的变化量;
(2)根据CPU利用率的变化量和内存利用率的变化量来得出CPU和内存所占用的权重比;
(3)最后根据当前CPU利用率和内存利用率的值及计算出的CPU和内存所占权重来计算节点服务器的负载值。
可选的,节点服务器与客户端之间通过HTTP服务方法来实现通信;在节点服务器计算出负载值之后,向客户端发送携带节点服务器负载值和服务器相关信息的请求,服务器相关信息包括服务器应用端口号、服务器IP地址及服务名信息。
一种实施本发明任一所述的面向微服务架构的客户端负载均衡方法的***,所述微服务架构的客户端负载均衡***包括:
客户端:用于负责用户发送服务请求信息的获取,向集群服务器发送和接收信息,以及负载值的对比;
服务端:用于接受用户信息请求,负责接收客户端发送信息的处理,对服务器资源利用率的记录以及对动态权重负载方法计算。
本发明的有益效果是:
本发明客户端在接收到用户发送的服务请求之后,服务端与客户端开始执行各自的流程。客户端从注册中心获取部署该请求服务的实例注册表并将注册表缓存到本地,减轻了服务端服务器的压力,此外服务注册表采用的是实时动态的更新,可以确保获取的服务注册实例的有效性。
本发明将获取各个服务节点的资源值,利用基于改进的ARIMA模型预测下一秒的利用率的值和服务器负载值的权重计算分布在各个节点服务器上进行处理,避免了以往在一台节点服务器上集中式的计算,减轻了节点服务器的压力。进一步的是,本发明根据节点资源信息与ARIMA算法模型预测值,利用动态服务权重方法计算得到对应服务器当前节点的负载值,能够实时动态的监测出集群中节点的负载信息。进一步的是,各个节点在负载值计算完之后,将本节点负载值信息和节点的服务器信息发送到客户端(消费者)上,客户端根据发送来的负载值进行选择最优的服务器选择,来执行用户信息请求的处理,提高集群资源的利用率。
附图说明
为了更加清楚地说明本发明实施例的技术方案,下面将对实施例中所需使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了根据本发明所述负载均衡方法的一种实施方式的流程图;
图2示出了本发明实施例提供的另一种面向微服务架构的客户端负载均衡方法流程图;
图3示出了本发明实施例提供的面向微服务架构的负载均衡***的结构示意图;图中:1、客户端;2服务端;
图4示出了本发明实施例提供的一种面向微服务架构的客户端负载均衡***的原理图;
图5为不同算法的吞吐量对比图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面结合附图和具体实施方式对本发明的具体实施方式做进一步详细描述。以下实施或者附图用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明公开的面向微服务架构的客户端负载均衡方法包括以下步骤:
S101:接受到用户发来的服务请求信息,从注册中心获取集群中部署该服务的实例注册表。
注册中心可以是现有互联网厂商所提供的注册中心,也可以是用户自己利用开源软件自定义的注册中心,只要是能够实现本实施例的目的即可。此外,每台服务器与注册中心保持通信联系,通常用心跳检测机制来保证服务实例的正常运行。进一步,从注册中心获取的注册实例表可以用各种中间件进行客户端的缓存,只要是能够实现本实施例的目的即可。
S102:从信息收集器中获取部署此服务的所有服务器资源利用率的历史信息,利用基于改进的ARIMA模型的服务器资源预测算法来预测对应节点的下一秒资源利用率。
根据注册表中的服务实例来进行负载值预测请求的发送,对应节点收到请求之后,将信息收集器中的历史资源值作为输入样本,输入到基于改进的ARIMA模型中,得到节点服务器下一秒的资源利用率。这里发送的请求可以由用户自己设置无论是Restful风格的请求还是RPC风格的请求,只要是能够实现本实施例的目的即可。
S103:服务器根据历史资源利用率和预测的下一秒的资源利用率,进行动态权重负载方法的计算,得到对应的服务器负载值,将负载值信息返回客户端并对比选择负载值最优的服务器执行请求。
服务权重计算模块被调用之后,将历史资源值和预测资源值进行整合。通过计算得到CPU和内存的权重值,利用基于动态权重的负载均衡方法的计算得到服务器对应的负载值。并将用户请求转发到负载值最优的服务器。本实例通过动态的权重得到不同时刻的负载值,能够时刻反应服务器真实的状况,这种动态权重的计算方式能更好的分配负载及工作任务,使集群服务器资源达到最优。
图2为本发明实施所提供公开的面向微服务架构的客户端负载均衡方法流程图,包括:
S201:初始化注册中心、Redis缓存、客户端负载均衡执行器和信息收集模块。
S202:接收到用户发送来的请求信息,筛选出所需要调用的微服务,从注册中心获取集群中部署该服务的实例注册表。
S203:判断是否是集群部署此服务实例
根据服务注册实例表判断是否是集群部署此服务,若是集群部署此服务,则执行下一步骤。若不是集群部署此服务,通过客户端负载执行器将请求转发到对应的服务器上直接执行该请求。
S204:从服务实例注册表中的对应的节点服务器获取信息收集模块中的历史资源,并对数据进行归一化处理。
在服务实例注册表中的服务器分别对本机的历史资源信息进行收集整合,也就是从信息收集模块中获取,对获取到的数据利用z-score将数据标准化。
S205:各个节点服务器将信息收集器中历史资源值作为输入量输到ARIMA模型中,预测节点服务器下一秒的各个资源的利用率。
本步骤具体实施内容为将一段时间内的CPU利用率和内存利用率分别放到不同的序列当中作为输入量,对ARIMA模型进行建模,建模过程如下:
(1)根据ADF单位根检验判断样本序列是否是平稳序列,若非平稳序列,则对样本序列采用差分法,直至序列平稳,同时确定差分阶数d,得到差分后的时间序列模型。
(2)计算样本序列的自相关函数和偏自相关函数,利用赤池信息准则AIC计算MA(滑动平均)模型的q值和AR(自回归)模型的p值。AIC标准函数为:
AIC=n logσ2+(p+q+1)log n (1);
其中,n为样本数,σ2为拟合残差平方和,p为自回归的阶次,q为移动平滑的阶次。
(3)估计线性预测模型中参数的值.常用的方法是最小二乘法。在ARIMA模型中记
其中,为自回归系数;p为自回归的阶次;θi为移动平滑系数;q为移动平滑的阶次;xt表示以负载数据作为时间序列时t时刻的负载值;εi为零均值白噪声序列。则残差项为
其中zt是数据t时刻负载数据真实负载值,是预测对象观测值。
本发明选取加权矩阵的方法来优化最小二乘法的参数估计,以此消除异方差性,模型拟合效果更好。定义wi为滞后i阶的数据的权重(几次差分就滞后几阶),残差更大的项占有的权值应该更低,这样能使误差更小。为了消除正负号带来的影响,用残差的平方来表达,即
构建加权矩阵
则即为加权最小二乘参数估计值
其中,
xi为时间序列;Y为预测时间t前真实值组成的(n-p)×1矩阵,n为样本数,p为自回归阶数。为加权最小二乘参数估计值。
(4)根据模型参数得到ARIMA模型,同时检验模型的显著性即残差序列为白噪声。若拟合模型未通过检验,重新选择模型再拟合。
(5)对CPU利用率和内存利用率下一秒的值做出预测。
S206:根据历史资源值和预测值,利用基于动态权重的负载计算方法来计算每台服务器的负载值。过程包括:利用当前节点的资源利用率减去预测出的资源利用率的绝对值得到CPU利用率的变化量和内存利用率的变化量,然后计算出CPU和内存对应的权重,最后根据权重值和当前资源值得出节点服务器的负载值。
S207:比较每台服务器的负载值,选出最小的负载值对应的服务器
S208:执行请求。
如图3所示,本发明提供的微服务架构的负载均衡***包括:
客户端200,用于负责用户发送服务请求信息的获取,向集群服务器发送和接收信息,以及负载值的对比。
服务端201,用于接受用户信息请求,负责接收客户端发送信息的处理,对服务器资源利用率的记录以及对动态权重方法的计算等功能。
下面结合附图对本发明的技术方案作进一步的描述。如图4所示,本发明主要应用与客户端与服务端分离的微服务架构的信息技术处理领域;具体包括:
客户端模块负责用户请求的验证过滤等功能。
服务端模块负责为注册中心提供服务实例,客户端发送负载值请求的处理等功能。具体可通过Spring Cloud框架集合构建***服务端主体架构及使用Spring Boot框架为业务模型基底完成服务端相关实现开发。
客户端与服务端之间的信息传递可使用RestTemplate来实现。
本发明具体实现过程为:
步骤1:***初始化,初始化注册中心模块、Redis缓存模块和信息收集模块。
步骤2:用户发送请求,获取从客户端发送来的应用请求并对其进行过滤,例如错误请求直接过滤掉。
步骤3:对用户发送来的请求进行处理,得到需要访问的微服务(消费者),若Redis缓存中具有与之对应的服务实例注册表,则直接执行下一步。若Redis缓存中没有,则从注册中心拉取与之对应的微服务实例注册表,实例注册表包括:服务名、端口号、IP地址等信息。并将该服务与之对应的注册表信息存入Redis缓存中。进一步,Redis中的服务实例注册表应实时动态更新。
步骤4:客户端负载均衡执行器获取服务实例注册表,判断该服务是否是集群部署,若不是集群部署,则负载均衡执行器直接根据服务实例注册表中的服务器信息直接转发用户请求进行处理;若是集群部署,则根据服务实例注册表向集群中发送负载值请求信息。
步骤5:微服务集群各个节点接收到客户端发送来的负载值请求信息之后,从信息收集器模块进程中提取相应的服务器资源历史记录,包括CPU利用率和内存利用率,并通过z-score将数据标准化。
步骤6:将获取到标准的样本序列作为输入量,输入到ARIMA模型预测模块,分别得到下一秒的CPU利用率预测值和内存利用率的预测值,将服务器资源历史值和预测值进行合并处理,作为下一步骤的输入量。
步骤7:权重计算模块收到服务器资源值和预测值之后,计算CPU和内存分别占用的权重,再进行该服务器负载值的计算,各个服务节点得到对应的负载值,并向客户端负载均衡执行器发送信息。
步骤8:客户端负载均衡执行器接受到微服务集群中发送来的负载值信息和节点服务器信息,进一步,进行各个负载值的比较,选取出负载值最优的节点服务器,将用户请求进行转发到该节点服务器的服务中。
步骤9:集群服务器对应的节点接收到转发的请求之后,对用户请求进行处理并将处理结果直接返回到客户端中。
该负载均衡***能够动态实时的反应集群中各个服务节点的负载值,能将用户请求合理的分配到对应的服务器上,提升了集群的利用率的同时也减少了客户端的等待时间。
本文提出的面向微服务架构的客户端负载均衡算法与轮询算法以及基于贪心算法的负载均衡算法进行对比。将各种算法实现之后在同一实验环境下进行实验,对比各个算法或方法的吞吐量,具体实验环境见表1:
表1 实验环境
评估指标:
吞吐量是***在单位时间内能够处理的请求数量,通常代表***的处理速度,反映***的整体性能,单位时间内吞吐量越高,说明***性能越好,单位为请求数量/秒。
实验结果对比:
本文提出的面向微服务架构的客户端负载均衡算法与轮询算法以及基于贪心算法的负载均衡算法进行对比。将各种算法实现之后在同一实验环境下进行实验,对比各个算法或方法的吞吐量,并进行效果分析,具体结果见图5,结果分析见表2。
表2
从以上三个算法的实验结果看,前期并发请求数较少的时候轮询算法的吞吐量最大,而基于贪心算法的负载均衡算法和本文提出的客户端负载均衡方法需要收集、处理相关机器资源,所以吞吐量较小些。
在并发请求数增加到500以上的时候,基于贪心算法的负载均衡算法和本文提出的面向微服务架构的客户端负载均衡方法就有很大优点。在请求数量较大时候,计算及预测服务器负载时间相对于轮询算法的执行时间来说很短,从而做到很好的负载均衡。另外,本文提出的面向微服务架构的客户端负载均衡方法能够实时的反映服务器负载值的变化以及节点预测的负载更精确,做到更优的决策效果,在请求数很大的情况下,本文提出的负载均衡方法明显高于其它算法的吞吐量。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (7)
1.一种面向微服务架构的客户端负载均衡方法,其特征在于,所述方法包括:
S1:获取用户的服务请求信息,客户端于注册中心获取集群中部署该服务的实例注册表;
S2:于信息收集器中获取部署此服务的所有节点服务器的资源利用率的历史信息,利用ARIMA模型预测对应节点服务器的下一秒资源利用率;
S3:节点服务器根据历史资源利用率和预测的下一秒资源利用率,进行动态权重负载方法的计算,得到对应的节点服务器负载值,节点服务器负载值返回客户端进行对比,选择节点服务器负载值最小的节点服务器执行请求;
所述的S2具体包括:
将一段时间内的服务器的资源利用率作为输入量,对ARIMA模型进行建模,建模过程如下:
S2.1判断样本序列是否是平稳序列,若非平稳序列,则对样本序列采用差分法,直至序列平稳,同时确定差分阶数d,得到差分后的时间序列模型;
S2.2计算样本序列的自相关函数和偏自相关函数,利用赤池信息准则AIC计算MA模型的q值和AR模型的p值,AIC标准函数为:
ATC=n logσ2+(p+q+1)log n (1);
其中,n为样本数,σ2为拟合残差平方和,p为自回归的阶次,q为移动平滑的阶次;
S2.3利用最小二乘法估计线性预测模型中参数的值,ARIMA模型为:
其中,为自回归系数;p为自回归的阶次;θi为移动平滑系数;q为移动平滑的阶次;xt表示以负载数据作为时间序列时t时刻的负载值;εi为零均值白噪声序列;
则残差项为
其中zt是数据t时刻负载数据真实负载值,是预测对象观测值;
定义wi为滞后i阶的数据的权重,用残差的平方来表达,即
构建加权矩阵;
则即为加权最小二乘参数估计值;
其中,
xi为时间序列;Y为预测时间t前真实值组成的(n-p)×1矩阵;
其中,节点服务器进行动态权重负载方法的计算,包括:
(1)每个节点服务器计算出当前CPU利用率的变化量和内存利用率的变化量;
(2)根据CPU利用率的变化量和内存利用率的变化量来得出CPU和内存所占用的权重比;
(3)最后根据当前CPU利用率和内存利用率的值及计算出的CPU和内存所占权重来计算节点服务器的负载值。
2.根据权利要求1所述的面向微服务架构的客户端负载均衡方法,其特征在于,所述的利用ARIMA模型预测对应节点的下一秒资源利用率包括:
(1)将处理之后的数据作为输入的数据序列,利用单位根检验法则判断数据是否平稳,若序列不平稳,对序列进行差分处理,直至满足单位根检验,确定差分的阶数;
(2)根据样本自相关函数ACF和偏自相关函数PACF的拖尾性和结尾性来确定模型最优值,并根据样本数据输出对应的预测值;
(3)对节点服务器的CPU利用率和内存利用率的历史资源信息值和预测值数据由归一化可转换成实际数据。
3.根据权利要求1或2所述的面向微服务架构的客户端负载均衡方法,其特征在于,在接收到用户发送的服务请求信息之前,所述方法还包括:
初始化注册中心,服务提供者和服务调用者定时向各个服务注册实例发送心跳检测机制,对于更改或停用的服务实例在注册表中进行更新或移除;初始化服务器,每台服务器中设定单独的线程来进行服务器资源利用率的收集,以秒为单位,并将其存入对应的信息收集器中;初始化客户端负载均衡执行器和缓存。
4.根据权利要求1或2所述的面向微服务架构的客户端负载均衡方法,其特征在于,在接收到用户发送的服务请求信息之后,判断该请求的服务是否是集群部署,包括:
获取注册中心的注册表,根据用户请求的服务信息查找服务实例注册表,并根据服务实例注册表判断是否是集群服务器部署此服务;
若未存在集群服务器部署此服务,则通过服务实例注册表中筛选出对应的节点服务器处理用户发送的请求;
若存在集群服务器部署此服务,根据服务注册实例表获取部署此服务的所有节点服务器,同时向这些服务器发送收集服务器负载值的请求,对应的节点服务器从信息收集器线程中获取资源利用率,将归一化后的数据作为基于ARIMA模型预测的输入值,这些服务器资源包括:服务器每秒的CPU利用率和内存利用率。
5.根据权利要求1或2所述的面向微服务架构的客户端负载均衡方法,其特征在于,所述对应节点服务器获取到自身的历史资源利用率信息,包括:
(1)每台节点服务器同时开始各自的资源信息处理,获取当前服务器CPU和内存利用率一段时间的值,若CPU利用率或内存利用率在某一秒内空值,用前1s和后1s的均值将其填充;
(2)若CPU利用率和内存利用率数据无误,节点服务器将各自的CPU利用率和内存利用率样本序列进行归一化处理,将归一化后的数据输入到基于改进的ARIMA模型中进行模型训练,得到最优的ARIMA模型并对下一秒的CPU利用率和内存利用率做出预测。
6.根据权利要求1或2所述的面向微服务架构的客户端负载均衡方法,其特征在于,节点服务器与客户端之间通过HTTP服务方法来实现通信;在节点服务器计算出负载值之后,向客户端发送携带节点服务器负载值和服务器相关信息的请求,服务器相关信息包括服务器应用端口号、服务器IP地址及服务名信息。
7.一种实施权利要求1-6任意一项所述的面向微服务架构的客户端负载均衡方法的***,其特征在于,所述微服务架构的客户端负载均衡***包括:
客户端:用于负责用户发送服务请求信息的获取,向集群服务器发送和接收信息,以及负载值的对比;
服务端:用于接受用户信息请求,负责接收客户端发送信息的处理,对服务器资源利用率的记录以及对动态权重负载方法计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210692502.XA CN115242797B (zh) | 2022-06-17 | 2022-06-17 | 一种面向微服务架构的客户端负载均衡方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210692502.XA CN115242797B (zh) | 2022-06-17 | 2022-06-17 | 一种面向微服务架构的客户端负载均衡方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115242797A CN115242797A (zh) | 2022-10-25 |
CN115242797B true CN115242797B (zh) | 2023-10-27 |
Family
ID=83669001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210692502.XA Active CN115242797B (zh) | 2022-06-17 | 2022-06-17 | 一种面向微服务架构的客户端负载均衡方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115242797B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302509A (zh) * | 2023-02-21 | 2023-06-23 | 中船(浙江)海洋科技有限公司 | 一种基于CNN-Transformer的云服务器动态负载优化方法及装置 |
CN118051347A (zh) * | 2024-04-16 | 2024-05-17 | 杭州冰特科技股份有限公司 | 一种服务器集群管理方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109787855A (zh) * | 2018-12-17 | 2019-05-21 | 深圳先进技术研究院 | 基于马尔可夫链和时间序列模型的服务器负载预测方法及*** |
CN110149396A (zh) * | 2019-05-20 | 2019-08-20 | 华南理工大学 | 一种基于微服务架构的物联网平台构建方法 |
CN110704542A (zh) * | 2019-10-15 | 2020-01-17 | 南京莱斯网信技术研究院有限公司 | 一种基于节点负载的数据动态分区*** |
CN111488200A (zh) * | 2020-06-28 | 2020-08-04 | 四川新网银行股份有限公司 | 一种基于动态分析模型的虚拟机资源使用率分析方法 |
CN113110933A (zh) * | 2021-03-11 | 2021-07-13 | 浙江工业大学 | 一种具有Nginx负载均衡技术的*** |
CN113377544A (zh) * | 2021-07-06 | 2021-09-10 | 哈尔滨理工大学 | 一种基于负荷数据动态更新率的web集群负载均衡方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102232282B (zh) * | 2010-10-29 | 2014-03-26 | 华为技术有限公司 | 一种实现数据中心资源负载均衡的方法及装置 |
TWI725744B (zh) * | 2020-02-19 | 2021-04-21 | 先智雲端數據股份有限公司 | 透過多層次相關性建立系統資源預測及資源管理模型的方法 |
-
2022
- 2022-06-17 CN CN202210692502.XA patent/CN115242797B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109787855A (zh) * | 2018-12-17 | 2019-05-21 | 深圳先进技术研究院 | 基于马尔可夫链和时间序列模型的服务器负载预测方法及*** |
CN110149396A (zh) * | 2019-05-20 | 2019-08-20 | 华南理工大学 | 一种基于微服务架构的物联网平台构建方法 |
CN110704542A (zh) * | 2019-10-15 | 2020-01-17 | 南京莱斯网信技术研究院有限公司 | 一种基于节点负载的数据动态分区*** |
CN111488200A (zh) * | 2020-06-28 | 2020-08-04 | 四川新网银行股份有限公司 | 一种基于动态分析模型的虚拟机资源使用率分析方法 |
CN113110933A (zh) * | 2021-03-11 | 2021-07-13 | 浙江工业大学 | 一种具有Nginx负载均衡技术的*** |
CN113377544A (zh) * | 2021-07-06 | 2021-09-10 | 哈尔滨理工大学 | 一种基于负荷数据动态更新率的web集群负载均衡方法 |
Non-Patent Citations (2)
Title |
---|
Rodrigo N. Calheiros.Workload Prediction Using ARIMA Model and Its Impact on Cloud Applications’ QoS.《 IEEE Transactions on Cloud Computing》.2014,全文. * |
李慧斌 ; 何利力 ; .基于预测阈值的动态权值负载均衡算法.软件导刊.2020,(第06期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115242797A (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115242797B (zh) | 一种面向微服务架构的客户端负载均衡方法及*** | |
CN109918198B (zh) | 一种基于用户特征预测的仿真云平台负载调度***及方法 | |
CN109714400B (zh) | 一种面向容器集群的能耗优化资源调度***及其方法 | |
CN109120715A (zh) | 一种云环境下动态负载均衡方法 | |
Abd Elaziz et al. | IoT workflow scheduling using intelligent arithmetic optimization algorithm in fog computing | |
Ou et al. | An adaptive multi-constraint partitioning algorithm for offloading in pervasive systems | |
US20040243915A1 (en) | Autonomic failover of grid-based services | |
CN103516807A (zh) | 一种云计算平台服务器负载均衡***及方法 | |
CN111930511A (zh) | 一种基于机器学习的标识解析节点负载均衡装置 | |
CN112019620B (zh) | 基于Nginx动态加权的Web集群负载均衡方法及*** | |
US9501326B2 (en) | Processing control system, processing control method, and processing control program | |
CN111752678A (zh) | 面向边缘计算中分布式协同学习的低功耗容器放置方法 | |
CN112866132B (zh) | 面向海量标识的动态负载均衡器及方法 | |
CN113778683B (zh) | 一种基于神经网络的Handle标识体系解析负载均衡方法 | |
CN109783235A (zh) | 一种基于最大熵原理的负载均衡调度方法 | |
CN115914392A (zh) | 算力网络资源调度方法及*** | |
CN114666335A (zh) | 一种基于dds的分布式***负载均衡装置 | |
Pan et al. | Sustainable serverless computing with cold-start optimization and automatic workflow resource scheduling | |
CN112130927B (zh) | 一种可靠性增强的移动边缘计算任务卸载方法 | |
CN110471761A (zh) | 服务器的控制方法、用户设备、存储介质及装置 | |
Garg et al. | Optimal virtual machine scheduling in virtualized cloud environment using VIKOR method | |
Mehta et al. | A modified delay strategy for dynamic load balancing in cluster and grid environment | |
CN116755872A (zh) | 基于topsis的容器化流媒体服务动态加载***及方法 | |
CN116893900A (zh) | 集群计算压力负载均衡方法、***、设备及ic设计平台 | |
CN106210120B (zh) | 一种服务器的推荐方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |