一种负载均衡方法和服务器技术

技术编号:23628962 阅读:15 留言:0更新日期:2020-03-31 23:58
本申请提供了一种负载均衡方法和服务器,该方法包括:该微服务消费端获取第一微服务调用请求消息;该微服务消费端根据该第一微服务调用请求消息,对该多个负载均衡策略进行编排,得到编排后的多个负载均衡策略;该微服务消费端根据编排后的多个负载均衡策略,从多个微服务节点中确定第一目标微服务节点;该微服务消费端向该第一目标微服务节点发起微服务调用。本申请实施例的方案有助于满足业务日益复杂的微服务负载均衡需求。

【技术实现步骤摘要】
一种负载均衡方法和服务器
本申请涉及云计算微服务领域,并且更具体地,涉及一种负载均衡方法和服务器。
技术介绍
最近几年业务技术架构的服务化甚至是微服务化已经成为主流趋势:当应用越来越多时,应用之间的交互不可避免。通过按照功能模块划分,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能够更快速的响应多变的市场需求,同时可以共享后端的公共能力,降低重复开发成本。目前国内外的大型互联网企业(例如阿里、京东等),都已经实现服务化甚至微服务化,例如AWS使用自研的CoralService服务框架实现自身业务的微服务化,Netflix使用服务框架完成了视频业务的前后台拆分和业务微服务化。在运营商领域,中移动咪咕集团、第三代CRM等系统也已经完成服务化改造,其它海内外运营商也正在进行服务化转型。随着业务发展以及为了保障系统的高可用性,业务微服务需要部署在不同的机房。由于不同机房,特别是距离较远的机房(超过100公里)之间网络传输时延的增加会导致微服务调用时延增加,影响用户体验,因此通常需要微服务的负载均衡策略支持本机房优先的负载均衡策略。从业务商业角度看,为了对比两种不同推荐算法的效果,往往需要在生产环境中部署两套不同版本的推荐微服务,业务路由的时候需要根据用户特征将不同用户的请求分发到不同版本的推荐微服务中,实现按照用户特征的负载均衡策略。站在不同维度,业务微服务的路由策略不同,存在叠加和相互影响。传统微服务的负载均衡策略只支持单个维度的策略设置,策略之间互相覆盖,无法完全满足业务的需求。<br>
技术实现思路
本申请提供一种负载均衡方法和服务器,有助于满足业务日益复杂的微服务负载均衡需求。第一方面,提供了一种负载均衡方法,该方法应用于微服务消费端,该微服务消费端包括多个负载均衡策略,该方法包括:该微服务消费端获取第一微服务调用请求消息;该微服务消费端根据该第一微服务调用请求消息,对该多个负载均衡策略进行编排,得到编排后的多个负载均衡策略;该微服务消费端根据编排后的多个负载均衡策略,从多个微服务节点中确定第一目标微服务节点;该微服务消费端向该第一目标微服务节点发起微服务调用。本申请实施例中,通过微服务消费端的负载均衡策略编排引擎对多个负载均衡策略做调度,通过对多个负载均衡策略的编排和执行,最终从多个微服务节点中选出最合适的目标微服务节点,从而发起微服务调用,有助于满足日益复杂的微服务负载均衡需求。在一些可能的实现方式中,该负载均衡策略为原子负载均衡策略。在一些可能的实现方式中,该负载均衡策略包括跨机房负载均衡策略、用户特征规则负载均衡策略和随机负载均衡策略等等。结合第一方面,在第一方面的某些实现方式中,该方法还包括:该微服务消费端获取第二微服务调用请求消息;该微服务消费端根据该第二微服务调用请求消息,在该编排后的多个负载均衡策略中插入第一负载均衡策略,得到重新编排后的多个负载均衡策略;该微服务消费端根据重新编排后的多个负载均衡策略,从该多个微服务节点中确定第二目标为服务节点;该微服务消费端向该第二目标微服务节点发起微服务调用。本申请实施例中,当微服务消费端获取到第二微服务调用请求消息时,可以对多个负载均衡策略进行重新编排,例如在上一次编排好的多个负载均衡策略中新插入一个新的负载均衡策略,从而执行新编排的多个负载均衡策略,这样可以避免获取新的微服务调用请求时对所有的负载均衡策略进行代码重写,从而避免了重复开发和额外的维护成本。结合第一方面,在第一方面的某些实现方式中,该方法还包括:该方法还包括:该微服务消费端获取第三微服务调用请求消息;该微服务消费端根据该第三微服务调用请求消息,将该编排后的多个负载均衡策略中的第二负载均衡策略替换为第三负载均衡策略,得到重新编排后的多个负载均衡策略;该微服务消费端根据重新编排后的多个负载均衡策略,从该多个微服务节点中确定第三目标为服务节点;该微服务消费端向该第三目标微服务节点发起微服务调用。本申请实施例中,当微服务消费端获取到第三微服务调用请求消息时,可以对多个负载均衡策略进行重新编排,例如将上一次编排好的多个负载均衡策略中的某个负载均衡策略替换为一个新的负载均衡策略,从而执行新编排的多个负载均衡策略,这样可以避免获取新的微服务调用请求时对所有的负载均衡策略进行代码重写,从而避免了重复开发和额外的维护成本。结合第一方面,在第一方面的某些实现方式中,该微服务消费端根据该第一微服务调用请求消息,对该多个负载均衡策略进行编排,包括:该微服务消费端根据该第一微服务调用请求消息,确定用户信息,该用户信息包括用户注册地的信息和应用的版本号信息;该微服务消费端根据该用户信息,对该多个负载均衡策略进行编排。本申请实施例中,微服务消费端可以根据获取到的微服务调度请求消息确定用户信息,从而根据用户信息来对多个负载均衡策略进行编排,最终从多个微服务节点中选出最合适的目标微服务节点,从而发起微服务调用,有助于满足日益复杂的微服务负载均衡需求。结合第一方面,在第一方面的某些实现方式中,该微服务消费端获取第一微服务调用请求消息,包括:该微服务消费端接收微服务客户端发送的该微服务调用请求。在一些可能的实现方式中,该微服务消费端还可以通过定时任务生成微服务调用请求消息或者通过界面配置获取到微服务调用请求消息。第二方面,提供了一种服务器,包括:一个或多个处理器;存储器;一个或者多个应用程序;以及一个或多个计算机程序。其中,一个或多个计算机程序被存储在存储器中,一个或多个计算机程序包括指令。当指令被电子设备执行时,使得电子设备执行上述第一方面任一项可能的负载均衡方法。第三方面,本技术方案提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第一方面任一项可能的实现中的负载均衡方法。第四方面,本技术方案提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面任一项可能的设计中的负载均衡方法。附图说明图1是本申请实施例提供的一种系统架构的示意图。图2是本申请实施例提供的另一种系统架构的示意图。图3是本申请实施例提供的负载均衡策略编排职责链的工作原理的示意图。图4是一种A省、B省和C省的组网的示意图。图5是本申请实施例提供的负载均衡方法的示意性流程图。图6是本申请实施例提供的负载均衡方法的示意性流程图。图7是本申请实施例提供的服务器的示意性框图。具体实施方式下面将结合附图,对本申请中的技术方案进行描述。在介绍本申请实施例的技术方案之前,首先对本申请实施例中涉及的几个术语进行解释。微服务:微服务是一种软件架构风格(softwarearchitecturestyle),它是以专注于单一责任与功能的小型功能区块(smallbuildingblocks)为基础,利用模组化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关(本文档来自技高网
...

【技术保护点】
1.一种负载均衡方法,其特征在于,所述方法应用于微服务消费端,所述微服务消费端包括多个负载均衡策略,包括:/n所述微服务消费端获取第一微服务调用请求消息;/n所述微服务消费端根据所述第一微服务调用请求消息,对所述多个负载均衡策略进行编排,得到编排后的多个负载均衡策略;/n所述微服务消费端根据编排后的多个负载均衡策略,从多个微服务节点中确定第一目标微服务节点;/n所述微服务消费端向所述第一目标微服务节点发起微服务调用。/n

【技术特征摘要】
1.一种负载均衡方法,其特征在于,所述方法应用于微服务消费端,所述微服务消费端包括多个负载均衡策略,包括:
所述微服务消费端获取第一微服务调用请求消息;
所述微服务消费端根据所述第一微服务调用请求消息,对所述多个负载均衡策略进行编排,得到编排后的多个负载均衡策略;
所述微服务消费端根据编排后的多个负载均衡策略,从多个微服务节点中确定第一目标微服务节点;
所述微服务消费端向所述第一目标微服务节点发起微服务调用。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述微服务消费端获取第二微服务调用请求消息;
所述微服务消费端根据所述第二微服务调用请求消息,在所述编排后的多个负载均衡策略中插入第一负载均衡策略,得到重新编排后的多个负载均衡策略;
所述微服务消费端根据所述重新编排后的多个负载均衡策略,从所述多个微服务节点中确定第二目标为服务节点;
所述微服务消费端向所述第二目标微服务节点发起微服务调用。


3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述微服务消费端获取第三微服务调用请求消息;
所述微服务消费端根据所述第三微服务调用请求消息,将所述编排后的多个负载均衡策略中的第二负载均衡策略替换为第三负载均衡策略,得到重新编排后的多个负载均衡策略;
所述微服务消费端根据所述重新编排后的多个负载均衡策略,从所述多个微服务节点中确定第三目标为服务节点;
所述微服务消费端向所述第三目标微服务节点发起微服务调用。


4.根据权利要求1至3所述的方法,其特征在于,所述微服务消费端根据所述第一微服务调用请求消息,对所述多个负载均衡策略进行编排,包括:
所述微服务消费端根据所述第一微服务调用请求消息,确定用户信息,所述用户信息包括用户注册地的信息和应用的版本号信息;
所述微服务消费端根据所述用户信息,对所述多个负载均衡策略进行编排。


5.根据权利要求1至4中任一项所述的方法,其特征在于,所述微服务消费端获取第一微服务调用请求消息,包括:
所述微服务消费端接收微服务客户端发送的所述微服务调用请求。

【专利技术属性】
技术研发人员:李林锋
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1