一种双网络的集群数据传输方法及系统与流程

专利2023-06-23  124



1.本发明公开一种双网络的集群数据传输方法及系统,涉及数据传输技术领域。


背景技术:

2.随着当前社会的发展,数据库领域出现了许多种类,大体上能够分为关系型数据库、非关系型数据库、newsql数据库,znbase数据库即为newsql数据库中的一种。随着数据中心中服务器的配置越来越好,比如更多网卡设备等,但现有的分布式数据库一个节点仅支持一个网卡,在大数据导入时,能够形成节点间数据传输瓶颈。为了充分利用设备资源,znbase数据库支持多网卡需求,以满足业务流量与数据库同步走不同网卡的要求,同时,在业务高峰期时,网络带宽或网卡的处理速度也能够成为节点间数据同步的限制点,为了充分利用设备资源,提高设备部件利用率,降低节点间数据传输延迟,打破节点间的传输速率瓶颈,实现数据库集群中节点之间数据的高效传输也就提上了日程。
3.故现发明一种双网络的集群数据传输方法及系统,以解决上述问题。


技术实现要素:

4.本发明针对现有技术的问题,提供一种双网络的集群数据传输方法及系统,所采用的技术方案为:一种双网络的集群数据传输方法,所述方法的具体步骤如下:
5.s1设置双网络地址和端口,做为业务地址和系统地址;节点根据地址数量开启两个grpc-server端,分别负责对应的地址监听;
6.s2将数据分类为业务数据和系统数据,在节点间进行数据传输;
7.s3将gossip消息单独通过系统网络进行传输。
8.所述的s1具体步骤如下:
9.s11数据中心中服务器存在两个网卡,表示为用户网卡和系统网卡,分别用来传输集群中的业务数据和系统数据;
10.s12znbase集群中节点启动时配置两个ip地址和端口号,分别用来表示用户和系统网络,节点接受到两个网卡标识后,相应启动两个grpc服务,分别用来处理业务和系统数据的同步。
11.所述的s2具体步骤如下:
12.s21集群将不同数据分成两种数据类型,分别为业务数据和系统数据,分别标识为defaultclass和systemclass;
13.s211集群中业务网络只进行业务数据的请求和传输,业务数据通过各自的网络单独传输;
14.s212系统数据通过系统网卡进行发送接收,集群中系统数据能够单独传输在一个网络中,隔离系统数据和业务数据的传输与接收。
15.所述的s3具体步骤如下:
16.s31在系统网络中,由于gossip的反熵传播特性,单独将gossip协议中的消息通过
系统网络进行传输;
17.s32在业务网络中,用户进行sql连接时,将连接到节点的业务网卡中。
18.一种双网络的集群数据传输系统,其特征是所述的系统具体包括设置模块、传输模块和gossip消息模块:
19.设置模块:设置双网络地址和端口,做为业务地址和系统地址;节点根据地址数量开启两个grpc-server端,分别负责对应的地址监听;
20.传输模块:将数据分类为业务数据和系统数据,在节点间进行数据传输;
21.gossip消息模块:将gossip消息单独通过系统网络进行传输。
22.所述设置模块具体包括网卡分类模块和数据同步模块:
23.网卡分类模块:数据中心中服务器存在两个网卡,表示为用户网卡和系统网卡,分别用来传输集群中的业务数据和系统数据;
24.数据同步模块:znbase集群中节点启动时配置两个ip地址和端口号,分别用来表示用户和系统网络,节点接受到两个网卡标识后,相应启动两个grpc服务,分别用来处理业务和系统数据的同步。
25.所述传输模块具体包括数据标识模块、业务网络模块和系统数据模块:
26.数据标识模块:集群将不同数据分成两种数据类型,分别为业务数据和系统数据,分别标识为defaultclass和systemclass;
27.业务数据模块:集群中业务网络只进行业务数据的请求和传输,业务数据通过各自的网络单独传输;
28.系统数据模块:系统数据通过系统网卡进行发送接收,集群中系统数据能够单独传输在一个网络中,隔离系统数据和业务数据的传输与接收。
29.所述消息模块具体包括系统网络模块、和业务网络模块:
30.系统网络模块:在系统网络中,由于gossip的反熵传播特性,单独将gossip协议中的消息通过系统网络进行传输;
31.业务网络模块:业务网络中,用户进行sql连接时,将连接到节点的业务网卡中。
32.本发明的有益效果为:本发明能够实现集群中节点间的数据高效同步,能够充分利用设备资源,减少数据传输延迟,降低高峰时网络压力,并且网络间传输不会产生影响,也就是说集群中系统网络发生故障后,不会影响业务网络的数据传输。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
34.图1是本发明方法的流程图;图2是grpc服务结构示意图;图3是单网卡和双网卡节点数据传输方案示意图。
具体实施方式
35.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以
更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
36.实施例一:
37.一种双网络的集群数据传输方法,所述方法的具体步骤如下:
38.s1设置双网络地址和端口,做为业务地址和系统地址;节点根据地址数量开启两个grpc-server端,分别负责对应的地址监听;
39.s2将数据分类为业务数据和系统数据,在节点间进行数据传输;
40.s3将gossip消息单独通过系统网络进行传输;
41.本发明在浪潮云溪数据库znbase中,为了提供集群中的高效数据传输方案,完成集群间的高效数据同步,解决集群大数据量导入时发生的数据拥塞现象,同时也能够降低节点间数据同步时因网络阻塞而导致的延迟,从而完成集群中节点间数据高效同步;
42.本发明为集群中一种双网络的数据传输方案是启用双网络进行数据同步,包括双网卡节点互相通信和单网卡节点与双网卡节点通信方案;
43.关于单网卡节点和双网卡节点数据传输
44.由于数据中心中服务器主机的硬件资源不尽相同,为了适应不同设备资源,znbase分布式数据库不仅支持集群中双网卡节点互相通信,而且支持单网卡和双网卡节点互相通信,网卡设备数量不会影响集群数据传输的高效性;下面对单网卡和双网卡节点通信流程进行叙述:
45.⑴
、启动多个服务端用于监听多个网卡地址端口:用户启动节点后,输入两个网卡地址和端口号做为网卡的监听地址,例如listen-addr=192.168.100.10:26257system-addr=192.168.100.11:26257,节点能够根据输入的地址个数分别创建两个grpc服务端,分别监听两个地址的端口,后续能够启动和注册相关服务,等待监听到端口接收的数据后根据数据类型,调用相关服务处理;
46.⑵
、数据分类和客户端:根据数据的行为分别打上不同标签,比如raft协议中msgapp、msgsnap、msgprop消息等业务数据标识为defaultclass类型,利用节点启动时设置的业务地址和端口号进行传输;raft协议中msghup、msgvote、msgheartbeat等系统消息标识为systemclass类型,利用节点启动时设置的系统地址和端口号进行传输;当节点需要需要向其它节点传输数据时,首先通过gossip协议获取邻接节点的nodedescription,然后根据需要发送的数据类型,选择nodedescription中业务地址或系统地址向需要发送消息节点的服务端进行拨号,当拨号成功后,创建grpc-client端发送相应数据;
47.⑶
、服务端:节点同时运行两个或多个grpc-server,每个server端能够监听一个网卡的tcp端口,当数据发送到相应端口后,server能够接收消息后调用相应消息的处理方法,数据处理完成后通过相同接收路径返回处理后的数据到邻接节点的grpc-client端,邻接节点grpc-client再调用后续处理操作;
48.⑷
、单网卡节点和多网卡节点通信:当程序判断出不存在系统地址后,能够将nodedescription.systemaddr置为空,相应只启用一个grpc-server用来监听业务地址和端口号,此服务端拥有节点全部grpc相关服务,其他节点通过gossip消息获取当前节点的nodedescription时,能够判断系统地址是否存在,如果系统地址不存在则向业务地址和端口号进行拨号操作,同时不再区分数据类型,所有数据均向该地址发送;
49.⑸
、系统网络支持gossip协议:当启动命令中存在系统网络地址和端口时,通过该
参数创建gossip服务端,否则,利用业务地址和端口创建gossip服务端,并注册到相应grpc服务中;在发送gossip相关数据时需要创建gossip-client端,同时client端能够设置其它节点的系统地址做为目标地址发送数据;如图2所示;
50.进一步的,所述的s1具体步骤如下:
51.s11数据中心中服务器存在两个网卡,表示为用户网卡和系统网卡,分别用来传输集群中的业务数据和系统数据;
52.s12znbase集群中节点启动时配置两个ip地址和端口号,分别用来表示用户和系统网络,节点接受到两个网卡标识后,相应启动两个grpc服务,分别用来处理业务和系统数据的同步;
53.关于golang grpc:
54.设置nodedescription结构体参数:listen=业务地址和端口,system=系统地址和端口,该结构体唯一标识集群中节点,通过gossip协议进行节点间传输,也就是说节点能获取到集群中其它节点的nodedescription结构体;
55.grpc服务端:节点能够根据启动参数中设置的地址开启相应的服务,用于地址端口的监听,同时能够根据地址的不同,分别注册和开启不同服务用于处理监听到的数据;
56.grpc客户端是向其它节点grpc服务端发送数据,首先需要确保能够到达目标地址,先进行目标地址拨号操作,目标地址是通过其它节点的nodedescription获得,双网卡网络方案中grpc能够根据不同数据类型,分别选择不同地址(listen或system)进行拨号,等待拨号成功后,创建客户端对目标地址发送数据;图2为grpc服务中客户端和服务端;
57.集群中双网络的配置,包括但不限于两个网卡配置的场景;能够基于集群需要,选取多个网卡做为集群中数据的传输等,也就是说集群中能够设置多网络场景;
58.网卡配置启动grpc服务,包括但不限于集群根据启动参数中地址设置的数量启动相应数量的grpc服务,用来监听相应网卡的端口;
59.节点标识nodedescription存储地址,包括但不限于grpc客户端进行目标地址拨号时,根据需要发送的数据类型选择不同目标地址,同时创建客户端发送数据到目标地址;
60.进一步的,所述的s2具体步骤如下:
61.s21集群将不同数据分成两种数据类型,分别为业务数据和系统数据,分别标识为defaultclass和systemclass;
62.s211集群中业务网络只进行业务数据的请求和传输,业务数据通该的网络单独传输;
63.s212系统数据通过系统网卡进行发送接收,集群中系统数据能够单独传输在一个网络中,隔离系统数据和业务数据的传输与接收;
64.defaultclass是集群中用户的业务数据,通过用户网卡传输,比如raft协议中msgapp、msgsnap、msgprop消息等;
65.systemclass是集群中用户的系统数据,通过系统网卡传输,比如raft协议中msghup、msgvote、msgheartbeat消息等;
66.集群中数据传输时首先要判断消息类型,如果数据标识为defaultclass时,grpc-client端利用业务网卡地址发送到其他节点的业务地址端口上,其他节点从业务地址端口中接受到数据后,监听业务地址端口的grpc-server端通过完成请求或处理后原路径返回,
集群中业务网络只进行业务数据的请求和传输,其他业务数据通过其他网络单独传输,当一个网络发生故障后不会影响其它网络;
67.同理,集群中系统数据通过系统网卡进行发送接收,集群中系统数据能够单独传输在一个网络中,不会和业务数据交叉传输和接收;
68.节点间传输数据时能够将数据分类,分为业务数据和系统数据,同时打上不同标识(defaultclass和systemclass),当数据进行传输时,grpc首先获取到其它节点nodedescription,然后根据数据的标识选择不同目标地址进行拨号,同时创建client发送数据到目标地址中,目标地址由其它节点的网卡的端口号组成;
69.节点间传输数据分类包括但不限于业务数据、系统数据等,同样标识不限于defaultclass和systemclass等;
70.再一步的,所述的s3具体步骤如下:
71.s31在系统网络中,由于gossip的反熵传播特性,单独将gossip协议中的消息通过系统网络进行传输;
72.s32在业务网络中,用户进行sql连接时,将连接到节点的业务网卡中;
73.gossip协议用于分布式数据库中节点同步数据使用,后被广泛用于数据库复制、信息扩散、集群成员身份确认、故障探测等;gossip协议的消息传播方式有两种:anti-entropy(反熵传播)和rumor-mongering(谣言传播);
74.反熵传播是以固定的概率传播所有的数据;所有参与节点只有两种状态:suspective(病原)、infective(感染);这种节点状态又叫做simple epidemics(si model);过程是种子节点能够把所有的数据都跟其他节点共享,以便消除节点之间数据的任何不一致,它能够保证最终、完全的一致;缺点是消息数量非常庞大,且无限制;通常只用于新加入节点的数据初始化;
75.谣言传播是以固定的概率仅传播新到达的数据;所有参与节点有三种状态:suspective(病原)、infective(感染)、removed(愈除);这种节点状态又叫做complex epidemics(sir model);过程是消息只包含最新update,谣言消息在某个时间点之后被标记为removed,并且不再被传播;缺点是系统有一定的概率不一致,通常用于节点间数据增量同步;
76.由于gossip的反熵传播特性,导致集群中一段时间内的消息数量非常庞大,所以单独将gossip协议中的消息通过系统网络进行传输,这能减少数据高峰时业务网络的压力,用户使用集群中的业务网络,对系统网络无法感知,也就是说用户进行sql连接时,连接到节点的业务网卡中,无法影响系统网络传输,这有助于减少不必要的业务流程;
77.系统网络支持gossip传输,包括但不限于gossip数据通过系统网络进行节点间传输等,也可通过其它网络进行传输。
78.实施例二:
79.一种双网络的集群数据传输系统,其特征是所述的系统具体包括设置模块、传输模块和gossip消息模块:
80.设置模块:设置双网络地址和端口,做为业务地址和系统地址;节点根据地址数量开启多个grpc-server端,分别负责对应的地址监听;
81.传输模块:将数据分类为业务数据和系统数据,在节点间进行数据传输;
82.gossip消息模块:将gossip消息单独通过系统网络进行传输;
83.所述设置模块具体包括网卡分类模块和数据同步模块:
84.网卡分类模块:数据中心中服务器存在两个网卡,表示为用户网卡和系统网卡,分别用来传输集群中的业务数据和系统数据;
85.数据同步模块:znbase集群中节点启动时配置两个ip地址和端口号,分别用来表示用户和系统网络,节点接受到两个网卡标识后,相应启动两个grpc服务,分别用来处理业务和系统数据的同步;
86.所述传输模块具体包括数据标识模块、业务网络模块和系统数据模块:
87.数据标识模块:集群将不同数据分成两种数据类型,分别为业务数据和系统数据,分别标识为defaultclass和systemclass;
88.业务数据模块:集群中业务网络只进行业务数据的请求和传输,业务数据通过该网络单独传输;
89.系统数据模块:系统数据通过系统网卡进行发送接收,集群中系统数据能够单独传输在一个网络中,隔离系统数据和业务数据的传输与接收;
90.所述消息模块具体包括系统网络模块、和业务网络模块;
91.系统网络模块:在系统网络中,由于gossip的反熵传播特性,单独将gossip协议中的消息通过系统网络进行传输;
92.业务网络模块:业务网络中,用户进行sql连接时,将连接到节点的业务网卡中。
93.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种双网络的集群数据传输方法,其特征是所述方法的具体步骤如下:s1设置双网络地址和端口,做为业务地址和系统地址;节点根据地址数量开启两个grpc-server端,分别负责对应的地址监听;s2将数据分类为业务数据和系统数据,在节点间进行数据传输;s3将gossip消息单独通过系统网络进行传输。2.根据权利要求1所述的方法,其特征是所述的s1具体步骤如下:s11数据中心中服务器存在两个网卡,表示为用户网卡和系统网卡,分别用来传输集群中的业务数据和系统数据;s12znbase集群中节点启动时配置两个ip地址和端口号,分别用来表示用户和系统网络,节点接受到两个网卡标识后,相应启动两个grpc服务,分别用来处理业务和系统数据的同步。3.根据权利要求2所述的方法,其特征是所述的s2具体步骤如下:s21集群将不同数据分成两种数据类型,分别为业务数据和系统数据,分别标识为defaultclass和systemclass;s211集群中业务网络只进行业务数据的请求和传输,业务数据通过各自的网络单独传输;s212系统数据通过系统网卡进行发送接收,集群中系统数据能够单独传输在一个网络中,隔离系统数据和业务数据的传输与接收。4.根据权利要求3所述的方法,其特征是所述的s3具体步骤如下:s31在系统网络中,由于gossip的反熵传播特性,单独将gossip协议中的消息通过系统网络进行传输;s32在业务网络中,用户进行sql连接时,将连接到节点的业务网卡中。5.一种双网络的集群数据传输系统,其特征是所述的系统具体包括设置模块、传输模块和gossip消息模块:设置模块:设置双网络地址和端口,做为业务地址和系统地址;节点根据地址数量开启多个grpc-server端,分别负责对应的地址监听;传输模块:将数据分类为业务数据和系统数据,在节点间进行数据传输;gossip消息模块:将gossip消息单独通过系统网络进行传输。6.根据权利要求5所述的系统,其特征是所述设置模块具体包括网卡分类模块和数据同步模块:网卡分类模块:数据中心中服务器存在两个网卡,表示为用户网卡和系统网卡,分别用来传输集群中的业务数据和系统数据;数据同步模块:znbase集群中节点启动时配置两个ip地址和端口号,分别用来表示用户和系统网络,节点接受到两个网卡标识后,相应启动两个grpc服务,分别用来处理业务和系统数据的同步。7.根据权利要求6所述的系统,其特征是所述传输模块具体包括数据标识模块、业务网络模块和系统数据模块:数据标识模块:集群将不同数据分成两种数据类型,分别为业务数据和系统数据,分别标识为defaultclass和systemclass;
业务数据模块:集群中业务网络只进行业务数据的请求和传输,业务数据通过该网络单独传输;系统数据模块:系统数据通过系统网卡进行发送接收,集群中系统数据能够单独传输在一个网络中,隔离系统数据和业务数据的传输与接收。8.根据权利要求7所述的系统,其特征是所述消息模块具体包括系统网络模块、和业务网络模块:系统网络模块:在系统网络中,由于gossip的反熵传播特性,单独将gossip协议中的消息通过系统网络进行传输;业务网络模块:业务网络中,用户进行sql连接时,将连接到节点的业务网卡中。

技术总结
本发明公开了一种双网络的集群数据传输方法及系统,属于数据传输领域;所述的方法的具体步骤如下:S1设置双网络地址和端口,做为业务地址和系统地址;节点根据地址数量开启多个grpc-server端,分别负责对应的地址监听;S2将数据分类为业务数据和系统数据,在节点间进行数据传输;S3将gossip消息单独通过系统网络进行传输;本发明能够实现集群中节点间的数据高效同步,能够充分利用设备资源,减少数据传输延迟,降低高峰时网络压力,并且网络间传输不会产生影响;即使集群中系统网络发生故障,也不会影响业务网络的数据传输。也不会影响业务网络的数据传输。也不会影响业务网络的数据传输。


技术研发人员:苏俊 管延信 康俊
受保护的技术使用者:浪潮软件集团有限公司
技术研发日:2022.05.30
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-3453.html

最新回复(0)