分布式动态负载均衡方法、计算设备及计算机存储介质转让专利

申请号 : CN201711240171.1

文献号 : CN107911470B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王利超

申请人 : 掌阅科技股份有限公司

摘要 :

本发明公开了一种分布式动态负载均衡方法、计算设备及计算机存储介质。其中,方法包括:实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;根据所述变更通知,将变更后的负载均衡配置策略同步至内存中;接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请求对应的服务节点;将所述业务请求重定向至所述服务节点进行处理。采用本方案,可实时地根据动态更新的负载均衡配置策略对业务请求进行路由,提高了对业务请求路由的灵活性;并避免了现有技术中对负载均衡策略更新效率低,以及在对负载均衡策略进行更新后,无法及时地根据更新后的负载均衡策略对业务请求进行路由的弊端。

权利要求 :

1.一种分布式动态负载均衡方法,包括:

实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;

根据所述变更通知,通过共享内存组件,将变更后的负载均衡配置策略同步至内存中;

其中,通过共享内存组件读取分布式配置管理中心中配置的URI与名字空间的对应关系以及至少一个匹配模式,将所述URI与名字空间的对应关系以及至少一个匹配模式同步至内存中;

接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请求对应的服务节点;

将所述业务请求重定向至所述服务节点进行处理。

2.根据权利要求1所述的方法,其中,所述负载均衡配置策略至少包含:重写规则和/或路由规则。

3.根据权利要求2所述的方法,其中,所述分布式配置管理中心提供有对重写规则和/或路由规则进行配置的接口。

4.根据权利要求2所述的方法,其中,所述根据内存中的所述负载均衡配置策略确定与所述业务请求对应的服务节点进一步包括:提取所述业务请求中的URI信息,根据所述路由规则确定与所述URI信息相匹配的名字空间;

确定所述名字空间对应的服务节点为与所述业务请求对应的服务节点。

5.根据权利要求4所述的方法,其中,在所述根据所述路由规则确定与所述URI信息相匹配的名字空间之前,所述方法还包括:根据所述重写规则对所述业务请求中的URI信息进行重写,获得重写后的URI信息;

则所述根据所述路由规则确定与所述URI信息相匹配的名字空间进一步包括:根据所述路由规则确定与所述重写后的URI信息相匹配的名字空间。

6.根据权利要求1-5中任一项所述的方法,其中,所述方法还包括:根据所述URI与名字空间的对应关系以及至少一个匹配模式,为所述匹配模式设置相应的优先级。

7.根据权利要求1-5中任一项所述的方法,其中,所述分布式配置管理中心为基于zookeeper的分布式应用管理协调中心。

8.一种计算设备,所述计算设备包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;

根据所述变更通知,通过共享内存组件,将变更后的负载均衡配置策略同步至内存中;

其中,通过共享内存组件读取分布式配置管理中心中配置的URI与名字空间的对应关系以及至少一个匹配模式,将所述URI与名字空间的对应关系以及至少一个匹配模式同步至内存中;

接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请求对应的服务节点;

将所述业务请求重定向至所述服务节点进行处理。

9.根据权利要求8所述的计算设备,其中,所述负载均衡配置策略至少包含:重写规则和/或路由规则。

10.根据权利要求9所述的计算设备,其中,所述分布式配置管理中心提供有对重写规则和/或路由规则进行配置的接口。

11.根据权利要求9所述的计算设备,其中,所述可执行指令进一步使所述处理器执行以下操作:提取所述业务请求中的URI信息,根据所述路由规则确定与所述URI信息相匹配的名字空间;

确定所述名字空间对应的服务节点为与所述业务请求对应的服务节点。

12.根据权利要求11所述的计算设备,其中,所述可执行指令进一步使所述处理器执行以下操作:根据所述重写规则对所述业务请求中的URI信息进行重写,获得重写后的URI信息;

则所述根据所述路由规则确定与所述URI信息相匹配的名字空间进一步包括:根据所述路由规则确定与所述重写后的URI信息相匹配的名字空间。

13.根据权利要求8-12中任一项所述的计算设备,其中,所述可执行指令进一步使所述处理器执行以下操作:根据所述URI与名字空间的对应关系以及至少一个匹配模式,为所述匹配模式设置相应的优先级。

14.根据权利要求8-12中任一项所述的计算设备,其中,所述分布式配置管理中心为基于zookeeper的分布式应用管理协调中心。

15.一种计算机存储介质,所述计算机存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行以下操作:实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;

根据所述变更通知,通过共享内存组件,将变更后的负载均衡配置策略同步至内存中;

其中,通过共享内存组件读取分布式配置管理中心中配置的URI与名字空间的对应关系以及至少一个匹配模式,将所述URI与名字空间的对应关系以及至少一个匹配模式同步至内存中;

接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请求对应的服务节点;

将所述业务请求重定向至所述服务节点进行处理。

16.根据权利要求15所述的计算机存储介质,其中,所述负载均衡配置策略至少包含:重写规则和/或路由规则。

17.根据权利要求16所述的计算机存储介质,其中,所述分布式配置管理中心提供有对重写规则和/或路由规则进行配置的接口。

18.根据权利要求16所述的计算机存储介质,其中,所述可执行指令进一步使所述处理器执行以下操作:提取所述业务请求中的URI信息,根据所述路由规则确定与所述URI信息相匹配的名字空间;

确定所述名字空间对应的服务节点为与所述业务请求对应的服务节点。

19.根据权利要求18所述的计算机存储介质,其中,所述可执行指令进一步使所述处理器执行以下操作:根据所述重写规则对所述业务请求中的URI信息进行重写,获得重写后的URI信息;

则所述根据所述路由规则确定与所述URI信息相匹配的名字空间进一步包括:根据所述路由规则确定与所述重写后的URI信息相匹配的名字空间。

20.根据权利要求15-19中任一项所述的计算机存储介质,其中,所述可执行指令进一步使所述处理器执行以下操作:根据所述URI与名字空间的对应关系以及至少一个匹配模式,为所述匹配模式设置相应的优先级。

21.根据权利要求15-19中任一项所述的计算机存储介质,其中,所述分布式配置管理中心为基于zookeeper的分布式应用管理协调中心。

说明书 :

分布式动态负载均衡方法、计算设备及计算机存储介质

技术领域

[0001] 本发明涉及计算机技术领域,具体涉及一种分布式动态负载均衡方法、 计算设备及计算机存储介质。

背景技术

[0002] 分布式系统以其强大的处理能力而受到广大技术人员的青睐。然而,由 于分布式系统中服务节点数较多,当分布式系统中出现负载不均衡,如某个 服务节点负载严重超负荷而导致服务节点宕机时,则会影响整个分布式系统 性能。所以,通常需通过负载均衡器来实现对分布式系统的负载均衡,保证 分布式系统的稳定性。
[0003] 目前采用的分布式负载均衡方法是根据存储于磁盘中的负载均衡配置策 略来对业务请求进行路由。然而,采用该种负载均衡方法在对负载均衡配置 策略进行变更时,需对磁盘进行写操作,在对磁盘中的负载均衡配置策略进 行变更后,往往需要重新启动负载均衡器,加载磁盘中新的负载均衡配置策 略,进而根据新的负载均衡配置策略对业务请求进行路由。所以采用该种方 法会大大降低负载均衡配置策略的更新效率,并且无法实时地根据更新后的 负载均衡配置策略对业务请求进行路由。

发明内容

[0004] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分 地解决上述问题的分布式动态负载均衡方法、计算设备及计算机存储介质。
[0005] 根据本发明的一个方面,提供了一种分布式动态负载均衡方法,包括:
[0006] 实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;
[0007] 根据所述变更通知,将变更后的负载均衡配置策略同步至内存中;
[0008] 接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请 求对应的服务节点;
[0009] 将所述业务请求重定向至所述服务节点进行处理。
[0010] 根据本发明的另一个方面,提供了一种计算设备,所述计算设备用于对 在分布式协调系统中注册的服务进行健康检查,其中,计算设备包括:处理 器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接 口通过所述通信总线完成相互间的通信;
[0011] 所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器 执行以下操作:
[0012] 实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;
[0013] 根据所述变更通知,将变更后的负载均衡配置策略同步至内存中;
[0014] 接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请 求对应的服务节点;
[0015] 将所述业务请求重定向至所述服务节点进行处理。
[0016] 根据本发明的又一个方面,提供了一种计算机存储介质,所述计算机存 储介质中存储有至少一可执行指令,用于对在分布式协调系统中注册的服务 进行健康检查,该可执行指令使处理器执行以下操作:
[0017] 实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;
[0018] 根据所述变更通知,将变更后的负载均衡配置策略同步至内存中;
[0019] 接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请 求对应的服务节点;
[0020] 将所述业务请求重定向至所述服务节点进行处理。
[0021] 根据本发明提供的分布式动态负载均衡方法、计算设备及计算机存储介 质,通过实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知, 并根据变更通知,将变更后的负载均衡配置策略同步至内存中,从而可实现 快速地对负载均衡配置策略的更新;并且,根据内存中的负载均衡配置策略 确定与业务请求对应的服务节点,并将业务请求重定向至对应的服务节点进 行处理。采用本方案,实现了实时地根据动态更新的负载均衡配置策略对业 务请求进行路由,提高了对业务请求路由的灵活性;并避免了现有技术中对 负载均衡策略更新效率低,以及在对负载均衡策略进行更新后,无法及时地 根据更新后的负载均衡策略对业务请求进行路由的弊端。
[0022] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技 术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它 目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0023] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本 领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的, 而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示 相同的部件。在附图中:
[0024] 图1示出了根据本发明一个实施例提供的分布式动态负载均衡方法的流 程示意图;
[0025] 图2示出了根据本发明另一个实施例提供的分布式动态负载均衡方法的 流程示意图;
[0026] 图3示出了根据本发明一个实施例提供的一种计算设备的结构示意图。

具体实施方式

[0027] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示 了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不 应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地 理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0028] 图1示出了根据本发明一个实施例提供的分布式动态负载均衡方法的流 程示意图。如图1所示,该方法包括:
[0029] 步骤S110,实时监听分布式配置管理中心存储的负载均衡配置策略的变 更通知。
[0030] 其中,分布式配置管理中心存储有负载均衡配置策略。通过分布式配置 管理中心存储负载均衡配置策略便于提高配置策略的可靠性,并便于对负载 均衡配置策略进行管理及更改。
[0031] 进一步地,由于分布式配置管理中心存储的负载均衡配置策略可动态更 新,在变更后产生相应的变更通知,则本步骤中可实时监听分布式配置管理 中心存储的负载均衡配置策略的变更通知,以供后续步骤中可实时地获取更 新后的负载均衡配置策略。
[0032] 具体地,监听分布式配置管理中心存储的负载均衡配置策略的变更通知 的具体实现方式,本领域技术人员可自行设置,变更通知中包含有分布式配 置管理中心存储的负载均衡配置策略发生变更的标识信息。或者,本步骤中 的变更通知中也可包含分布式配置管理中心存储的负载均衡配置策略的详细 的变更细节。如,变更通知中可包含负载均衡配置策略中第n部分发生了变 更(n为大于或等于1的整数),而其他部分未发生变更的变更信息。
[0033] 步骤S120,根据变更通知,将变更后的负载均衡配置策略同步至内存中。
[0034] 根据步骤S110中的变更通知,将变更后的负载均衡配置策略同步至内存 中,从而达到可实时获取变更后的负载均衡配置策略的目的。
[0035] 可选的,可通过全量同步的方式,将变更后的负载均衡配置策略同步至 内存中。如,当步骤S110中每当监听到变更通知时,本步骤中将分布式配置 管理中心存储的变更后的所有的负载均衡配置策略同步至内存中。
[0036] 可选的,可通过增量同步的方式,将变更后的负载均衡配置策略同步至 内存中。例如,当步骤S110中每当监听到变更通知时,根据变更通知,将分 布式配置管理中心存储的负载均衡配置策略中发生变更的部分同步至内存中。 采用该方法可降低所需同步的数据量,提高同步效率。
[0037] 步骤S130,接收业务请求,根据内存中的负载均衡配置策略确定与业务 请求对应的服务节点。
[0038] 具体地,接收业务请求,根据当前内存中存储的负载均衡配置策略对业 务请求进行解析,根据解析结果确定出与该业务请求相对应的服务节点。可 选的,当接收到的业务请求为多个时,分别根据内存中的负载均衡配置策略 确定与每一个业务请求对应的服务节点。
[0039] 步骤S140,将业务请求重定向至对应的服务节点进行处理。
[0040] 具体地,根据步骤S130中确定的与业务请求相对应的服务节点,将业务 请求重定向至对应的服务节点进行处理。
[0041] 根据本实施例提供的分布式动态负载均衡方法,通过实时监听分布式配 置管理中心存储的负载均衡配置策略的变更通知,并根据变更通知,将变更 后的负载均衡配置策略同步至内存中,从而可实现快速地对负载均衡配置策 略的更新;并且,根据内存中的负载均衡配置策略确定与业务请求对应的服 务节点,并将业务请求重定向至对应的服务节点进行处理。采用本方案,实 现了实时地根据动态更新的负载均衡配置策略对业务请求进行路由,提高了 对业务请求路由的灵活性;并避免了现有技术中对负载均衡策略更新效率低, 以及在对负载均衡策略进行更新后,无法及时地根据更新后的负载均衡策略 对业务请求进行路由的弊端。
[0042] 图2示出了根据本发明另一个实施例提供的分布式动态负载均衡方法的 流程示意图。如图2所示,该方法包括:
[0043] 步骤S210,实时监听分布式配置管理中心存储的负载均衡配置策略的变 更通知。
[0044] 其中,分布式配置管理中心可以为基于zookeeper的分布式应用管理协调 中心。当服务上线后,zookeeper分布式应用程序协调系统中的服务发现组件 自动调用服务注册接口将服务注册到zookeeper上。并且,zookeeper中采用 树形结构的数据存储结构,从而避免了注册到zookeeper上时发生命名冲突的 弊端,保证了全局唯一性。进一步地,当服务节点发生变更后会通知订阅该 服务节点的所有节点。
[0045] 通过在分布式配置管理中心存储负载均衡配置策略,可提高配置策略的 可靠性,并便于对负载均衡配置策略进行管理及更改。例如,zookeeper通过 健康管理机制可获知各个服务节点的健康状态,则通过zookeeper这一分布式 配置管理中心可准确地获知各个服务节点的信息,从而便于根据各个服务节 点的信息针对存储的负载均衡配置策略进行变更。如,某一服务节点下线之 后,可动态地调整负载均衡配置策略,以供在后续为业务请求分配服务节点 时屏蔽该下线服务节点,从而提高对业务请求的处理速率。
[0046] 具体地,本步骤中的分布式配置管理中心存储的负载均衡配置策略中至 少包含有重写规则和/或路由规则。其中,重写规则用于对业务请求进行重写 替换,路由规则用于根据业务请求确定与其相对应的服务节点。进一步可选 的,本步骤中的分布式配置管理中心存储的路由规则中具体包括URI(Uniform Resource Identifier,统一资源标识符)与名字空间的对应关系,以及至少一个 匹配模式。其中,匹配模式包括精确匹配模式、带修饰的前缀匹配模式、区 分大小写的正则匹配模式、不区分大小写的正则匹配模式、不带修饰的前缀 匹配模式、和/或通用匹配模式。
[0047] 可选的,分布式配置管理中心提供有对重写规则和/或路由规则进行配置 的接口。通过重写规则和/或路由规则接口可实现对重写规则和/或路由规则的 动态调整,从而实现分布式配置管理中心中存储的负载均衡配置策略的动态 更新。进一步可选的,该接口可以为http接口,采用http接口可便于对负载 均衡配置策略的管理与更新,并为负载均衡配置策略的可视化更新操作提供 基础,也可适配多数生产环境服务器。
[0048] 由于分布式配置管理中心存储的负载均衡配置策略可动态更新,当发生 变更时,会产生相应的变更通知,则本步骤中可监听分布式配置管理中心存 储的负载均衡配置策略的变更通知。其中,具体的监听方式本领域技术人员 可自行设置。可选的,变更通知中可仅包含负载均衡配置策略发生变更的标 识信息,如变更通知中仅包含标识参数(T表明负载均衡配置策略发生变更); 或者,变更通知中也可包负载均衡配置策略的详细的变更细节,如,变更通 知中可包含负载均衡配置策略中第n部分发生了变更(n为大于或等于1的整 数),而其他部分未发生变更的变更信息。
[0049] 步骤S220,根据变更通知,通过共享内存组件,将变更后的负载均衡配 置策略同步至内存中。
[0050] 其中,当分布式配置管理中心为基于zookeeper的分布式应用管理协调中 心时,可通过zookeeper中的qconf agent共享内存组件,将变更后的负载均衡 配置策略同步至内存中。通过共享内存组件的应用,可避免负载均衡配置策 略在发生变更时频繁的重载,从而提高负载均衡配置策略的更新同步效率。
[0051] 具体地,通过共享内存组件读取分布式配置管理中心中配置的URI与名 字空间的对应关系以及至少一个匹配模式,将URI与名字空间的对应关系以 及至少一个匹配模式同步至内存中。
[0052] 进一步地,在将URI与名字空间的对应关系以及至少一个匹配模式同步 至内存中后,可为匹配模式设置相应的优先级。例如,可采用如表1所示的 优先级设置方式,表1所示的优先级设置方式中,精确匹配模式优先级最高, 而通用匹配模式优先级最低。本实施例中优先级的设置方式包括但不限于表1 中的设置方式,本领域技术人员可根据实际业务需求自行设置,本实施例对 此不作限定。
[0053] 表1
[0054]匹配模式 优先级
精确匹配模式 1
带修饰的前缀匹配模式 2
区分大小写的正则匹配模式 3
不区分大小写的正则匹配模式 4
不带修饰的前缀匹配模式 5
通用匹配模式 6
[0055] 可选的,在将变更后的负载均衡配置策略同步至内存的过程中,可采用 全量同步的方式,将变更后的负载均衡配置策略同步至内存中。如,当步骤 S210中每当监听到变更通知时,本步骤中将分布式配置管理中心存储的变更 后的所有的负载均衡配置策略同步至内存中。或者,也可通过增量同步的方 式,将变更后的负载均衡配置策略同步至内存中。例如,当步骤S210中每当 监听到变更通知时,根据变更通知,将分布式配置管理中心存储的负载均衡 配置策略中发生变更的部分同步至内存中。采用该方法可降低同步数据的数 据量,提高同步效率。
[0056] 步骤S230,接收业务请求,提取业务请求中的URI信息,根据内存中存 储的路由规则确定与业务请求中的URI信息相匹配的名字空间,确定该名字 空间对应的服务节点为与业务请求对应的服务节点。
[0057] 具体地,在接收到业务请求时,提取该业务请求中的URI信息。例如, 在接收到http业务请求时,可抽取该http请求中的URI字段,从而获取该业 务请求中的URI信息。
[0058] 进一步地,根据内存中存储的路由规则确定与URI信息相匹配的名字空 间。首先,根据内存中存储的匹配模式及相应的优先级确定URI信息相对应 的匹配模式。具体地,按照优先级由高到低的顺序,依次利用路由规则中的 一个匹配模式与该URI信息进行匹配,直至匹配成功,则停止匹配,并将当 前匹配成功的匹配模式确定为与该URI信息相对应的匹配模式。例如,首先 按照精确匹配模式与该URI信息进行匹配,若匹配成功,则确定精确匹配模 式为与该URI信息相对应的匹配模式;否则,进一步按照带修饰的前缀匹配 模式对URI信息进行匹配,若匹配成功,则确定带修饰的前缀匹配模式为与 该URI信息相对应的匹配模式,从而采用该种方法确定与该URI信息相对应 的匹配模式。其次,在确定了URI信息相对应的匹配模式后,按照该匹配模 式对URI信息进行解析,并根据解析后的结果以及内存中存储的URI信息与 名字空间的对应关系确定与该URI信息相对应的名字空间。
[0059] 可选的,在根据路由规则确定与URI信息相匹配的名字空间之前,还可 根据内存中存储的重写规则对业务请求中的URI信息进行重写,获得重写后 的URI信息。可选的,URI信息可经过一次或多次的重写操作。在对URI信 息进行重写之后,获得重写后的URI信息,则进一步根据内存中存储的路由 规则确定与重写后的URI信息相对应的名字空间。通过对URI的重写,可进 一步规范URI格式,实现伪静态地址(即将动态地址伪装成静态地址),并 能满足域名切换后地址跳转的需求。
[0060] 在确定了与URI信息相匹配的名字空间后,进一步将与该名字空间相对 应的服务节点确定为与业务请求对应的服务节点。
[0061] 步骤S240,将业务请求重定向至对应的服务节点进行处理。
[0062] 根据步骤S230中确定的与业务请求相对应的URI信息,以动态路由的方 式,将所述请求重定向至所述请求对应的服务节点,以供该服务节点对业务 请求进行处理。
[0063] 根据本实施例提供的分布式动态负载均衡方法,通过实时监听分布式配 置管理中心存储的负载均衡配置策略的变更通知,并根据变更通知,通过共 享内存组件,将变更后的负载均衡配置策略同步至内存中,从而可实现快速 地对负载均衡配置策略的更新;并接收业务请求,提取业务请求中的URI信 息,根据内存中存储的路由规则确定与业务请求中的URI信息相匹配的名字 空间,确定该名字空间对应的服务节点为与业务请求对应的服务节点,并将 业务请求重定向至对应的服务节点进行处理。采用本方案,实现了实时地根 据动态更新的负载均衡配置策略对业务请求进行路由,提高了对业务请求路 由的灵活性;并避免了现有技术中对负载均衡策略更新效率低,以及在对负 载均衡策略进行更新后,无法及时地根据更新后的负载均衡策略对业务请求 进行路由的弊端;并且,在分布式配置管理中心中提供有对重写规则和/或路 由规则进行配置的接口,从而进一步地便于对重写规则和/或路由规则的调整 与管理;而且,通过共享内存组件实现负载均衡配置策略的同步,可进一步 提高同步效率,避免负载均衡配置策略的频繁重载,从而进一步提高路由效 率。
[0064] 根据本发明一个实施例提供了一种非易失性计算机存储介质,其中,所 述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上 述任意方法实施例中的方法。
[0065] 可执行指令具体可以用于使得处理器执行以下操作:
[0066] 实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;根 据所述变更通知,将变更后的负载均衡配置策略同步至内存中;接收业务请 求,根据内存中的所述负载均衡配置策略确定与所述业务请求对应的服务节 点;将所述业务请求重定向至所述服务节点进行处理。
[0067] 在一种可选的实施方式中,所述负载均衡配置策略至少包含:重写规则 和/或路由规则。
[0068] 在一种可选的实施方式中,所述分布式配置管理中心提供有对重写规则 和/或路由规则进行配置的接口。
[0069] 在一种可选的实施方式中,可执行指令具体可以用于使得处理器执行以 下操作:
[0070] 提取所述业务请求中的URI信息,根据所述路由规则确定与所述URI信 息相匹配的名字空间;确定所述名字空间对应的服务节点为与所述业务请求 对应的服务节点。
[0071] 在一种可选的实施方式中,可执行指令具体可以用于使得处理器执行以 下操作:
[0072] 根据所述重写规则对所述业务请求中的URI信息进行重写,获得重写后 的URI信息;则所述根据所述路由规则确定与所述URI信息相匹配的名字空 间进一步包括:根据所述路由规则确定与所述重写后的URI信息相匹配的名 字空间。
[0073] 在一种可选的实施方式中,可执行指令具体可以用于使得处理器执行以 下操作:
[0074] 根据所述变更通知,通过共享内存组件,将变更后的负载均衡配置策略 同步至内存中。
[0075] 在一种可选的实施方式中,可执行指令具体可以用于使得处理器执行以 下操作:
[0076] 通过共享内存组件读取分布式配置管理中心中配置的URI与名字空间的 对应关系以及至少一个匹配模式,将所述URI与名字空间的对应关系以及至 少一个匹配模式同步至内存中。
[0077] 在一种可选的实施方式中,可执行指令具体可以用于使得处理器执行以 下操作:
[0078] 根据所述URI与名字空间的对应关系以及至少一个匹配模式,为所述匹 配模式设置相应的优先级。
[0079] 在一种可选的实施方式中,所述分布式配置管理中心为基于zookeeper的 分布式应用管理协调中心。
[0080] 图3示出了根据本发明一个实施例提供的一种计算设备的结构示意图, 本发明具体实施例并不对计算设备的具体实现做限定。
[0081] 如图3所示,该计算设备可以包括:处理器(processor)302、通信接口 (Communications Interface)304、存储器(memory)306、以及通信总线308。
[0082] 其中:处理器302、通信接口304、以及存储器306通过通信总线308完 成相互间的通信。通信接口304,用于与其它设备比如客户端或其它服务器等 的网元通信。处理器302,用于执行程序310,具体可以执行上述方法实施例 中的相关步骤。
[0083] 程序310具体可以用于使得处理器302执行以下操作:
[0084] 实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;
[0085] 根据所述变更通知,将变更后的负载均衡配置策略同步至内存中;
[0086] 接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请 求对应的服务节点;
[0087] 将所述业务请求重定向至所述服务节点进行处理。
[0088] 在一种可选的实施方式中,所述负载均衡配置策略至少包含:重写规则 和/或路由规则。
[0089] 在一种可选的实施方式中,所述分布式配置管理中心提供有对重写规则 和/或路由规则进行配置的接口。
[0090] 在一种可选的实施方式中,程序310具体可以用于使得处理器302执行 以下操作:
[0091] 提取所述业务请求中的URI信息,根据所述路由规则确定与所述URI信 息相匹配的名字空间;确定所述名字空间对应的服务节点为与所述业务请求 对应的服务节点。
[0092] 在一种可选的实施方式中,程序310具体可以用于使得处理器302执行 以下操作:
[0093] 根据所述重写规则对所述业务请求中的URI信息进行重写,获得重写后 的URI信息;则所述根据所述路由规则确定与所述URI信息相匹配的名字空 间进一步包括:根据所述路由规则确定与所述重写后的URI信息相匹配的名 字空间。
[0094] 在一种可选的实施方式中,程序310具体可以用于使得处理器302执行 以下操作:
[0095] 根据所述变更通知,通过共享内存组件,将变更后的负载均衡配置策略 同步至内存中。
[0096] 在一种可选的实施方式中,程序310具体可以用于使得处理器302执行 以下操作:
[0097] 通过共享内存组件读取分布式配置管理中心中配置的URI与名字空间的 对应关系以及至少一个匹配模式,将所述URI与名字空间的对应关系以及至 少一个匹配模式同步至内存中。
[0098] 在一种可选的实施方式中,程序310具体可以用于使得处理器302执行 以下操作:
[0099] 根据所述URI与名字空间的对应关系以及至少一个匹配模式,为所述匹 配模式设置相应的优先级。
[0100] 在一种可选的实施方式中,所述分布式配置管理中心为基于zookeeper的 分布式应用管理协调中心。
[0101] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固 有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述, 构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定 编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容, 并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0102] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本 发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未 详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0103] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个 或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时 被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开 的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求 中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映 的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循 具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利 要求本身都作为本发明的单独实施例。
[0104] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自 适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以 把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可 以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者 单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴 随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或 者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴 随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相 似目的的替代特征来代替。
[0105] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其 它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组 合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权 利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使 用。
[0106] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制, 并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实 施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要 求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于 元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以 借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在 列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个 硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。 可将这些单词解释为名称。
[0107] 本发明公开了:A1.一种分布式动态负载均衡方法,包括:
[0108] 实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;
[0109] 根据所述变更通知,将变更后的负载均衡配置策略同步至内存中;
[0110] 接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请 求对应的服务节点;
[0111] 将所述业务请求重定向至所述服务节点进行处理。
[0112] A2.根据A1所述的方法,其中,所述负载均衡配置策略至少包含:重写 规则和/或路由规则。
[0113] A3.根据A2所述的方法,其中,所述分布式配置管理中心提供有对重写 规则和/或路由规则进行配置的接口。
[0114] A4.根据A2或A3中任一项所述的方法,其中,所述根据内存中的所述 负载均衡配置策略确定与所述业务请求对应的服务节点进一步包括:
[0115] 提取所述业务请求中的URI信息,根据所述路由规则确定与所述URI信 息相匹配的名字空间;
[0116] 确定所述名字空间对应的服务节点为与所述业务请求对应的服务节点。
[0117] A5.根据A4所述的方法,其中,在所述根据所述路由规则确定与所述 URI信息相匹配的名字空间之前,所述方法还包括:
[0118] 根据所述重写规则对所述业务请求中的URI信息进行重写,获得重写后 的URI信息;
[0119] 则所述根据所述路由规则确定与所述URI信息相匹配的名字空间进一步 包括:
[0120] 根据所述路由规则确定与所述重写后的URI信息相匹配的名字空间。
[0121] A6.根据A1-A5任一项所述的方法,其中,所述根据所述变更通知,将 变更后的负载均衡配置策略同步至内存中进一步包括:
[0122] 根据所述变更通知,通过共享内存组件,将变更后的负载均衡配置策略 同步至内存中。
[0123] A7.根据A6所述的方法,其中,所述将变更后的负载均衡配置策略同步 至内存中进一步包括:
[0124] 通过共享内存组件读取分布式配置管理中心中配置的URI与名字空间的 对应关系以及至少一个匹配模式,将所述URI与名字空间的对应关系以及至 少一个匹配模式同步至内存中。
[0125] A8.根据A7所述的方法,其中,所述方法还包括:
[0126] 根据所述URI与名字空间的对应关系以及至少一个匹配模式,为所述匹 配模式设置相应的优先级。
[0127] A9.根据A1-A8任一项所述的方法,其中,所述分布式配置管理中心为  基于zookeeper的分布式应用管理协调中心。
[0128] 本发明还公开了:B10.一种计算设备,所述计算设备包括:处理器、存 储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过 所述通信总线完成相互间的通信;
[0129] 所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器 执行以下操作:
[0130] 实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;
[0131] 根据所述变更通知,将变更后的负载均衡配置策略同步至内存中;
[0132] 接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请 求对应的服务节点;
[0133] 将所述业务请求重定向至所述服务节点进行处理。
[0134] B11.根据B10所述的计算设备,其中,所述负载均衡配置策略至少包含: 重写规则和/或路由规则。
[0135] B12.根据B11所述的计算设备,其中,所述分布式配置管理中心提供有 对重写规则和/或路由规则进行配置的接口。
[0136] B13.根据B11或B12中任一项所述的计算设备,其中,所述可执行指令 进一步使所述处理器执行以下操作:
[0137] 提取所述业务请求中的URI信息,根据所述路由规则确定与所述URI信 息相匹配的名字空间;
[0138] 确定所述名字空间对应的服务节点为与所述业务请求对应的服务节点。
[0139] B14.根据B13所述的计算设备,其中,所述可执行指令进一步使所述处 理器执行以下操作:
[0140] 根据所述重写规则对所述业务请求中的URI信息进行重写,获得重写后 的URI信息;
[0141] 则所述根据所述路由规则确定与所述URI信息相匹配的名字空间进一步 包括:
[0142] 根据所述路由规则确定与所述重写后的URI信息相匹配的名字空间。
[0143] B15.根据B10-B14任一项所述的计算设备,其中,所述可执行指令进一 步使所述处理器执行以下操作:
[0144] 根据所述变更通知,通过共享内存组件,将变更后的负载均衡配置策略 同步至内存中。
[0145] B16.根据B15所述的计算设备,其中,所述可执行指令进一步使所述处 理器执行以下操作:
[0146] 通过共享内存组件读取分布式配置管理中心中配置的URI与名字空间的 对应关系以及至少一个匹配模式,将所述URI与名字空间的对应关系以及至 少一个匹配模式同步至内存中。
[0147] B17.根据B16所述的计算设备,其中,所述可执行指令进一步使所述处 理器执行以下操作:
[0148] 根据所述URI与名字空间的对应关系以及至少一个匹配模式,为所述匹 配模式设置相应的优先级。
[0149] B18.根据B10-B17任一项所述的计算设备,其中,所述分布式配置管理 中心为基于zookeeper的分布式应用管理协调中心。
[0150] 本发明还公开了:C19.一种计算机存储介质,所述计算机存储介质中存 储有至少一可执行指令,所述可执行指令使处理器执行以下操作:
[0151] 实时监听分布式配置管理中心存储的负载均衡配置策略的变更通知;
[0152] 根据所述变更通知,将变更后的负载均衡配置策略同步至内存中;
[0153] 接收业务请求,根据内存中的所述负载均衡配置策略确定与所述业务请 求对应的服务节点;
[0154] 将所述业务请求重定向至所述服务节点进行处理。
[0155] C20.根据C19所述的计算机存储介质,其中,所述负载均衡配置策略至 少包含:重写规则和/或路由规则。
[0156] C21.根据C20所述的计算机存储介质,其中,所述分布式配置管理中心 提供有对重写规则和/或路由规则进行配置的接口。
[0157] C22.根据C20或C21中任一项所述的计算机存储介质,其中,所述可执 行指令进一步使所述处理器执行以下操作:
[0158] 提取所述业务请求中的URI信息,根据所述路由规则确定与所述URI信 息相匹配的名字空间;
[0159] 确定所述名字空间对应的服务节点为与所述业务请求对应的服务节点。
[0160] C23.根据C22所述的计算机存储介质,其中,所述可执行指令进一步使 所述处理器执行以下操作:
[0161] 根据所述重写规则对所述业务请求中的URI信息进行重写,获得重写后 的URI信息;
[0162] 则所述根据所述路由规则确定与所述URI信息相匹配的名字空间进一步 包括:
[0163] 根据所述路由规则确定与所述重写后的URI信息相匹配的名字空间。
[0164] C24.根据C19-C23任一项所述的计算机存储介质,其中,所述可执行指 令进一步使所述处理器执行以下操作:
[0165] 根据所述变更通知,通过共享内存组件,将变更后的负载均衡配置策略 同步至内存中。
[0166] C25.根据C24所述的计算机存储介质,其中,所述可执行指令进一步使 所述处理器执行以下操作:
[0167] 通过共享内存组件读取分布式配置管理中心中配置的URI与名字空间的 对应关系以及至少一个匹配模式,将所述URI与名字空间的对应关系以及至 少一个匹配模式同步至内存中。
[0168] C26.根据C25所述的计算机存储介质,其中,所述可执行指令进一步使 所述处理器执行以下操作:
[0169] 根据所述URI与名字空间的对应关系以及至少一个匹配模式,为所述匹 配模式设置相应的优先级。
[0170] C27.根据C19-C26任一项所述的计算机存储介质,其中,所述分布式配 置管理中心为基于zookeeper的分布式应用管理协调中心。