用于负载均衡的方法、设备、系统及存储介质技术方案

技术编号:34111765 阅读:12 留言:0更新日期:2022-07-12 01:29
本申请提供一种用于负载均衡的方法、设备、系统及存储介质,该方法应用于集群中的第一应用服务,第一应用服务包括:第一应用服务实例和xDS代理,第一应用服务实例包括:第一工作负载和xDS客户端;通过xDS代理接收xDS服务器发送的第一负载均衡策略信息,并将第一负载均衡策略信息转发至xDS客户端,在第一工作负载需要调用集群中的第二应用服务时,通过xDS客户端根据第一负载均衡策略信息,向第二应用服务中的一个或多个目标第二应用服务实例发送调用请求,以实现第二应用服务中的各第二应用服务实例的负载均衡。通过上述过程,可以在第一应用服务实例内部实现负载均衡,调用请求无需经过网格代理的转发,从而降低业务响应时长。长。长。

【技术实现步骤摘要】
用于负载均衡的方法、设备、系统及存储介质


[0001]本申请涉及计算机
,尤其涉及一种用于负载均衡的方法、设备、系统及存储介质。

技术介绍

[0002]在微服务架构中,一个应用程序可以包括多个应用服务,每个应用服务仅关注于完成一件任务,从而,应用程序可以视为是多个应用服务的集合。一个应用程序对应的各个应用服务可以被独立地部署,每个应用服务可以被部署在一个或者多个服务器上。
[0003]由于不同的应用服务可能被部署在不同的服务器上,因此,不同应用服务之间的调用涉及到不同服务器之间的通信。为了便于不同应用服务之间安全和可靠的通信,提出了一种微服务治理框架

服务网格(service mesh)。服务网格是服务于各服务应用的可配置基础设施层,旨在处理不同应用服务之间的大量基于网络的进程间通信。具体而言,在服务网格框架中,为每个应用服务部署一个网格代理(也可以称为边车(sidecar)),所有出入应用服务的流量均先经过其对应的网格代理。这样,应用服务之间的调用转变成了网格代理之间的调用。
[0004]在负载均衡场景中,当第一应用服务调用第二应用服务时,第一应用服务将调用请求发送给其对应的网格代理,由网格代理基于负载均衡策略确定将调用请求转发给第二应用服务的哪个工作负载(或者称为服务实例),以保证第二应用服务中的各工作负载的负载均衡。然而,由于所有调用请求均需要经过网格代理的转发,会导致业务响应时长增加。

技术实现思路

[0005]本申请实施例提供一种用于负载均衡的方法、设备、系统及存储介质,用以降低不同应用服务之间的服务调用的业务响应时长。
[0006]第一方面,本申请实施例提供一种用于负载均衡的方法,应用于集群中的第一应用服务,所述第一应用服务包括:第一应用服务实例和服务发现xDS代理,所述第一应用服务实例包括:第一工作负载和xDS客户端;所述方法包括:通过所述xDS代理接收xDS服务器发送的第一负载均衡策略信息,并将所述第一负载均衡策略信息转发至所述xDS客户端;在所述第一工作负载需要调用所述集群中的第二应用服务时,通过所述xDS客户端根据所述第一负载均衡策略信息,向所述第二应用服务中的一个或多个目标第二应用服务实例发送调用请求,以实现所述第二应用服务中的各第二应用服务实例的负载均衡。
[0007]一种可能的实现方式中,通过所述xDS代理接收xDS服务器发送的第一负载均衡策略信息之前,还包括:在接收到所述第一应用服务实例对应的启动指令时,启动所述xDS代理;通过所述xDS代理从所述xDS服务器获取第一启动配置信息,所述第一启动配置信息为启动所述第一应用服务实例所需的配置信息;
根据所述第一启动配置信息,启动所述第一应用服务实例。
[0008]一种可能的实现方式中,通过所述xDS代理从所述xDS服务器获取第一启动配置信息,包括:通过所述xDS代理与所述xDS服务器建立连接;通过所述xDS代理从所述xDS服务器接收第二负载均衡策略信息;通过所述xDS代理根据所述第二负载均衡策略信息,生成所述第一启动配置信息,所述第一启动配置信息包括所述第二负载均衡策略信息。
[0009]一种可能的实现方式中,通过所述xDS代理与所述xDS服务器建立连接,包括:通过所述xDS代理获取证书信息,并根据所述证书信息,向所述xDS服务器发送连接建立请求,所述连接建立请求中包括所述证书信息;其中,所述证书信息是由代理管理器为所述xDS代理配置的;所述代理管理器用于管理所述集群中各应用服务中的xDS代理;通过所述xDS代理从所述xDS服务器接收连接建立响应,所述连接建立响应是所述xDS服务器对所述证书信息验证通过后发送的。
[0010]一种可能的实现方式中,启动所述xDS代理,包括:获取启动所述xDS代理所需的第二启动配置信息,所述第二启动配置信息是由所述代理管理器为所述xDS代理配置的;根据所述第二启动配置信息,启动所述xDS代理。
[0011]一种可能的实现方式中,在所述第一工作负载需要调用所述集群中的第二应用服务时,通过所述xDS客户端根据所述第一负载均衡策略信息,向所述第二应用服务中的一个或多个目标第二应用服务实例发送调用请求,包括:通过所述xDS客户端执行下述步骤:在监测到所述第一工作负载发送所述调用请求时,拦截所述调用请求,并对所述调用请求进行解析,确定出待调用的所述第二应用服务;从所述第一负载均衡策略信息中获取所述第二应用服务对应的负载均衡策略,并根据所述第二应用服务对应的负载均衡策略,在所述第二应用服务包括的多个第二应用服务实例中确定出所述一个或多个目标第二应用服务实例;向所述一个或多个目标第二应用服务实例发送所述调用请求。
[0012]一种可能的实现方式中,对所述调用请求进行解析,确定出待调用的所述第二应用服务之后,还包括:确定是否存在所述第一应用服务与所述第二应用服务之间的连接通道;若不存在,则根据所述第二应用服务的地址信息和端口信息,建立所述第一应用服务和所述第二应用服务之间的连接通道。
[0013]一种可能的实现方式中,所述集群中不同应用服务中的xDS代理基于同一编程语言框架实现。
[0014]第二方面,本申请实施例提供一种用于负载均衡的方法,应用于服务发现xDS服务器,所述方法包括:获取集群中的第一应用服务实例对应的第一负载均衡策略信息;向所述第一应用服务实例对应的xDS代理发送所述第一负载均衡策略信息,以使所述xDS代理将所述第一负载均衡策略信息转发至所述第一应用服务实例中的xDS客户端,
所述第一负载均衡策略信息用于在所述第一应用服务实例中的第一工作负载调用所述集群中的第二应用服务时,实现所述第二应用服务中的各第二应用服务实例的负载均衡。
[0015]第三方面,本申请实施例提供一种用于负载均衡的方法,应用于用于负载均衡的系统,所述系统包括:部署在控制平面层的服务发现xDS服务器和部署在数据平面层的集群,所述集群中包括第一应用服务和第二应用服务,所述第一应用服务包括第一应用服务实例和xDS代理,所述第一应用服务实例包括第一工作负载和xDS客户端,所述第二应用服务包括多个第二应用服务实例;所述方法包括:服务发现xDS服务器获取所述第一应用服务实例对应的第一负载均衡策略信息,并向所述第一应用服务实例对应的xDS代理发送所述第一负载均衡策略信息;所述第一应用服务通过所述xDS代理将所述第一负载均衡策略信息转发至所述xDS客户端;所述第一应用服务在所述第一工作负载需要调用所述集群中的第二应用服务时,通过所述xDS客户端根据所述第一负载均衡策略信息,向所述第二应用服务中的一个或多个目标第二应用服务实例发送调用请求,以实现所述第二应用服务中的各第二应用服务实例的负载均衡。
[0016]第四方面,本申请实施例提供一种用于负载均衡的装置,应用于集群中的第一应用服务,所述第一应用服务包括:第一应用服务实例和服务发现xDS代理,所述第一应用服务实例包括:第一工作负载和xDS客户端;所述装置包括:策略获取模块,用于通过所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于负载均衡的方法,其特征在于,应用于集群中的第一应用服务,所述第一应用服务包括:第一应用服务实例和服务发现xDS代理,所述第一应用服务实例包括:第一工作负载和xDS客户端;所述方法包括:通过所述xDS代理接收xDS服务器发送的第一负载均衡策略信息,并将所述第一负载均衡策略信息转发至所述xDS客户端;在所述第一工作负载需要调用所述集群中的第二应用服务时,通过所述xDS客户端根据所述第一负载均衡策略信息,向所述第二应用服务中的一个或多个目标第二应用服务实例发送调用请求,以实现所述第二应用服务中的各第二应用服务实例的负载均衡。2.根据权利要求1所述的方法,其特征在于,通过所述xDS代理接收xDS服务器发送的第一负载均衡策略信息之前,还包括:在接收到所述第一应用服务实例对应的启动指令时,启动所述xDS代理;通过所述xDS代理从所述xDS服务器获取第一启动配置信息,所述第一启动配置信息为启动所述第一应用服务实例所需的配置信息;根据所述第一启动配置信息,启动所述第一应用服务实例。3.根据权利要求2所述的方法,其特征在于,通过所述xDS代理从所述xDS服务器获取第一启动配置信息,包括:通过所述xDS代理与所述xDS服务器建立连接;通过所述xDS代理从所述xDS服务器接收第二负载均衡策略信息;通过所述xDS代理根据所述第二负载均衡策略信息,生成所述第一启动配置信息,所述第一启动配置信息包括所述第二负载均衡策略信息。4.根据权利要求3所述的方法,其特征在于,通过所述xDS代理与所述xDS服务器建立连接,包括:通过所述xDS代理获取证书信息,并根据所述证书信息,向所述xDS服务器发送连接建立请求,所述连接建立请求中包括所述证书信息;其中,所述证书信息是由代理管理器为所述xDS代理配置的;所述代理管理器用于管理所述集群中各应用服务中的xDS代理;通过所述xDS代理从所述xDS服务器接收连接建立响应,所述连接建立响应是所述xDS服务器对所述证书信息验证通过后发送的。5.根据权利要求4所述的方法,其特征在于,启动所述xDS代理,包括:获取启动所述xDS代理所需的第二启动配置信息,所述第二启动配置信息是由所述代理管理器为所述xDS代理配置的;根据所述第二启动配置信息,启动所述xDS代理。6.根据权利要求1至5任一项所述的方法,其特征在于,在所述第一工作负载需要调用所述集群中的第二应用服务时,通过所述xDS客户端根据所述第一负载均衡策略信息,向所述第二应用服务中的一个或多个目标第二应用服务实例发送调用请求,包括:通过所述xDS客户端执行下述步骤:在监测到所述第一工作负载发送所述调用请求时,拦截所述调用请求,并对所述调用请求进行解析,确定出待调用的所述第二应用服务;从所述第一负载均衡策略信息中获取所述第二应用服务对应的负载均衡策略,并根据所述第二应用服务对应的负载均衡策略,在所述第二应用服务包括的多个第二应用服务实
例中确定出所述一个或多个目标第二应用服务实例;向所述一个或多个目标第二应用服务实例发送所述调用请求。7.根据权利要求6所述的方法,其特征在于,对所述调用请求进行解析,确定出待调用的所述第二应用服务之后,还包括:确定是否存在所述第一应用服务与所述第二应用服务之间的连接通道;若不存在,则根据所述第二应用...

【专利技术属性】
技术研发人员:王夕宁
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

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

1