CN111414372B - 数据同步方法、装置、系统、设备和存储介质 - Google Patents
数据同步方法、装置、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN111414372B CN111414372B CN202010160942.1A CN202010160942A CN111414372B CN 111414372 B CN111414372 B CN 111414372B CN 202010160942 A CN202010160942 A CN 202010160942A CN 111414372 B CN111414372 B CN 111414372B
- Authority
- CN
- China
- Prior art keywords
- node
- cluster
- data
- information
- time stamp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000005259 measurement Methods 0.000 claims abstract description 51
- 230000008859 change Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 4
- 230000003111 delayed effect Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 abstract description 18
- 238000013500 data storage Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- JLQUFIHWVLZVTJ-UHFFFAOYSA-N carbosulfan Chemical compound CCCCN(CCCC)SN(C)C(=O)OC1=CC=CC2=C1OC(C)(C)C2 JLQUFIHWVLZVTJ-UHFFFAOYSA-N 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明实施例公开了一种数据同步方法、装置、系统、设备和存储介质,包括:第一节点确定集群变更后与之直接连接的第二节点,确定与第二节点直接连接的至少一个第三节点;获取第二节点和第三节点存储数据时最后上报的数据度量对应的时间戳;从时间戳中确定出时间最早的时间戳;根据时间最早的时间戳从第二节点和第三节点同步数据。各个节点以时间戳来映射存储数据的数据度量,解决了以Mysql自定义的度量只能用于Mysql的数据存储架构不具备通用性的问题,以时间戳作为数据度量,时间具有通用性,各个节点可以自定义存储方案以支持各个节点异构,外部系统可以作为一个异构点请求同步数据,提高了存储系统的通用性。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据同步方法、装置、系统、设备和存储介质。
背景技术
集群是一种计算机系统,集群将多台同构或异构的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作,集群对外表现为一台虚拟主机,集群中的单个计算机称为节点,通常通过网连接。
现有集群的数据存储架构中,通常配置一个主节点作为数据写入节点,若干从节点作为读节点来向主节点读取同步数据,这种主从结构的网络拓扑结构中各个节点并不是对等的,主节点通常不变,整个架构不能做到自适应同步数据。为了实现集群中各个节点对等,采用Mysql多源复制的特性提供整个对等网络间相互同步的能力,同时通过GTID特性记录不同节点间的同步情况,在集群网络拓扑结构变更时也能够根据各节点记录的GTID作自适应的重新同步。
然而,采用Mysql多源复制结合GTID虽然能够做到自适应同步数据,但是以GTID作为各节点间同步情况的度量,是Mysql自定义的度量,只能用于Mysql,不具备通用性,难以对接外部异构系统。
发明内容
本发明实施例提供一种数据同步方法、装置、系统、设备和存储介质,以解决现有技术中集群的数据存储架构采用Mysql自定义的度量,只能用于Mysql不具备通用性,难以对接外部异构系统的问题。
第一方面,本发明实施例提供了一种数据同步方法,应用于集群中的节点,包括:
第一节点确定集群变更后与之直接连接的第二节点,所述第二节点在所述集群变更前与所述第一节点非直接连接;
确定与所述第二节点直接连接的至少一个第三节点;
获取所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳,所述数据度量对应的时间戳为集群中各个节点存储数据时上报至集群管理中心的时间戳;
从所述时间戳中确定出时间最早的时间戳;
根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
第二方面,本发明实施例提供了一种数据同步方法,应用于集群中的集群管理中心,包括:
接收第一节点的集群信息请求;
响应所述集群信息请求获取集群信息;
将所述集群信息发送至所述第一节点,所述集群信息包括各个节点存储数据时最后上报的数据度量对应的时间戳,所述第一节点用于在集群变更后确定与之直接连接的第二节点以及与第二节点直接连接的至少一个第三节点,并从时间戳中确定出时间最早的时间戳,以根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
第三方面,本发明实施例提供了一种数据同步装置,应用于集群中的节点,包括:
直接连接节点确定模块,用于第一节点确定集群变更后与之直接连接的第二节点,所述第二节点在所述集群变更前与所述第一节点非直接连接;
非直接连接节点确定模块,用于确定与所述第二节点直接连接的至少一个第三节点;
时间戳获取模块,用于获取所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳;
时间戳确定模块,用于从所述时间戳中确定出时间最早的时间戳;
同步模块,用于根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
第四方面,本发明实施例提供了一种数据同步装置,应用于集群中的集群管理中心,包括:
集群信息请求接收模块,用于接收第一节点的集群信息请求;
集群信息获取模块,用于响应所述集群信息请求获取集群信息;
集群信息发送模块,用于将所述集群信息发送至所述第一节点,所述集群信息包括各个节点存储数据时最后上报的数据度量对应的时间戳,所述第一节点用于在集群变更后确定与之直接连接的第二节点以及与第二节点直接连接的至少一个第三节点,并从时间戳中确定出时间最早的时间戳,以根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
第五方面,本发明实施例提供了一种数据同步系统,包括集群中的集群管理中心和各个节点;
所述节点配置为执行本发明实施例第一方面所述的数据同步方法,所述集群管理中心配置为执行本发明实施例第二方面所述的数据同步方法。
第六方面,本发明实施例提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任一实施例所述的数据同步方法。
第七方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所述的数据同步方法。
本发明实施例在集群发生变更后,第一节点确定与之非直接连接转换为直接连接的第二节点,并确定与第二节点直接连接的至少一个第三节点;进一步获取第二节点和第三节点存储数据时最后上报到集群管理中心的数据度量对应的时间戳,然后从时间戳中确定出时间最早的时间戳以根据时间最早的时间戳从第二节点和第三节点同步数据。由于各个节点以时间戳来映射存储数据的数据度量,各个节点可以采用最后上报的时间戳中的时间最早的时间戳来自适应地同步数据,解决了以Mysql自定义的度量只能用于Mysql的数据存储架构不具备通用性的问题,以时间戳作为数据度量,时间具有通用性,集群中各个节点可以自定义存储方案,即支持各个节点异构,外部系统可以作为一个异构点请求同步数据,甚至可以提交同步数据至集群中的各个节点,提高了存储系统的通用性。
附图说明
图1是本发明实施例一提供的一种数据同步方法的步骤流程图;
图2A是本发明实施例二提供的一种数据同步方法的步骤流程图;
图2B是本发明实施例的集群的拓扑结构示意图;
图2C是本发明的一个示例中节点实现数据同步的流程图;
图3是本发明实施例三提供的一种数据同步方法的步骤流程图;
图4是本发明实施例四提供的一种数据同步装置的结构框图;
图5是本发明实施例五提供的一种数据同步装置的结构框图;
图6是本发明实施例六提供的一种数据同步系统的结构框图;
图7是本发明实施例七提供的一种设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据同步方法的步骤流程图,本发明实施例可适用于集群变更时集群中节点同步数据的情况,该方法可以由本发明实施的数据同步装置来执行,该数据同步装置可以由硬件或软件来实现,并集成在本发明实施例所述的集群的各个节点中,具体地,如图1所示,本发明实施例的数据同步方法可以包括如下步骤:
S101、第一节点确定集群变更后与之直接连接的第二节点,所述第二节点在所述集群变更前与所述第一节点非直接连接。
本发明实施例中集群设置有集群管理中心和多个节点,集群管理中心提供集群中各种信息的管理及存储,包括管理集群中节点的拓扑结构的配置信息以及各个节点的属性信息、状态信息等,各个节点用于存储业务数据。当集群由于增加节点、删除节点、变更节点或外部网络波动等因素造成网络拓扑结构变更后,对于集群中的任意一个节点,比如第一节点,第一节点由于集群变更,变更前与第一节点非直接连接的第二节点变为与第一节点直接连接,则第一节点可以从集群管理中心获取变更后的拓扑结构以确定与第一节点直接连接的第二节点,该第二节点在集群变更前与第一节点非直接连接。
S102、确定与所述第二节点直接连接的至少一个第三节点。
在实际应用中,集群的拓扑结构可以为树形、星形、网状等拓扑结构,即第二节点除了与第一节点连接外,还与至少一个第三节点直接连接,其中,第三节点与第一节点非直接连接,即第二节点作为第一节点和第三节点的中转节点,第一节点可以从集群管理中心获取变更后的拓扑结构来确定与第二节点直接连接的第三节点。
S103、获取所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳,所述数据度量对应的时间戳为集群中各个节点存储数据时上报至集群管理中心的时间戳。
本发明实施例中,集群中的每个节点定时向集群管理中心上报自身的状态,具体地,每个节点对自身存储的数据进行度量得到数据度量,该数据度量可以是节点存储数据的数据量或者数据存储在存储介质中的存储地址,并对该数据度量赋予一个时间戳,形成数据度量-时间戳的映射关系,并将数据度量对应的时间戳上报到集群管理中心。第一节点确定第二节点和至少一个第三节点后,可以从集群管理中心获得第二节点和第三节点上报至集群管理中心的时间戳序列,从该时间戳序列中确定第二节点和第三节点最后上报的时间戳,该最后上报的时间戳为集群变更时第二节点和第三节点最后存储数据时对存储的数据进行度量的时间戳。
S104、从所述时间戳中确定出时间最早的时间戳。
具体地,第二节点可以与至少一个第三节点直接连接,则第一节点可以获取到第二节点与至少一个第三节点的最后上报的数据度量对应的时间戳,可以从多个时间戳中确定出时间最早的时间戳,可选地,可以将第二节点和第三节点最后上报的多个时间戳按照时间的先后进行排序,将排序在前的时间戳作为时间最早的时间戳。
S105、根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
在实际应用中,集群中各个节点正常工作无延迟时,集群变更前集群中各个节点的数据通常保持同步,使得在集群变更后,第二节点、与第二节点连接的至少一个第三节点在时间最早的时间戳之前的数据也是保证同步的,即时间越早第二节点和第三节点的数据越一致、完整,第一节点可以从第二节点以及第三节点拉取时间最早的时间戳之后的数据来与第二节点、第三节点保持同步。
本发明实施例中在集群发生变更后,第一节点确定与之非直接连接转换为直接连接的第二节点,并确定与第二节点直接连接的至少一个第三节点,然后以第二节点和第三节点对数据度量的时间戳来同步数据,由于各个节点以时间戳来映射存储数据的数据度量,各个节点可以采用最后上报的时间戳中的时间最早的时间戳来自适应地同步数据,解决了以Mysql自定义的度量只能用于Mysql的数据存储架构不具备通用性的问题,以时间戳作为数据度量,时间具有通用性,集群中各个节点可以自定义存储方案,即支持各个节点异构,外部系统可以作为一个异构点请求同步数据,甚至可以提交同步数据至集群中的各个节点,提高了存储系统的通用性。
实施例二
图2A为本发明实施例二提供的一种数据同步方法的步骤流程图,本发明实施例在前述实施例一的基础上进行优化,具体地,如图2A所示,本发明实施例的数据同步方法可以包括如下步骤:
S201、向集群管理中心上报节点的属性信息,以及向集群管理中心上报节点的状态信息。
本发明实施例中集群设置有集群管理中心和多个节点,集群管理中心提供集群中各种信息的管理及存储,包括管理集群中节点的拓扑结构的配置信息以及各个节点的属性信息、状态信息等,各个节点用于存储业务数据。
其中,在各个节点向集群管理中心注册时,节点向集群管理中心上报节点的属性信息,该属性信息可以为节点的节点号、节点服务的IP及端口、节点是否只作为从节点等信息,当节点的属性信息变化是可能会触发集群的拓扑结构变更,例如,某个节点的节点号删除,说明该节点删除,或者节点服务的IP变更、端口由于网络波动变为不可用等均可能触发集群的拓扑结构变更。
节点的状态信息可以包括节点的运行状态信息和存储信息。运行状态信息表达了一个节点处于新注册、同步中、正常、延时中的一种状态,存储信息可以为一个节点存储数据的数据度量以及该数据度量对应的时间戳。
在本发明实施例中,一个节点在接收到待存储的数据时,该节点采用机器管理中心分配的节点号以及接收到数据的时间作为数据的版本号,并且为每条数据生成唯一标识码,进一步采用标识码、版本号存储数据,即节点存储的每条数据包括以下三项:
key,数据的唯一标识码,key相同的数据为同一数据,该数据可以有多个版本,例如直播应用中某个用户的好友列表数据具有唯一的key,但是随着好友列表的变更可以有多个版本。
version,数据的版本号,由存储该数据的节点的节点号和接收到该数据的时间戳构成,其中节点的节号点在集群中是唯一的,节点注册时由集群管理中心分配或自行分配但确保唯一性。
data,数据的具体内容,可根据业务不同有不同的data。
其中,各个节点在存储数据的过程中对存储的数据进行度量,得到一个具体地的数字量,该数字量可以表达存储的数据在存储器中的位置,通过该数据度量可以从该节点读取相应的数据,同时每次对数据度量时可以加以时间戳,得到数据度量对应的时间戳。
各个节点在运行过程中,可以按照一定的周期(例如10秒)将运行状态信息、数据度量、数据度量对应的时间戳作为状态信息上报至集群管理中心,集群管理中心收到各个节点上报的状态信息后,将所有节点的属性信息和状态信息作为集群信息进行管理。
S202、向集群管理中心请求集群信息,所述集群信息包括各个节点的属性信息和状态信息。
具体地,各个节点在按照预设周期向集群管理中心上报状态信息的同时按照预设周期从集群管理中心请求集群信息,该集群信息包括了集群中各个节点上报的属性信息和状态信息,使得各个节点根据集群信息获得整个集群的运行情况。
S203、基于相邻两次请求到的集群信息中的属性信息确定是否存在集群变更事件。
本发明实施例以第一节点为示例,当然第一节点为集群中的任意一个节点,第一节点每次从集群管理中心请求到集群信息后,将该集群信息与上次请求到的集群信息进行比较,确定是否变更第一节点的拓扑结构,例如,通过集群信息中的属性信息确定与第一节点直接连接的节点是否被删除、与第一节点直接连接的节点的服务端口是否不可用、与第一节点直接连接的节点的网络质量参数是否低于阈值等,若是,执行S204。
S204、变更所述集群的拓扑结构。
具体地,可用根据预先定义的集群的拓扑结构变更集群的拓扑结构,例如,预先配置树形、星形、网状等拓扑结构的配置信息,该配置信息配置了作为中转节点的节点以及其他生成拓扑结构的信息,本发明实施例对配置如何生成拓扑结构的配置信息不做限制。当第一节点需要做集群变更时,根据各种不同拓扑结构的配置信息变更第一节点的拓扑结构。当然,还可以基于用户的操作直接变更集群的拓扑结构,本发明实施例对变更集群的拓扑结构的方式不加以限制。
S205、在集群变更后第一节点确定与之直接连接的第二节点,所述第二节点在所述集群变更前与所述第一节点非直接连接。
本发明实施例中,第一节点由于集群变更,变更前与第一节点非直接连接的第二节点变为与第一节点直接连接,则第一节点可以根据更后的拓扑结构确定与第一节点直接连接的第二节点,该第二节点在集群变更前与第一节点非直接连接。
S206、确定与所述第二节点直接连接的至少一个第三节点。
在实际应用中,集群的拓扑结构可以为树形、星形、网状等拓扑结构,即第二节点除了与第一节点连接外,还与至少一个第三节点直接连接,其中,第三节点与第一节点非直接连接,即第二节点作为第一节点和第三节点的中转节点,第一节点可以根据集群变更后的拓扑结构确定与第二节点直接连接的第三节点。
S207、根据所述集群信息判断所述集群是否正常。
在本发明实施例中用户可以自定义集群是否正常,可选地集群中的各个节点可以根据请求到的集群信息确定集群中的其他节点是否存在存储数据异常、节点宕机率是否大于阈值、集群的网络参数是否正常等来判定集群是否正常,若集群正常,执行S208。
S208、在所述集群正常时,判断所述第二节点和所述第三节点是否延迟。
在实际应用中,第二节点和第三节点定时向集群管理中心上报运行状态信息,该运行状态信息表达了节点处于新注册、同步中、正常、延时中的一种状态,第一节点可以根据状态信息判断第二节点和第三节点是否存在延迟,若否,执行S209。
S209、从所述集群信息所包含的状态信息中确定所述第二节点和所述第三节点的状态信息。
第一节点可以从集群管理中心获取到的全量集群信息中以第二节点和第三节点的节点号为索引帅选出第二节点和第三节点的状态信息,该状态信息包括了第二节点和第三节点的运行状态信息和存储状态信息。
S210、基于所述第二节点和所述第三节点的状态信息确定所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳。
状态信息中包含了节点存储数据时数据度量对应的时间戳,对于每个节点,集群管理中心接收到该节点上报的时间戳时,按照时间的先后顺序保持为时间序列,每个节点的时间序列的最后一个时间戳即为该节点最后上报的数据度量对应的时间戳,第一节点可以将第二节点和第三节点的时间序列的最后一个时间戳确定为第二节点和第三节点存储数据时最后上报的数据度量对应的时间戳。
S211、从所述时间戳中确定出时间最早的时间戳。
具体地,第二节点可以与至少一个第三节点直接连接,则第一节点可以获取到第二节点与至少一个第三节点的最后上报的数据度量对应的时间戳,可以从多个时间戳中确定出时间最早的时间戳,可选地,可以将多个时间戳按照时间的先后进行排序,将排序在前的时间戳作为时间最早的时间戳,示例性地,第二节点最后上报的时间戳的时间为2020年03月04日15时30分25秒,第三节点A最后上报的时间戳的时间为2020年03月04日15时30分20秒,第三节点B最后上报的时间戳的时间为2020年03月04日15时30分26秒,第三节点D最后上报的时间戳的时间为2020年03月04日15时30分29秒,由此可以得出时间最早的时间戳为2020年03月04日15时30分20秒。
S212、从所述第二节点和所述第三节点上拉取所述时间最早的时间戳之后存储的数据。
在各个节点中,数据度量对应有时间戳,即通过时间戳可以映射到数据度量,该数据度量可以表达节点上存储数据的起点位置,例如可以是字节偏移量,当确定出第二节点和第三节点最后上报的时间戳中时间最早的时间戳时,由于集群正常并且没有延迟,说明第二节点和第三节点在该最早的时间戳以前的数据时完全一致同步的,并且也与第一节点一致同步,可以确定第二节点和第三节点上在时间最早的时间戳之后的数据为需要同步到第一节点上的数据。
具体地,第一节点可以向第二节点和第三节点发起数据拉取请求以拉取第二节点和第三节点上在时间最早的时间戳之后存储的数据。当第一节点、第二节点和第三节点实现同步后,第一节点、第二节点和第三节点可以向集群管理中心上报集群变更后的属性信息和状态信息。
为了使得本领域技术人员更清楚地理解本发明实施例,以下结合图2B-图2C数据同步进行说明:
如图2B所示的集群包括多个节点(An、Bn、Cn、Dn)和集群管理中心(图未示),多个节点注册时向集群管理中心上报节点的属性信息并定时上报状态信息,使得集群管理中心及时获得各个节点上报的数据度量对应的时间戳,同时集群中的任意一个节点均可以向集群管理中心请求集群信息来了解其他节点的状态信息,以下以节点A1作为上述实施例的第一节点为示例,如图2C所示,节点A1通过以下流程来同步数据:
S1、定时向集群管理中心请求集群信息。
节点A1按照预设周期从集群管理中心拉取集群信息,该集群信息包括如图2B所示的除了节点A1以外的其他节点的属性信息和状态信息。
S2、根据前后两次请求到的集群信息判断是否进行集群变更。
节点A1将最新拉取到的集群信息与缓存中上次拉取到的集群信息进行比较分析来确定是否变更集群,在本示例中,以集群信息表达节点A1和节点C1之间的链路不可用为示例确定集群需要变更,执行S3。
S3、变更集群拓扑结构。
具体地,节点A1在变更前与节点C1连接,变更后节点A1与节点C1断开连接,节点A1变更为与节点C2连接,即在变更前节点A1的拓扑结构为:A2,A3,D1(D2,D3),B1(B2,B3),C1(C2,C3),变更后节点A2的拓扑结构为:A2,A3,D1(D2,D3),B1(B2,B3),C2(C1,C3)。
S4、根据请求到的集群信息判断集群是否正常。
例如节点A1根据请求到的集群信息判断集群中各个节点的宕机率是否大于阈值、网络质量参数是否正常等来判断集群是否正常,如果正常执行S5。
S5、判断各个节点是否延迟。
节点A1从集群管理中心请求到的集群信息中确定各个节点中是否有处于延迟状态的节点,若否,执行S6。
S6、确定时间最早的时间戳。
从拓扑变更前后对比,拓扑结构变化的是C区域,取min(C1,C2,C3),即确定节点C1、C2和C3最后上报的时间戳中时间最早的时间戳。
S7、采用时间最早的时间戳来同步数据
节点A1从节点C1、C2和C3上拉取时间最早的时间戳之后存储的数据来实现数据同步。
S8、向集群管理中心上报变更后的信息。
集群中的各个节点定时向集群管理中心上报变更后的属性信息和状态信息。
本发明实施例的各个节点向集群管理中心上报节点属性信息和状态信息作为集群的集群信息,同时任意一个第一节点定时向集群管理中心请求集群信息并根据前后相邻两次请求的集群信息来确定是否变更拓扑结构,在集群变更后第一节点确定与之非直接连接转换为直接连接的第二节点以及确定与第二节点直接连接的至少一个第三节点,在根据集群信息确定集群正常且无延迟后,从第二节点和第三节点最后上报的数据度量对应的时间戳中确定出时间最早的时间戳,以从第二节点和第三节点上拉取时间最早的时间戳之后存储的数据来实现数据同步。由于各个节点以时间戳来映射存储数据的数据度量并上报到集群管理中心,各个节点可以采用最后上报的时间戳中的时间最早的时间戳来自适应地同步数据,解决了以Mysql自定义的度量只能用于Mysql的数据存储架构不具备通用性的问题,以时间戳作为数据度量,时间具有通用性,集群中各个节点可以自定义存储方案,即支持各个节点异构,外部系统可以作为一个异构点请求同步数据,甚至可以提交同步数据至集群中的各个节点,提高了存储系统的通用性。
进一步地,确定时间最早的时间戳之前确定集群正常且无延迟,能够在很大程度上保证了在时间最早的时间戳的时间时,各个节点上的数据时同步一致的,保证了数据同步的准确性,并且以时间最早的时间戳来同步数据,避免了从更正的时间戳来同步数据,拉取的数据量小,能够提高数据同步的效率,减少延迟。
实施例三
图3为本发明实施例三提供的一种数据同步方法的步骤流程图,本发明实施例可适用于集群拓扑结构变更时同步各个节点的数据的情况,该方法可以由本发明实施的数据同步装置来执行,该数据同步装置可以由硬件或软件来实现,并集成在本发明实施例所提供的集群管理中心中,具体地,如图3所示,本发明实施例的数据同步方法可以包括如下步骤:
S301、接收第一节点的集群信息请求。
本发明实施例的集群管理中心与集群中的多个节点通信,集群中的各个节点向集群管理中心注册时,节点向集群管理中心上报节点的属性信息,该属性信息可以为节点的节点号、节点服务的IP及端口、节点是否只作为从节点等信息,集群管理中心可以接收到各个节点注册时上报的属性信息。同时,各个节点在存储数据的过程中对存储的数据进行度量,得到一个具体地的数字量,该数字量可以表达存储的数据在存储器中的位置,通过该数据度量可以从该节点读取相应的数据,同时每次对数据度量时可以加以时间戳,得到数据度量对应的时间戳,各个节点将数据度量、数据度量对应的时间戳以及节点的运行状态信息上报至集群管理中心,其中,运行状态信息表达了一个节点处于新注册、同步中、正常、延时中的一种状态,存储信息可以为一个节点存储数据的数据度量以及该数据度量对应的时间戳。
集群管理中心接收到各个节点上报的节点的属性信息,以及接收各个节点上报的节点的状态信息后生成集群信息。第一节点可以定时向集群管理中心发送集群信息请求来拉取整个集群的集群信息,其中,第一节点可以为集群中的任意一个节点。
S302、响应所述集群信息请求获取集群信息。
具体地,集群管理中心可以响应第一节点的集群信息请求获取当前最新的集群信息,该集群信息包括各个节点存储数据时最后上报的数据度量对应的时间戳。
S303、将所述集群信息发送至所述第一节点,所述集群信息包括各个节点存储数据时最后上报的数据度量对应的时间戳,所述第一节点用于在集群变更后确定与之直接连接的第二节点以及与第二节点直接连接的至少一个第三节点,并从时间戳中确定出时间最早的时间戳以根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
集群管理中心将集群信息发送到第一节点后,第一节点将接收到的集群信息与上回请求的集群信息进行比较,在确定集群变更后第一节点变更其拓扑结构,并确定与之直接连接的第二节点以及与第二节点直接连接的至少一个第三节点,并从时间戳中确定出时间最早的时间戳以根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
本发明实施例的集群管理中心在接收到第一节点的集群信息请求后,获取集群信息,该集群信息包括各个节点存储数据时最后上报的数据度量对应的时间戳,在将集群信息发送到第一节点后,使得第一节点可以在集群变更后确定与之直接连接的第二节点以及与第二节点直接连接的至少一个第三节点,并从时间戳中确定出时间最早的时间戳以根据时间最早的时间戳从所述第二节点和第三节点同步数据。由于各个节点以时间戳来映射存储数据的数据度量,各个节点可以采用最后上报的时间戳中的时间最早的时间戳来自适应地同步数据,解决了以Mysql自定义的度量只能用于Mysql的数据存储架构不具备通用性的问题,以时间戳作为数据度量,时间具有通用性,集群中各个节点可以自定义存储方案,即支持各个节点异构,外部系统可以作为一个异构点请求同步数据,甚至可以提交同步数据至集群中的各个节点,提高了存储系统的通用性。
实施例四
图4是本发明实施例四提供的一种数据同步装置的结构框图,如图4所示,本发明实施例的数据同步装置应用于集群中的节点,具体可以包括如下模块:
直接连接节点确定模块401,用于在集群变更后第一节点确定与之直接连接的第二节点,所述第二节点在所述集群变更前与所述第一节点非直接连接;
非直接连接节点确定模块402,用于确定与所述第二节点直接连接的至少一个第三节点;
时间戳获取模块403,用于获取所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳,所述数据度量对应的时间戳为集群中各个节点存储数据时上报至集群管理中心的时间戳;
时间戳确定模块404,用于从所述时间戳中确定出时间最早的时间戳;
同步模块405,用于根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
本发明实施例所提供的数据同步装置可执行本发明实施例一、实施例二所提供的数据同步方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5是本发明实施例五提供的一种数据同步装置的结构框图,如图5所示,本发明实施例的数据同步装置应用于集群中的集群管理中心,具体可以包括如下模块:
集群信息请求接收模块501,用于接收第一节点的集群信息请求;
集群信息获取模块502,用于响应于所述集群信息请求获取集群信息;
集群信息发送模块503,用于将所述集群信息发送至所述第一节点,所述集群信息包括各个节点存储数据时最后上报的数据度量对应的时间戳,所述第一节点用于在集群变更后确定与之直接连接的第二节点以及与第二节点直接连接的至少一个第三节点,并从时间戳中确定出时间最早的时间戳以根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
本发明实施例所提供的数据同步装置可执行本发明实施例三所提供的数据同步方法,具备执行方法相应的功能模块和有益效果。
实施例六
图6是本发明实施例六提供的一种数据同步系统的结构框图,如图6所示,本发明实施例的数据同步系统具体可以包括集群600中的集群管理中心601和各个节点602,其中,节点602配置为执行本发明实施例一或实施例二所提供的数据同步方法,集群管理中心配置为执行本发明实施例三所提供的数据同步方法。
本发明实施例所提供的数据同步系统可执行本发明实施例所提供的数据同步方法,具备执行方法相应的功能模块和有益效果。
实施例七
参照图7,示出了本发明一个示例中的一种设备的结构示意图。如图7所示,该设备具体可以包括:处理器700、存储器701、具有触摸功能的显示屏702、输入装置703、输出装置704以及通信装置705。该设备中处理器700的数量可以是一个或者多个,图7中以一个处理器700为例。该设备的处理器700、存储器701、显示屏702、输入装置703、输出装置704以及通信装置705可以通过总线或者其他方式连接,图7中以通过总线连接为例。
本发明实施例还提供一种计算机可读存储介质,所述存储介质中的指令由设备的处理器执行时,使得设备能够执行如上述方法实施例所述的数据同步方法。
需要说明的是,对于装置、系统、设备、存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (16)
1.一种数据同步方法,其特征在于,应用于集群中的节点,包括:
第一节点确定集群变更后与之直接连接的第二节点,所述第二节点在所述集群变更前与所述第一节点非直接连接;
确定与所述第二节点直接连接的至少一个第三节点;
获取所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳,所述数据度量对应的时间戳为集群中各个节点存储数据时上报至集群管理中心的时间戳;
从所述时间戳中确定出时间最早的时间戳;
根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
2.根据权利要求1所述的数据同步方法,其特征在于,在第一节点确定集群变更后与之直接连接的第二节点之前,包括:
向集群管理中心请求集群信息,所述集群信息包括各个节点的属性信息和状态信息;
基于相邻两次请求到的集群信息中的属性信息确定是否存在集群变更事件;
若是,变更所述集群的拓扑结构。
3.根据权利要求2所述的数据同步方法,其特征在于,所述获取所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳,包括:
从所述集群信息所包含的状态信息中确定所述第二节点和所述第三节点的状态信息;
基于所述第二节点和所述第三节点的状态信息确定所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳。
4.根据权利要求2所述的数据同步方法,其特征在于,在获取所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳之前,还包括:
根据所述集群信息判断所述集群是否正常;
在所述集群正常时,根据所述状态信息判断所述第二节点和所述第三节点是否延迟;
若否,执行获取所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳的步骤。
5.根据权利要求1-4任一项所述的数据同步方法,其特征在于,所述根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据,包括:
从所述第二节点和所述第三节点上拉取所述时间最早的时间戳之后存储的数据。
6.根据权利要求2-4任一项所述的数据同步方法,其特征在于,在向集群管理中心请求集群信息之前,还包括:
向集群管理中心上报节点的属性信息,以及
向集群管理中心上报节点的状态信息。
7.根据权利要求6所述的数据同步方法,其特征在于,所述向集群管理中心上报节点的属性信息,包括:
在所述第一节点向集群管理中心注册时,向所述集群管理中心上报所述第一节点的属性信息。
8.根据权利要求6所述的数据同步方法,其特征在于,所述向集群管理中心上报节点的状态信息,包括:
获取运行状态信息,所述运行状态信息表达了所述第一节点处于新注册、同步中、正常、延迟中的一种状态;
在存储数据的过程中获取存储所述数据的数据度量和所述数据度量对应的时间戳;
将所述运行状态信息、所述数据度量、所述数据度量对应的时间戳作为状态信息上报至集群管理中心。
9.根据权利要求8所述的方法,其特征在于,在存储数据的过程中获取存储所述数据的度量和所述度量对应的时间戳之前,还包括:
在接收到待存储的数据时,获取所述第一节点的节点号以及接收到所述数据的时间作为所述数据的版本号;
生成所述数据的唯一标识码;
采用所述标识码、所述版本号存储所述数据。
10.一种数据同步方法,其特征在于,应用于集群中的集群管理中心,包括:
接收第一节点的集群信息请求;
响应所述集群信息请求获取集群信息;
将所述集群信息发送至所述第一节点,所述集群信息包括各个节点存储数据时最后上报的数据度量对应的时间戳,所述第一节点用于在集群变更后确定与之直接连接的第二节点以及与第二节点直接连接的至少一个第三节点,并从时间戳中确定出时间最早的时间戳,以根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据,其中,所述第二节点在所述集群变更前与所述第一节点非直接连接。
11.根据权利要求10所述的数据同步方法,其特征在于,在接收第一节点的集群信息请求之前,还包括:
接收各个节点上报的节点的属性信息,以及
接收各个节点上报的节点的状态信息。
12.一种数据同步装置,其特征在于,应用于集群中的节点,包括:
直接连接节点确定模块,用于第一节点确定集群变更后与之直接连接的第二节点,所述第二节点在所述集群变更前与所述第一节点非直接连接;
非直接连接节点确定模块,用于确定与所述第二节点直接连接的至少一个第三节点;
时间戳获取模块,用于获取所述第二节点和所述第三节点存储数据时最后上报的数据度量对应的时间戳,所述数据度量对应的时间戳为集群中各个节点存储数据时上报至集群管理中心的时间戳;
时间戳确定模块,用于从所述时间戳中确定出时间最早的时间戳;
同步模块,用于根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据。
13.一种数据同步装置,其特征在于,应用于集群中的集群管理中心,包括:
集群信息请求接收模块,用于接收第一节点的集群信息请求;
集群信息获取模块,用于响应所述集群信息请求获取集群信息;
集群信息发送模块,用于将所述集群信息发送至所述第一节点,所述集群信息包括各个节点存储数据时最后上报的数据度量对应的时间戳,所述第一节点用于在集群变更后确定与之直接连接的第二节点以及与第二节点直接连接的至少一个第三节点,并从时间戳中确定出时间最早的时间戳,以根据所述时间最早的时间戳从所述第二节点和所述第三节点同步数据,其中,所述第二节点在所述集群变更前与所述第一节点非直接连接。
14.一种数据同步系统,其特征在于,包括集群中的集群管理中心和各个节点;
所述节点配置为执行如权利要求1-9任一项所述的数据同步方法,所述集群管理中心配置为执行如权利要求10-11任一项所述的数据同步方法。
15.一种数据同步设备,其特征在于,所述数据同步设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一项所述的数据同步方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-11中任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010160942.1A CN111414372B (zh) | 2020-03-10 | 2020-03-10 | 数据同步方法、装置、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010160942.1A CN111414372B (zh) | 2020-03-10 | 2020-03-10 | 数据同步方法、装置、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414372A CN111414372A (zh) | 2020-07-14 |
CN111414372B true CN111414372B (zh) | 2023-04-28 |
Family
ID=71494295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010160942.1A Active CN111414372B (zh) | 2020-03-10 | 2020-03-10 | 数据同步方法、装置、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414372B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182003A (zh) * | 2020-09-28 | 2021-01-05 | 北京沃东天骏信息技术有限公司 | 一种数据同步方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236958A (zh) * | 2013-05-02 | 2013-08-07 | 北京京东尚科信息技术有限公司 | 用于在分布式系统中进行检测的系统和方法 |
-
2020
- 2020-03-10 CN CN202010160942.1A patent/CN111414372B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236958A (zh) * | 2013-05-02 | 2013-08-07 | 北京京东尚科信息技术有限公司 | 用于在分布式系统中进行检测的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111414372A (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11397721B2 (en) | Merging conflict resolution for multi-master distributed databases | |
US10776104B2 (en) | Systems and methods for tracking configuration file changes | |
WO2021104269A1 (zh) | 故障定位方法、装置、设备及存储介质 | |
US9367261B2 (en) | Computer system, data management method and data management program | |
CN110377577B (zh) | 数据同步方法、装置、系统和计算机可读存储介质 | |
JP7401656B2 (ja) | クロック・ソースを選択するための方法、装置、及びシステム、並びに記憶媒体 | |
CN112333249B (zh) | 一种业务服务系统及方法 | |
CN111049928B (zh) | 数据同步方法、系统、电子设备及计算机可读存储介质 | |
CN111552701B (zh) | 确定分布式集群中数据一致性的方法及分布式数据系统 | |
US20070255823A1 (en) | Method for low-overhead message tracking in a distributed messaging system | |
CN113114533B (zh) | 分布式服务调用的网络耗时展示方法及装置 | |
WO2019057193A1 (zh) | 数据删除方法及分布式存储系统 | |
CN109167819B (zh) | 数据同步系统、方法、装置及存储介质 | |
KR102522918B1 (ko) | Rpc 멤버 정보 획득 방법, 장치, 전자 기기 및 저장 매체 | |
CN111414372B (zh) | 数据同步方法、装置、系统、设备和存储介质 | |
CN109241182B (zh) | 大数据实时同步方法、装置、计算机设备及存储介质 | |
CN115004662A (zh) | 数据同步方法、装置、数据存储系统及计算机可读介质 | |
CN114553747A (zh) | redis集群的异常检测方法、装置、终端及存储介质 | |
CN111404978A (zh) | 一种数据存储方法及云存储系统 | |
CN112181049B (zh) | 集群时间同步方法、装置、系统、设备及可读存储介质 | |
JPWO2014199568A1 (ja) | 永続記憶装置へのデータ書込制御方法 | |
US10860580B2 (en) | Information processing device, method, and medium | |
US10334539B2 (en) | Metered interface | |
CN113965538A (zh) | 设备状态消息处理方法、装置及存储介质 | |
CN113157709A (zh) | 分布式系统节点动态变更方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231010 Address after: 31a, 15th floor, building 30, maple commercial city, bangrang Road, Brazil Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd. Address before: 5-13 / F, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou, Guangdong 510000 Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |