基于服务端控制的动态负载均衡方法技术

技术编号:27776128 阅读:16 留言:0更新日期:2021-03-23 13:15
本发明专利技术提供了一种基于服务端控制的动态负载均衡方法,包括以下步骤:客户端声明需求的服务类型,向负载均衡服务器申请获取对应该服务的连接地址;负载均衡服务器接收客户端的请求后,执行一次权重计算;负载均衡服务器根据服务列表顺序执行权重计算,计算完成后,根据权重值执行排序,将排序后的结果返回给客户端;客户端收到服务列表后,选择权重值最大的服务执行连接;以及当客户端检测到连接的应用服务中断,无法提供服务时,根据服务列表尝试重新连接到权重值为次大的服务,其中当所有服务都不能够连接时,客户端重新向负载均衡服务器获取一份最新的服务列表。

【技术实现步骤摘要】
基于服务端控制的动态负载均衡方法
本专利技术涉及计算机领域,尤其涉及一种基于服务端控制的动态负载均衡方法。
技术介绍
计算机服务中,负载均衡技术是平台系统架构高可用保证的关键一步。其负载将多个相同服务的入口,通过统一的入口进行访问,并提供一定策略化的负载。常见架构如图1所示。用户请求经过Internet的DNS系统解析,最终访问到一个公网IP地址上,其服务端口一般是负载均衡器。负载均衡器将用户请求根据不同策略,分发到不同的业务服务上。常见的负载均衡策略有轮循均衡(RoundRobin),权重轮循均衡(WeightedRoundRobin),随机均衡(Random),权重随机均衡(WeightedRandom),响应速度均衡(ResponseTime),最少连接数均衡(LeastConnection)等。现在的技术方案的负载均衡策略不能很好的结合服务端的真实业务情况。举例来说:例1:一个集群下的某个服务正则进行高CPU消耗的运算业务,此时期望减少或停止负载均衡器过来的请求。由于应用服务是正常的,计划内的工作,端口也有响应,此时服务完全正常,但是有高消耗。针对此种场景,传统的负载均衡无法感知这个情况,仍然会按照原先的策略,将互联网请求分配到这台高压力服务器上。产生的后果,轻则分配到这台服务的请求响应慢,重则分配到这台服务的请求响应失败。极端情况下可能导致这台服务因为高压力而服务崩溃。例2:一些业务场景期望按照一些规则,能更为主动的进行负载均衡的访问分配。比如负载均衡后的服务是按照不同机房,不同地理位置部署的。业务方期望用户可以就近访问服务。例如服务A部署在上海的IDC机房,业务方期望所有上海本地用户都使用上海机房的服务进行业务操作,保障更好的用户体验。此时负载均衡器需要对请求的IP进行地址分析,筛选出属于上海的IP地址,然后分配到上海的机房进行后续业务流程。可以看出以上两种情况,传统的负载均衡器都不能进行对应。传统负载均衡器无法感知服务端真实状况。
技术实现思路
本专利技术的目的之一在于提供一种基于服务端控制的动态负载均衡方法,能够在服务端对不同客户端的连接进行控制,尤其适合手机客户端或多机房环境微服务客户端。本专利技术的另一目的在于提供一种基于服务端控制的动态负载均衡方法,根据权重算法,优化客户端连接,提升连接效率。本专利技术的另一目的在于提供一种基于服务端控制的动态负载均衡方法,具有很高的扩展性,可以根据实际需求需要调整权重算法设计,达成不同的效果。本专利技术的另一目的在于提供一种基于服务端控制的动态负载均衡方法,能够通过开发对应的网页服务,进行在线的调整算法的权重参数,实现不重启服务情况下,对客户端连接的分流进行控制。本专利技术的另一目的在于提供一种基于服务端控制的动态负载均衡方法,服务端设置有客户端的状态数据和负载数据,能够进行服务状态监控,提供报警的服务。本专利技术的另一目的在于提供一种基于服务端控制的动态负载均衡方法,在数据统计方面能够在服务端记录客户端的请求记录和返回结果记录,进行数据汇总统计,分析客户端的连接倾向。为了实现上述至少一个专利技术目的,本专利技术提供了一种基于服务端控制的动态负载均衡方法,包括以下步骤:客户端声明需求的服务类型,向负载均衡服务器申请获取对应该服务的连接地址;负载均衡服务器接收客户端的请求后,执行一次权重计算;负载均衡服务器根据服务列表顺序执行权重计算,计算完成后,根据权重值执行排序,将排序后的结果返回给客户端;客户端收到服务列表后,选择权重值最大的服务执行连接;以及当客户端检测到连接的应用服务中断,无法提供服务时,根据服务列表尝试重新连接到权重值为次大的服务,其中当所有服务都不能够连接时,客户端重新向负载均衡服务器获取一份最新的服务列表。在一些实施例中,其中所述基于服务端控制的动态负载均衡方法还包括步骤:客户端被传入规划的参数有客户端IP地址、客户端所属服务类型、用户地址业务数据、用户所属地区业务数据以及组织架构业务数据。在一些实施例中,其中所述基于服务端控制的动态负载均衡方法还包括步骤:根据服务状态、服务负载率、网络流量以及客户端IP地址与应用服务是否就近的干预因子执行权重值的计算。在一些实施例中,其中所述基于服务端控制的动态负载均衡方法还包括步骤:对每个服务的权重值按照以下公式执行计算处理:每个服务的权重值=服务状态×{(1-服务负载率)×服务压力+(网络流量上限-当前网络流量)×网络流量+IP地址是否就近的干预因子×客户端IP与服务端是否就近值+服务端干预权重}。在一些实施例中,其中所述基于服务端控制的动态负载均衡方法还包括步骤:客户端对返回的服务列表执行附加的权重计算,对返回的IP地址发起连接测试,获取响应时间,并对响应时间做权重化,加入到服务端返回的权重值上,再选择权重值最大的服务执行连接。在一些实施例中,其中服务端控制动态负载均衡服务管理器的服务列表是单个主机节点的服务列表。在一些实施例中,其中服务端控制动态负载均衡服务管理器的服务列表是客户端通过公网DNS服务连接的所有机房对外可访问的服务列表。在一些实施例中,其中所述基于服务端控制的动态负载均衡方法包括以下步骤:客户端连接采用公网DNS服务域名解析服务,将用户第一个获取服务地址的请求转到其中的一个机房,此请求经过机房的防火墙,由负载均衡服务器负载到服务端控制动态负载均衡服务器上,其中服务端控制动态负载均衡服务器根据客户端参数,执行权重计算后,返回对应该服务的应用的外部访问服务列表;客户端获取从服务端返回的排序后的服务列表后,连接相应机房服务的对外访问地址;设置Agent服务节点,对机房内所有服务执行代理收集,并对收集的应用状态数据执行数据汇总,并定期推送到其中一个服务端控制动态负载均衡服务器上;以及对所有的服务端控制动态负载均衡服务器执行一致化同步,服务端控制动态负载均衡服务器本身被设置为无中心化设计,服务端控制动态负载均衡服务器采用无中心化Gossip协议执行数据同步。在一些实施例中,其中Gossip协议执行过程包括以下步骤:种子节点周期性地散播消息;被感染节点随机选择多个邻接节点散播消息;节点只接收消息不反馈结果;每次散播消息都选择尚未发送过的节点执行散播;以及收到消息的节点不再往发送节点散播。在一些实施例中,其中种子节点散播消息的周期为1秒,其中每次最多往6个节点散播。附图说明图1是传统负载均衡技术的常见架构图。图2是根据本专利技术的一个优选实施例的一种基于服务端控制的动态负载均衡方法的流程示意图。图3是根据本专利技术的另一个实施例的所述基于服务端控制的动态负载均衡方法的架构图。具体实施方式以下描述用于揭露本专利技术以使本领域技术人员能够实现本专利技术。以下描述中的优选实施例只作为举例,本领域技术人员可以想到本文档来自技高网
...

【技术保护点】
1.一种基于服务端控制的动态负载均衡方法,其特征在于,所述基于服务端控制的动态负载均衡方法包括以下步骤:/n客户端声明需求的服务类型,向负载均衡服务器申请获取对应该服务的连接地址;/n负载均衡服务器接收客户端的请求后,执行一次权重计算;/n负载均衡服务器根据服务列表顺序执行权重计算,计算完成后,根据权重值执行排序,将排序后的结果返回给客户端;/n客户端收到服务列表后,选择权重值最大的服务执行连接;/n以及/n当客户端检测到连接的应用服务中断,无法提供服务时,根据服务列表尝试重新连接到权重值为次大的服务,其中当所有服务都不能够连接时,客户端重新向负载均衡服务器获取一份最新的服务列表。/n

【技术特征摘要】
1.一种基于服务端控制的动态负载均衡方法,其特征在于,所述基于服务端控制的动态负载均衡方法包括以下步骤:
客户端声明需求的服务类型,向负载均衡服务器申请获取对应该服务的连接地址;
负载均衡服务器接收客户端的请求后,执行一次权重计算;
负载均衡服务器根据服务列表顺序执行权重计算,计算完成后,根据权重值执行排序,将排序后的结果返回给客户端;
客户端收到服务列表后,选择权重值最大的服务执行连接;
以及
当客户端检测到连接的应用服务中断,无法提供服务时,根据服务列表尝试重新连接到权重值为次大的服务,其中当所有服务都不能够连接时,客户端重新向负载均衡服务器获取一份最新的服务列表。


2.如权利要求1所述的基于服务端控制的动态负载均衡方法,其中所述基于服务端控制的动态负载均衡方法还包括步骤:客户端被传入规划的参数有客户端IP地址、客户端所属服务类型、用户地址业务数据、用户所属地区业务数据以及组织架构业务数据。


3.如权利要求2所述的基于服务端控制的动态负载均衡方法,其中所述基于服务端控制的动态负载均衡方法还包括步骤:根据服务状态、服务负载率、网络流量以及客户端IP地址与应用服务是否就近的干预因子执行权重值的计算。


4.如权利要求2所述的基于服务端控制的动态负载均衡方法,其中所述基于服务端控制的动态负载均衡方法还包括步骤:对每个服务的权重值按照以下公式执行计算处理:每个服务的权重值=服务状态×{(1-服务负载率)×服务压力+(网络流量上限-当前网络流量)×网络流量+IP地址是否就近的干预因子×客户端IP与服务端是否就近值+服务端干预权重}。


5.如权利要求2所述的基于服务端控制的动态负载均衡方法,其中所述基于服务端控制的动态负载均衡方法还包括步骤:客户端对返回的服务列表执行附加的权重计算,对返回的IP地址发起连接测试,获取响应时间,并对响应时间做权重化,加入到服务端返回的权重值上,再选...

【专利技术属性】
技术研发人员:莫海江
申请(专利权)人:贵州新致普惠信息技术有限公司
类型:发明
国别省市:贵州;52

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

1