一种用于服务集群的负载均衡方法和系统技术方案

技术编号:26342198 阅读:16 留言:0更新日期:2020-11-13 20:31
本说明书实施例公开了一种用于服务集群的负载均衡方法和系统,所述服务集群包括多个具有可信执行环境的工作节点,所述方法包括:获取服务集群中工作节点的可信执行环境的内存状态信息;至少基于工作节点的可信执行环境的内存状态信息实施负载均衡,以调整工作节点接收到的服务请求的数量。

A load balancing method and system for service cluster

【技术实现步骤摘要】
一种用于服务集群的负载均衡方法和系统
本说明书涉及通信
,特别涉及一种用于服务集群的负载均衡方法和系统。
技术介绍
随着互联网的快速发展和业务量的不断提高,基于网络的数据访问流量迅速增长,特别是对数据中心、大型企业以及门户网站等的访问,其访问流量通常为海量级别,对应用服务提出了高性能和高可靠性的需求。然而,相对于网络技术的发展,服务器处理速度和内存访问速度的增长却远远低于网络带宽和应用服务的增长,网络带宽增长的同时带来的用户数量的增长,也使得服务器资源消耗严重,因而服务器成为了网络瓶颈。相关技术中,提出了组建服务器集群,利用负载均衡技术在服务器集群间进行业务均衡,本说明书旨在针对基于可信执行环境的服务集群,提出一种更适宜的负载均衡方法和系统。该服务集群能够在对外提供服务的过程中进行数据隐私保护。
技术实现思路
本说明书实施例的一个方面提供一种用于服务集群的负载均衡方法,所述服务集群包括多个具有可信执行环境的工作节点,所述方法包括:获取服务集群中工作节点的可信执行环境的内存状态信息;至少基于工作节点的可信执行环境的内存状态信息实施负载均衡,以调整工作节点接收到的服务请求的数量。本说明书实施例的另一个方面提供一种用于服务集群的负载均衡系统系统,所述系统包括:获取模块,可以用于获取服务集群中工作节点的可信执行环境的内存状态信息。调整模块,可以用于至少基于工作节点的可信执行环境的内存状态信息实施负载均衡,以调整工作节点接收到的服务请求的数量。本说明书实施例的另一个方面提供一种用于服务集群的负载均衡装置,包括处理器,所述处理器用于执行用于服务集群的负载均衡方法。本说明书实施例的另一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行用于服务集群的负载均衡方法。附图说明本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:图1是根据本说明书一些实施例所示的用于服务集群的负载均衡系统的应用场景的示例性示意图;图2是根据本说明书一些实施例所示的用于服务集群的负载均衡方法的示例性流程图;图3是根据本说明书一些实施例所示的实施负载均衡的方法的示例性流程图;图4是根据本说明书一些实施例所示的调整工作节点的负载权重方法的示例性流程图;图5是根据本说明书一些实施例所示的临界指标的确定方法的示例性流程图;图6是根据本说明书的一些实施例所示的用于服务集群的负载均衡系统的模块图。具体实施方式为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。图1是根据本说明书一些实施例所示的用于服务集群的负载均衡系统的应用场景的示例性示意图。用于服务集群的负载均衡系统可以通过实施本说明书中披露的方法和/或过程来对服务集群中工作节点实施负载均衡。服务集群是指将多个服务器集中进行一种或多种服务的系统。服务集群可以包括多个可以执行相同任务的工作节点。在一些实施例中,服务集群可以应用于各种应用服务,例如,推荐服务、预测服务、智能客服服务、隐私保护服务等。在实际应用场景中,可能会存在多个用户终端同时发出服务请求,此时服务集群中的管理节点或负载均衡节点需要按照一定的负载均衡策略(或算法)将接收到的多个服务请求分发给不同的工作节点,以提高服务集群处理服务请求的效率,降低服务集群处理服务请求的响应时间。在一些应用场景中,可以基于已分发给每个工作节点的服务请求数量进行负载均衡,如将新来的服务请求分发给拥有服务请求较少的工作节点。在又一些应用场景中,可以按照轮询的方式进行负载均衡,如按照顺序向各个工作节点分发新来的服务请求。然而,在基于可信执行环境的服务集群中,服务请求的响应时间还会受到可信执行环境的内存(如,SGX技术的EPC,EnclavePageCache)状态的影响,仅通过前述方式进行负载均衡已经不能满足基于可信执行环境的服务集群的服务要求。本说明书一些实施例提出一种用于服务集群的负载均衡方法和系统,该方法可以基于可信执行环境的内存状态信息对服务集群实施负载均衡,确保基于可信执行环境的服务集群的服务响应时间能够满足要求。如图1所示,在应用场景中可以包括服务集群110、网络120和用户终端130。服务集群110可以包括管理节点(或称为负载均衡器)110-1以及若干并行的工作节点110-2、110-3…。服务集群110中的节点可以是带有数据获取、存储、计算、分析和/或发送功能的设备,例如,服务器、个人计算机等。服务集群110可以用于处理用户终端130发送的服务请求。服务集群110中的工作节点可以是本地的或远程的。在一些实施例中,工作节点可以在云端平台实施。仅作为示例,云端平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多云等或其任意组合。在一些实施中,工作节点110-2、110-3、……中具有可信执行环境(TEE,TrustedExecutionEnvironment),例如,工作节点具有基于SoftwareGuardExtensions(SGX)、SecureEncryptedVirtualization或TrustZone等技术的可信执行环境。以SGX为例,当程序在可信执行环境中执行时会受到Enclave保护,外界是无法篡改位于Enclave中的数据或影响该程序的执行过程。同时,SGX还可以向其他设备提供Enclave签名,以便向其他设备证明某程序正运行在本工作节点的可信执行环境中并受到保护。多个工作节点110-2、110-3、…可以共同处理服务请求,例如,在多个工作节点上运行同一个服务(或称为服务程序副本),管理节点110-1可以将服务请求分配至多个工作本文档来自技高网...

【技术保护点】
1.一种用于服务集群的负载均衡方法,所述服务集群包括多个具有可信执行环境的工作节点,所述方法包括:/n获取服务集群中工作节点的可信执行环境的内存状态信息;其中,所述可信执行环境的内存状态信息包括可信执行环境的内存与外存储介质进行数据交换的数据量、可信执行环境的内存占用量以及可信执行环境的内存剩余量中的一种或多种组合;/n至少基于工作节点的可信执行环境的内存状态信息实施负载均衡,以调整工作节点接收到的服务请求的数量。/n

【技术特征摘要】
1.一种用于服务集群的负载均衡方法,所述服务集群包括多个具有可信执行环境的工作节点,所述方法包括:
获取服务集群中工作节点的可信执行环境的内存状态信息;其中,所述可信执行环境的内存状态信息包括可信执行环境的内存与外存储介质进行数据交换的数据量、可信执行环境的内存占用量以及可信执行环境的内存剩余量中的一种或多种组合;
至少基于工作节点的可信执行环境的内存状态信息实施负载均衡,以调整工作节点接收到的服务请求的数量。


2.根据权利要求1所述的方法,所述至少基于工作节点的可信执行环境的内存状态信息实施负载均衡,以调整工作节点接收到的服务请求的数量,包括:
确定各工作节点的负载权重,所述负载权重与工作节点接收到的服务请求的数量相关;
基于内存状态信息,调整对应的工作节点的负载权重,进而调整该工作节点接收到的服务请求的数量。


3.根据权利要求2所述的方法,所述基于内存状态信息,调整对应的工作节点的负载权重,进而调整该工作节点接收到的服务请求的数量,包括:
获取目标服务对应的临界指标;
基于所述临界指标,判断该工作节点对应的内存状态信息是否满足预设条件;
若是,则调整该工作节点的负载权重,以减少该工作节点接收到的服务请求的数量或者使该工作节点不再接收服务请求。


4.根据权利要求3所述的方法,所述基于内存状态信息,调整对应的工作节点的负载权重,进而调整该工作节点接收到的服务请求的数量,还包括,在减少该工作节点接收到的服务请求的数量或者使该工作节点不再接收服务请求之后:
判断该工作节点的可信执行环境中,除目标服务以外的程序是否结束运行;
若是,则调整该工作节点的负载权重,以增加该工作节点接收到的服务请求的数量或者使该工作节点可重新接收服务请求。


5.根据权利要求3所述的方法,所述临界指标通过以下方式确定:
在工作节点上运行用于实现所述目标服务的目标服务程序,并向所述工作节点发送服务请求;
在所述工作节点上运行内存占用程序,所述内存占用程序与所述目标服务程序共同使用可信执行环境的内存,以致触发可信执行环境的内存与外存储介质进行数据交换;
基于所述目标服务程序对服务请求的响应确定当前目标服务的服务质量,获取当前可信执行环境的内存与外存储介质进行数据交换的数据量,将当前的可信执行环境的内存与外存储介质进行数据交换的数据量与目标服务的服务质量进行关联并存储;改变所述内存占用程序使用可信执行环境的内存大小并循环本步骤,获得多组可信执行环境的内存与外存储介质进行数据交换的数据量及其对应的目标服务的服务质量;
将目标服务的服务质量下限对应的可信执行环境的内存与外存储介质进行数据交换的数据量确定为所述临界指标。


6.根据权利要求1所述的方法,所述获取服务集群中工作节点的可信执行环境的内存状态信息,包括:
通过在每个所述工作节点处设置的节点状态监控器获取服务集群中各工作节点的所述内存状态信息。


7.根据权利要求1所述的方法,所述获取服务集群中工作节点的可信执行环境的内存状态信息,包括对于任一工作节点:
获取该工作节点预设历史时期的历史内存状态信息;
将所述历史内存状态信息输入预先训练好的内存状态预测模型,得到该工作节点当前的内存状态信息。

【专利技术属性】
技术研发人员:马俊明余超凡王磊
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1