一种跨集群通信方法及装置、设备及存储介质转让专利

申请号 : CN202311422615.9

文献号 : CN117155934B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵涛霍威杨石富

申请人 : 北京比格大数据有限公司

摘要 :

本公开涉及一种跨集群通信方法及装置、设备及存储介质,所述方法包括:在中心集群中部署预设的服务器组件;以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种;服务器组件部署完成后,对外暴露服务器组件TCP服务地址;代理组件部署完成后,通过代理组件的部署文件中的服务器组件服务地址,将代理组件所绑定的业务元数据信息注册到服务器组件的元数据库中;服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输,能够实现集群与集群之间的通信。

权利要求 :

1.一种跨集群通信方法,其特征在于,应用于跨集群通信平台,所述跨集群通信平台包括中心集群和多个与所述中心集群分别连接的集群,所述方法包括:在中心集群中部署预设的服务器组件;

以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,其中,代理组件的部署文件中包括与代理组件连接的服务器组件服务地址和业务ID, 访问组件的部署文件中包括与访问组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的映射的虚拟代理业务服务地址;

服务器组件部署完成后,对外暴露服务器组件TCP服务地址,其中,服务器组件用于提供跨集群网络连接通道;

代理组件部署完成后,通过代理组件的部署文件中的服务器组件服务地址,将代理组件所绑定的业务元数据信息注册到服务器组件的元数据库中,其中,业务元数据信息包括业务ID;

服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输。

2.根据权利要求1所述的方法,其特征在于,在所述服务器组件接收访问组件的访问请求之前,所述方法还包括:服务器组件校验业务元数据信息是否准确,并在业务元数据信息准确的情况下,检测代理组件所绑定的业务的连通性;

代理组件校验所绑定的业务是否存在,并在所绑定的业务存在的情况下,测试代理组件所绑定的业务服务地址与服务器组件是否连通;

在代理组件所绑定的业务服务地址与服务器组件连通的情况下,服务器组件等待访问组件的访问请求。

3.根据权利要求1所述的方法,其特征在于,所述服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输,包括:访问组件部署完成后,接收与访问组件绑定的业务服务的数据查询请求,根据访问组件部署文件中服务器组件服务地址,利用STCP协议与服务器组件建立访问通道,并通过访问通道对服务器组件发送访问请求;

服务器组件校验元数据库中是否存在访问请求中业务ID,在元数据库中存在访问请求中业务ID的情况下,校验访问请求中业务服务密钥是否与元数据库中业务ID对应,在访问请求中业务服务密钥与业务ID对应的情况下,将访问通道代理至该业务ID对应的代理组件地址;

代理组件访问业务ID对应的业务服务,并将业务服务返回的业务数据通过访问通道原路返回至访问组件。

4.根据权利要求3所述的方法,其特征在于,所述将访问通道代理至该业务ID对应的代理组件地址,包括:按照该业务ID对应的代理组件地址,在该业务ID对应的代理组件查询已知数据存储库中的地址映射关系对照表,将访问请求中的虚拟代理业务服务地址转换为代理组件所绑定的业务服务地址,以通过代理组件访问业务ID对应的业务服务。

5.根据权利要求1所述的方法,其特征在于,所述以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,包括:获取与目标业务相关的目标集群;

在目标集群的业务需求为第一预设需求的情况下,在目标集群中部署代理组件,其中,第一预设需求为将业务数据推送至远端;

在目标集群的业务需求为第二预设需求的情况下,在目标集群中部署访问组件,其中,第二预设需求为从远端拉取业务数据。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

在目标业务的数量超过1个且目标集群的业务需求包括第一预设需求和第二预设需求的情况下,在目标集群中部署代理组件和访问组件。

7.根据权利要求5所述的方法,其特征在于,所述在目标集群的业务需求为第二预设需求的情况下,在目标集群中部署访问组件,包括:在目标集群的业务需求为第二预设需求的情况下,获取与目标集群对应的业务ID,并根据业务ID查询与其对应的目标代理组件;

根据业务ID对应且与目标代理组件连接的业务服务地址,映射出虚拟代理业务服务地址;

将虚拟代理业务服务地址作为访问组件的部署文件,在目标集群中部署访问组件。

8.一种跨集群通信装置,其特征在于,应用于跨集群通信平台,所述跨集群通信平台包括中心集群和多个与所述中心集群分别连接的集群,所述装置包括:第一部署模块,用于在中心集群中部署预设的服务器组件;

第二部署模块,用于以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,其中,代理组件的部署文件中包括与代理组件连接的服务器组件服务地址和业务ID, 访问组件的部署文件中包括与访问组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的映射的虚拟代理业务服务地址;

暴露模块,用于服务器组件部署完成后,对外暴露服务器组件TCP服务地址,其中,服务器组件用于提供跨集群网络连接通道;

注册模块,用于代理组件部署完成后,通过代理组件的部署文件中的服务器组件服务地址,将代理组件所绑定的业务元数据信息注册到服务器组件的元数据库中,其中,业务元数据信息包括业务ID;

构建模块,用于服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输。

9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1‑7中任一项所述的跨集群通信方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1‑7中任一项所述的跨集群通信方法。

说明书 :

一种跨集群通信方法及装置、设备及存储介质

技术领域

[0001] 本公开涉及云计算技术领域,尤其涉及一种跨集群通信方法及装置、设备及存储介质。

背景技术

[0002] 在云平台建设初期,单集群就能基本满足企业或政府的业务需求,但随着对云计算的需求不断增加,单集群承载能力有限、容灾能力有限等问题日渐突出,单集群已经无法满足日益新增的需求,自然而然多集群编排就成了目前常用的方案,为了实现多集群编排,服务的跨集群通信是首先要解决的问题。
[0003] 相关技术中,对于服务跨集群通信的需求,主要是采用以下两种技术方案来解决:
[0004] 第一种,基于星型网络技术,不同集群(类似网络拓扑中的节点概念)需要先将各自的业务服务暴露在中心集群之上(类似网络拓扑中的中心节点概念)。各集群通过将业务服务暴露推送给中心集群,然后由中心集群进行数据转发及路由的方式获取与其它集群服务的通信。
[0005] 第二种,基于网状网络拓扑结构,对需要进行通信的集群采用打通防火墙、一对一拉通信专线(相互连接网络拓扑中的所有节点)的方式实现跨集群通信。
[0006] 然而,第一种方案中,各集群的业务服务暴露在中心集群有以下缺陷:若各集群的业务服务均统一暴露在中心集群上,会导致中心集群的公共端口被占用,如业务数据过多,可能存在中心集群端口不够分配的情况;暴露在中心集群上的业务服务数据不安全,理论上是可以被所有访问中心集群的应用去访问获取到的,无形之中也增大了数据被泄露的风险。
[0007] 第二种方案中,网状网络采用一对一拉专线的方式,缺少对集群之间通信的管理能力;网状网络因为其拓扑结构较为复杂,实施成本相对较高,最初构建和后续的维护费时费力,而且存在较高的冗余连接风险。

发明内容

[0008] 为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种跨集群通信方法及装置、设备及存储介质。
[0009] 第一方面,本公开的实施例提供了一种跨集群通信方法,应用于跨集群通信平台,所述跨集群通信平台包括中心集群和多个与所述中心集群分别连接的集群,所述方法包括:
[0010] 在中心集群中部署预设的服务器组件;
[0011] 以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,其中,代理组件的部署文件中包括与代理组件连接的服务器组件服务地址和业务ID, 访问组件的部署文件中包括与访问组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的映射的虚拟代理业务服务地址;
[0012] 服务器组件部署完成后,对外暴露服务器组件TCP服务地址,其中,服务器组件用于提供跨集群网络连接通道;
[0013] 代理组件部署完成后,通过代理组件的部署文件中的服务器组件服务地址,将代理组件所绑定的业务元数据信息注册到服务器组件的元数据库中,其中,业务元数据信息包括业务ID;
[0014] 服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输。
[0015] 在一种可能的实施方式中,在所述服务器组件接收访问组件的访问请求之前,所述方法还包括:
[0016] 服务器组件校验业务元数据信息是否准确,并在业务元数据信息准确的情况下,检测代理组件所绑定的业务的连通性;
[0017] 代理组件校验所绑定的业务是否存在,并在所绑定的业务存在的情况下,测试代理组件所绑定的业务服务地址与服务器组件是否连通;
[0018] 在代理组件所绑定的业务服务地址与服务器组件连通的情况下,服务器组件等待访问组件的访问请求。
[0019] 在一种可能的实施方式中,所述服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输,包括:
[0020] 访问组件部署完成后,接收与访问组件绑定的业务服务的数据查询请求,根据访问组件部署文件中服务器组件服务地址,利用STCP协议与服务器组件建立访问通道,并通过访问通道对服务器组件发送访问请求;
[0021] 服务器组件校验元数据库中是否存在访问请求中业务ID,在元数据库中存在访问请求中业务ID的情况下,校验访问请求中业务服务密钥是否与元数据库中业务ID对应,在访问请求中业务服务密钥与业务ID对应的情况下,将访问通道代理至该业务ID对应的代理组件地址;
[0022] 代理组件访问业务ID对应的业务服务,并将业务服务返回的业务数据通过访问通道原路返回至访问组件。
[0023] 在一种可能的实施方式中,所述将访问通道代理至该业务ID对应的代理组件地址,包括:
[0024] 按照该业务ID对应的代理组件地址,在该业务ID对应的代理组件查询已知数据存储库中的地址映射关系对照表,将访问请求中的虚拟代理业务服务地址转换为代理组件所绑定的业务服务地址,以通过代理组件访问业务ID对应的业务服务。
[0025] 在一种可能的实施方式中,所述以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,包括:
[0026] 获取与目标业务相关的目标集群;
[0027] 在目标集群的业务需求为第一预设需求的情况下,在目标集群中部署代理组件,其中,第一预设需求为将业务数据推送至远端;
[0028] 在目标集群的业务需求为第二预设需求的情况下,在目标集群中部署访问组件,其中,第二预设需求为从远端拉取业务数据。
[0029] 在一种可能的实施方式中,所述方法还包括:
[0030] 在目标业务的数量超过1个且目标集群的业务需求包括第一预设需求和第二预设需求的情况下,在目标集群中部署代理组件和访问组件。
[0031] 在一种可能的实施方式中,所述在目标集群的业务需求为第二预设需求的情况下,在目标集群中部署访问组件,包括:
[0032] 在目标集群的业务需求为第二预设需求的情况下,获取与目标集群对应的业务ID,并根据业务ID查询与其对应的目标代理组件;
[0033] 根据业务ID对应且与目标代理组件连接的业务服务地址,映射出虚拟代理业务服务地址;
[0034] 将虚拟代理业务服务地址作为访问组件的部署文件,在目标集群中部署访问组件。
[0035] 第二方面,本公开的实施例提供了一种跨集群通信装置,应用于跨集群通信平台,所述跨集群通信平台包括中心集群和多个与所述中心集群分别连接的集群,所述装置包括:
[0036] 第一部署模块,用于在中心集群中部署预设的服务器组件;
[0037] 第二部署模块,用于以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,其中,代理组件的部署文件中包括与代理组件连接的服务器组件服务地址和业务ID, 访问组件的部署文件中包括与访问组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的映射的虚拟代理业务服务地址;
[0038] 暴露模块,用于服务器组件部署完成后,对外暴露服务器组件TCP服务地址,其中,服务器组件用于提供跨集群网络连接通道;
[0039] 注册模块,用于代理组件部署完成后,通过代理组件的部署文件中的服务器组件服务地址,将代理组件所绑定的业务元数据信息注册到服务器组件的元数据库中,其中,业务元数据信息包括业务ID;
[0040] 构建模块,用于服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输。
[0041] 第三方面,本公开的实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
[0042] 存储器,用于存放计算机程序;
[0043] 处理器,用于执行存储器上所存放的程序时,实现上述的跨集群通信方法。
[0044] 第四方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的跨集群通信方法。
[0045] 本公开实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:
[0046] 本公开实施例所述的跨集群通信方法,在中心集群中部署预设的服务器组件,其中,一个服务器组件为集群中部署的多个代理组件和访问组件建立通道;以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,其中,一个代理组件包括至少一个业务,代理组件的部署文件中包括与代理组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的业务服务地址和业务服务密钥, 访问组件的部署文件中包括与访问组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的映射的虚拟代理业务服务地址和业务服务密钥;服务器组件部署完成后,对外暴露服务器组件TCP服务地址,其中,服务器组件用于提供跨集群网络连接通道;代理组件部署完成后,通过代理组件的部署文件中的服务器组件服务地址,将代理组件所绑定的业务元数据信息注册到服务器组件的元数据库中,其中,业务元数据信息包括业务ID和业务服务密钥;服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输,能够实现集群与集群之间的通信,中心集群的服务器组件只负责提供通道,撮合部署代理组件的集群与部署访问组件的集群的连接。

附图说明

[0047] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0048] 为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0049] 图1示意性示出了根据本公开实施例的跨集群通信方法流程示意图;
[0050] 图2示意性示出了根据本公开实施例的集群A与集群B之间的交互流程示意图;
[0051] 图3示意性示出了根据本公开实施例的跨集群通信装置的结构框图;
[0052] 图4示意性示出了根据本公开实施例的电子设备的结构框图。

具体实施方式

[0053] 为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0054] 参见图1,本公开的实施例提供了一种跨集群通信方法,应用于跨集群通信平台,所述跨集群通信平台包括中心集群和多个与所述中心集群分别连接的集群,所述方法包括:
[0055] S1,在中心集群中部署预设的服务器组件,其中,一个服务器组件为集群中部署的多个代理组件和访问组件建立通道。
[0056] S2,以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,其中,一个代理组件包括至少一个业务,代理组件的部署文件中包括与代理组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的业务服务地址和业务服务密钥, 访问组件的部署文件中包括与访问组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的映射的虚拟代理业务服务地址和业务服务密钥。
[0057] S3,服务器组件部署完成后,对外暴露服务器组件TCP服务地址,其中,服务器组件用于提供跨集群网络连接通道。
[0058] S4,代理组件部署完成后,通过代理组件的部署文件中的服务器组件服务地址,将代理组件所绑定的业务元数据信息注册到服务器组件的元数据库中,其中,业务元数据信息包括业务ID和业务服务密钥。
[0059] S5,服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输。
[0060] 在本实施例中,在步骤S5中,所述服务器组件接收访问组件的访问请求之前,所述方法还包括:
[0061] 服务器组件校验业务元数据信息是否准确,并在业务元数据信息准确的情况下,检测代理组件所绑定的业务的连通性,其中,业务元数据信息无缺漏且格式正确,判定业务元数据信息准确;
[0062] 代理组件校验所绑定的业务是否存在,并在所绑定的业务存在的情况下,测试代理组件所绑定的业务服务地址与服务器组件是否连通;
[0063] 在代理组件所绑定的业务服务地址与服务器组件连通的情况下,服务器组件等待访问组件的访问请求。
[0064] 在本实施例中,在步骤S5中,所述服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输,包括:
[0065] 访问组件部署完成后,接收与访问组件绑定的业务服务的数据查询请求,根据访问组件部署文件中服务器组件服务地址,利用STCP协议与服务器组件建立访问通道,并通过访问通道对服务器组件发送访问请求;
[0066] 服务器组件校验元数据库中是否存在访问请求中业务ID,在元数据库中存在访问请求中业务ID的情况下,校验访问请求中业务服务密钥是否与元数据库中业务ID对应,在访问请求中业务服务密钥与业务ID对应的情况下,将访问通道代理至该业务ID对应的代理组件地址;
[0067] 代理组件访问业务ID对应的业务服务,并将业务服务返回的业务数据通过访问通道原路返回至访问组件。
[0068] 在本实施例中,通过以下步骤建立访问通道:
[0069] 为访问组件提供通道建立部署包;
[0070] 在访问组件中安装通道建立部署包之后,接收到来自访问组件的第一通道建立请求,对所述通道建立请求进行校验,并向访问组件发送校验成功信息;
[0071] 接收访问组件响应于校验成功信息发起的第二通道建立请求,映射出与访问组件对应的虚拟代理地址,以通过虚拟代理地址与访问组件的数据交互实现服务器组件与访问组件之间的通信。
[0072] 在本实施例中,所述为访问组件提供通道建立部署包,包括:
[0073] 为访问组件提供服务器组件服务地址以及访问组件所在集群的集群ID和集群密钥作为通道建立部署包的配置参数,其中,所述集群密钥根据集群ID生成。
[0074] 在一些实施例中,在服务器组件获取每一个访问组件所在集群对应的唯一密钥,密钥用于支持后续服务端服务器组件与访问组件之间进行通信校验,服务器组件将集群ID和对应的密钥数据存储于分布式数据存储库中,用于后续第一通道建立请求的数据校验。
[0075] 在本实施例中,所述通道建立部署包包括服务器组件服务地址以及访问组件所在集群的集群ID和集群密钥。
[0076] 在本实施例中,所述对所述纳管请求进行校验,包括:
[0077] 从所述第一通道建立请求中解析访问组件所在集群的集群ID和集群密钥,查询本地预先存储的集群ID中是否存在访问组件所在集群的集群ID;
[0078] 在本地预先存储的集群ID中存在访问组件所在集群的集群ID的情况下,查询本地预先存储的集群密钥中是否存在访问组件所在集群的集群密钥;
[0079] 在本地预先存储的集群密钥中存在访问组件所在集群的集群密钥的情况下,对访问组件所在集群的集群ID和集群密钥进一步进行校验;
[0080] 在校验通过的情况下,向访问组件所在集群发送校验成功信息。
[0081] 在本实施例中,所述接收访问组件所在集群响应于校验成功信息发起的第二通道建立请求,映射出与访问组件所在集群对应的虚拟代理地址,包括:
[0082] 在访问组件响应于校验成功信息,获取访问组件所在集群的内网地址和token信息,并基于访问组件所在集群的内网地址和token信息发起建立通道请求后,接收建立通道请求,根据请求中访问组件所在集群的内网地址和token信息,映射出与访问组件所在集群对应的虚拟代理地址。
[0083] 在本实施例中,所述通过虚拟代理地址与客户端纳管组件的数据交互实现中心集群与目标集群之间的通信,包括:
[0084] 访问本地访问组件所在集群的虚拟代理地址,通过已建立的通道连接访问组件,并将虚拟代理地址发送至访问组件;
[0085] 在访问组件查询已知数据存储库中的地址映射关系对照表,将接收到的虚拟代理地址转换为的访问组件所在集群的内网地址,实现服务器组件与访问组件之间的通信。
[0086] 在本实施例中,所述将访问通道代理至该业务ID对应的代理组件地址,包括:
[0087] 按照该业务ID对应的代理组件地址,在该业务ID对应的代理组件查询已知数据存储库中的地址映射关系对照表,将访问请求中的虚拟代理业务服务地址转换为代理组件所绑定的业务服务地址,以通过代理组件访问业务ID对应的业务服务。
[0088] 在本实施例,步骤S2中,所述以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,包括:
[0089] 获取与目标业务相关的目标集群;
[0090] 在目标集群的业务需求为第一预设需求的情况下,在目标集群中部署代理组件,其中,第一预设需求为将业务数据推送至远端;
[0091] 在目标集群的业务需求为第二预设需求的情况下,在目标集群中部署访问组件,其中,第二预设需求为从远端拉取业务数据。
[0092] 在本实施例中,所述方法还包括:
[0093] 在目标业务的数量超过1个且目标集群的业务需求包括第一预设需求和第二预设需求的情况下,在目标集群中部署代理组件和访问组件。
[0094] 在本实施例中,所述在目标集群的业务需求为第二预设需求的情况下,在目标集群中部署访问组件,包括:
[0095] 在目标集群的业务需求为第二预设需求的情况下,获取与目标集群对应的业务ID,并根据业务ID查询与其对应的目标代理组件;
[0096] 根据业务ID对应且与目标代理组件连接的业务服务地址,映射出虚拟代理业务服务地址;
[0097] 将虚拟代理业务服务地址作为访问组件的部署文件,在目标集群中部署访问组件。
[0098] 在本实施例的跨集群通信方法中,访问组件借助服务器组件与代理组件建立STCP协议通道,实现了跨集群通信的目的,即基于星型网络的拓扑结构——通过服务器组件实现点到点的连接,实现了服务数据的跨集群通信。
[0099] 在本实施例的跨集群通信方法中,集群直接通过代理组件将业务服务信息注册到中心,而不是将其业务服务直接暴露给中心,避免了中心端口被占用、以及服务直接暴露在中心的不安全等问题,其它集群通过访问组件访问服务器组件,服务器组件校验通过后,为其建立连接通道至目标代理组件,从而实现了跨集群安全通信的目的。
[0100] 本实施例的跨集群通信方法实现跨集群服务的互连互通,包括数据传输、消息交换、协同计算等功能,适用于跨集群的分布式计算、资源共享、资源调度等需求场景。
[0101] 参见图2,集群A或集群B之间的交互过程包括:
[0102] 第一步,部署组件:
[0103] (1)在中心集群部署服务器组件
[0104] 用于提供跨集群网络连接通道,撮合代理组件和访问组件自动连接。
[0105] (2)在K8sA集群部署代理组件
[0106] K8s A集群部署代理组件,是将业务数据A推送至K8sB集群的前提条件。只有K8s A部署了代理组件,才能通过代理将业务数据推送暴露出来。其中,代理组件部署文件中包括服务器组件服务地址、业务ID、以及每个业务ID对应的业务服务地址、业务服务密钥等配置参数信息。
[0107] (3)在K8s B集群部署访问组件
[0108] K8s B集群部署访问组件,是从K8s A集群拉取目标服务数据的前提条件。其中,访问组件部署文件中包括要连接的服务器组件服务地址、业务ID、以及每个业务ID对应的虚拟代理业务服务地址、业务服务密钥等配置参数信息。
[0109] 第二步,跨集群网络通信
[0110] 中心集群服务器组件、K8s A‑代理组件、K8s B‑访问组件部署成功之后,实现跨集群网络通信包括:
[0111] 1.服务器组件部署成功后,对外暴露出一个TCP服务地址;
[0112] 2.K8s A‑代理组件部署成功后,将绑定的业务元数据信息注册到服务器组件的元数据库中;
[0113] 3.服务器组件接收到代理的注册信息后:
[0114] ①首先,校验注册的业务元数据是否准确(如判断信息是否有缺漏、格式是否正确);
[0115] ②元数据校验通过后,接着检测绑定的业务的连通性。
[0116] 4.K8s A‑代理组件访问业务服务A,校验业务ID是否存在,以及测试业务地址是否能连通;
[0117] 5.K8s B‑访问组件部署成功后,业务服务B发起访问K8s B‑访问组件的请求;
[0118] 6.K8s B‑访问组件根据其部署文件中的服务器组件服务地址,使用STCP协议建立连接通道,K8s B‑访问通过访问STCP通道连接到该服务器组件;
[0119] 7.连接到服务器组件后,服务器组件通过元数据库先查询校验该K8s B‑访问携带的业务服务密钥是否存在,如存在,再校验业务服务密钥与业务ID是否对应;
[0120] 8.业务ID和业务服务密钥均校验成功后,则实现了K8s B‑访问和K8s A‑代理的连接。服务器组件将STCP通道代理到该业务ID对应的的K8s A‑代理组件地址;
[0121] 9.K8s A‑代理组件访问对应的业务ID,业务服务A响应后,将对应的响应数据通过STCP通道原路返回至业务服务B中。
[0122] 在本实施例的跨集群通信方法基于星型网络拓扑结构技术——即通过服务器组件(Server)实现点(K8s B‑访问)到点(K8s A‑代理)的连接,实现了业务数据A和业务数据B的跨集群通信。
[0123] 在本实施例中,采用星型网络技术,在网络的拓扑结构中,所有的节点都直接连接到一个中心节点,形成一个星形结构,中心节点充当网络连接的通道,只负责为网络上其它节点(代理和访问)的连接提供和维护通道。
[0124] 以下为本公开的跨集群通信方法在集群之间资源调度中的应用过程:
[0125] 本公开的跨集群通信方法实现不同集群之间的通信之后,在目标集群中节点由于资源不足,需要调度其他集群中节点资源的情况下,可以通过健康系数Jlxs和负载影响指数Fzyx选取可使用节点,其中,健康系数Jlxs将评估节点的健康状态和稳定性;负载影响指数Fzyx将评估负载对节点性能的影响,将其他集群中节点中,健康系数最大或者负载影响指数最小的节点作为可使用节点。
[0126] 具体的,所述健康系数Jlxs通过以下公式获取:
[0127]
[0128] 式中,Wxcs表示为维修次数,w1、w2和w3分别表示为故障频率Gzpl、维修次数Wxcs和负载Fzz的权重值,其中, , , ,且,C表示为常数修正系数。
[0129] 上述的维修次数Wxcs通过记录节点或设备的维修历史来获取,其中包括维修的时间、原因、维修工作内容等信息;故障频率Gzpl通过监控系统或应用程序的日志来记录故障事件的发生时间、类型和详细信息,并根据记录的数据信息进行计算获取故障频率Gzpl;负载Fzz通过使用监控工具来监视节点或应用程序的负载情况,包括CPU利用率、内存使用率、网络流量等。
[0130] 所述负载影响指数Fzyx通过以下公式获取:
[0131]
[0132] 式中,Chs表示为CPU核数,a1、a2和a3分别表示为内存值Ncz、网络宽带Wlkd和CPU核数Chs的权重值,其中, , , ,且,B表示为常数修正系数。
[0133] 上述的CPU核数和内存值Ncz均通过在云服务提供商内部进行采集获取;网络宽带Wlkd通过使用网络流量监控工具来捕获和记录集群中各个节点的网络流量数据,帮助此方法了解每个节点的入站和出站流量和数据包传输速率等网络性能指标。
[0134] 本实施例的服务器组件只负责提供通信通道,实现点对点连接,中心节点的概念仍然存在,但在实际的通信过程中不再负责充当数据转发或路由的角色,无需再实际执行,只负责为代理和访问的自动连接发起STCP协议提供通道。
[0135] 本实施例的代理组件和访问组件,实现了跨集群代理(推送数据至远端)对访问(拉取远端数据)的一对一通信,相较于以往业务服务直接暴露在中心节点的方式,保障了数据通信的安全性。
[0136] 参见图3,本公开的实施例提供了一种跨集群通信装置,应用于跨集群通信平台,所述跨集群通信平台包括中心集群和多个与所述中心集群分别连接的集群,所述装置包括:
[0137] 第一部署模块11,用于在中心集群中部署预设的服务器组件,其中,一个服务器组件为集群中部署的多个代理组件和访问组件建立通道;
[0138] 第二部署模块12,用于以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,其中,一个代理组件包括至少一个业务,代理组件的部署文件中包括与代理组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的业务服务地址和业务服务密钥, 访问组件的部署文件中包括与访问组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的映射的虚拟代理业务服务地址和业务服务密钥;
[0139] 暴露模块13,用于服务器组件部署完成后,对外暴露服务器组件TCP服务地址,其中,服务器组件用于提供跨集群网络连接通道;
[0140] 注册模块14,用于代理组件部署完成后,通过代理组件的部署文件中的服务器组件服务地址,将代理组件所绑定的业务元数据信息注册到服务器组件的元数据库中,其中,业务元数据信息包括业务ID和业务服务密钥;
[0141] 构建模块15,用于服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输。
[0142] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0143] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0144] 上述实施例中,第一部署模块11、第二部署模块12、暴露模块13、注册模块14和构建模块15中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。第一部署模块11、第二部署模块12、暴露模块13、注册模块14和构建模块15中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一部署模块11、第二部署模块12、暴露模块13、注册模块14和构建模块15中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0145] 参见图4,本公开的实施例提供的电子设备,包括处理器1110、通信接口1120、存储器1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信;
[0146] 存储器1130,用于存放计算机程序;
[0147] 处理器1110,用于执行存储器1130上所存放的程序时,实现如下所示跨集群通信方法:
[0148] 在中心集群中部署预设的服务器组件;
[0149] 以业务为单位,按照集群的业务需求,在集群中部署预设的代理组件和访问组件中的至少一种,其中,代理组件的部署文件中包括与代理组件连接的服务器组件服务地址和业务ID, 访问组件的部署文件中包括与访问组件连接的服务器组件服务地址、业务ID、以及每个业务ID对应的映射的虚拟代理业务服务地址;
[0150] 服务器组件部署完成后,对外暴露服务器组件TCP服务地址,其中,服务器组件用于提供跨集群网络连接通道;
[0151] 代理组件部署完成后,通过代理组件的部署文件中的服务器组件服务地址,将代理组件所绑定的业务元数据信息注册到服务器组件的元数据库中,其中,业务元数据信息包括业务ID;
[0152] 服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务ID对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输。
[0153] 上述的通信总线1140可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0154] 通信接口1120用于上述电子设备与其他设备之间的通信。
[0155] 存储器1130可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。可选的,存储器1130还可以是至少一个位于远离前述处理器1110的存储装置。
[0156] 上述的处理器1110可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0157] 本公开的实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的基于原始音频波形的端到端的语音伪装情绪检测方法。
[0158] 该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的基于原始音频波形的端到端的语音伪装情绪检测方法。
[0159] 根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0160] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0161] 以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。