数据同步方法及装置与流程

文档序号:31672672发布日期:2022-09-28 01:18阅读:88来源:国知局
数据同步方法及装置与流程

1.本公开涉及电子信息技术领域,尤其涉及数据同步方法及装置。


背景技术:

2.随着科技的快速发展,数据同步的需求也随之增加。现有技术中,可以通过rsync((remote synchronize,远程数据同步)工具实现文件同步处理,但是,这种数据同步的工具无法实现实时的配置更新,导致节点之间数据同步的不够灵活、性能较低、容错性差。


技术实现要素:

3.本公开实施例提供一种数据同步方法及装置,能够解决节点之间数据同步的不够灵活、性能较低、容错性差的问题。所述技术方案如下:
4.根据本公开实施例的第一方面,提供一种数据同步方法,该方法包括:
5.若监测到文件变更事件被触发,则获取与本地端设备相连接的目标节点,所述文件变更事件用于指示本地端设备端所监控目录里的当前文件变更为目标文件,所述目标节点为集群节点中的至少一个节点;
6.根据所连接目标节点和文件变更事件,生成同步命令;
7.响应同步命令,完成目标文件在目标节点中的同步处理。
8.在一个实施例中,该方法在监测到文件变更事件被触发之前,还包括:
9.获取集群节点中至少一个节点,并依次建立与至少一个节点之间的连接;
10.若与目标节点成功连接,则获取目标节点所监控目录下的文件;
11.若目标节点目录所监控的文件与本地端设备端目录所监控的文件一致,则监控目标目录中的文件是否发生变更。
12.在一个实施例中,该方法还包括:
13.若检测到本地端设备所监控目标目录中的文件发生变化,则触发文件变更事件。
14.在一个实施例中,该方法中获取当前本地端设备所监控的目录目录下的文件,包括:
15.若本地端设备所监控的目录变更为目标目录,则重新建立与目标节点的连接;
16.监控目标目录中的文件是否发生了变更;
17.若所述目标目录中的文件发生了变更,则触发文件变更事件。
18.在一个实施例中,该方法还包括:
19.获取监控修改请求信息,所述监控修改请求信息用于请求修改本地端设备当前所监控目录为目标目录;
20.根据所述监控修改请求信息,修改本地端设备所监控的当前目录为目标目录;
21.重新监控目标目录。
22.在一个实施例中,该方法中响应同步指令,包括:
23.获取目标节点的节点数量n;
24.根据所述节点数量和目标目录下的文件,启动n个rsync进程,完成将本地终端设备所监控的目录目录下的文件同步到目标节点。
25.本公开实施例提供的数据同步方法,通过监控本地端设备中目标目录所监控的文件,是否与集群中其余节点中目标目录下的文件相一致,若不一致则进行同步处理,若一致,则监控本节点数据是否发生变化,并监控当前设备所监控的目录是否发生变更,若变更当前所监控的目录为目标目录,则监控目标目录下的文件是否发生了变更,若变更则同步至其他节点,通过上述的处理从而能够提高集群文件同步机制的灵活性、实时性和容错性。
26.根据本公开实施例的第二方面,提供一种数据同步装置,包括:目录监控模块和文件同步模块,
27.目录监控模块,用于当检测到文件变更事件,则获取与本地端设备相连接的集群节点中的目标节点,所述文件变更事件用于指示本地端设备端所监控目录中的当前文件变更为目标文件;
28.所述文件同步模块,用于根据所连接目标节点和文件变化时间,生成同步命令;
29.响应同步命令,完成本地节点中目标文件在目标节点中的同步处理。
30.在一个实施例中,该数据同步装置还包括:主动同步模块,
31.所述主动同步模块,用于在节点重启时,获取集群节点中至少一个节点,并建立与至少一个节点之间的连接,
32.若与目标节点成功连接,则获取目标节点所监控目标目录中的文件;
33.若与目标节点成功连接,则获取目标节点所监控目录中的文件和本地端设备所监控目录中的文件;
34.若目标节点所监控目录中的文件和本地端设备所监控目录中的文件不一致,则将目标节点监控目录中的文件同步至本地端设备所监控的目录中。
35.在一个实施例中,该数据同步装置中的目录监控模块,还用于若本地端设备所监控的目录变更为目标目录,重新建立与目标节点的连接,并读取目标节点所监控的配置文件;
36.若所述目标节点所监控的目录目录下的文件与本地端设备所监控的目录目录下的文件不一致,则同步所述目标目录下的文件至本地端设备,并触发文件变更事件。
37.在一个实施例中,该数据同步装置还包括:监控目录修改模块和监控目录生效模块,
38.所述监控目录修改模块,用于获取监控修改请求信息,所述监控修改请求信息用于请求修改本地端设备当前所监控目录为目标目录;
39.根据所述监控修改请求信息,修改本地端设备所监控的当前目录为目标目录;
40.所述监控目录生效模块,用于重启目录监控模块,监控目标目录中的文件是否发生变化。
41.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
42.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施
例,并与说明书一起用于解释本公开的原理。
43.图1是本公开实施例提供的一种数据同步方法的流程图;
44.图2是本公开实施例提供的一种数据同步方法的逻辑示意图;
45.图3是本公开实施例提供的一种数据同步装置的结构图1;
46.图3a是本公开实施例提供的一种数据同步装置的结构图2;
47.图3b是本公开实施例提供的一种数据同步装置的结构图3;
48.图4是本公开实施例提供的一种数据同步系统的结构图。
具体实施方式
49.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
50.现有技术中,可以通过rsync工具实现文件同步处理,rsync工具是linux系统下的数据镜像备份工具。快速增量备份工具remote sync可以远程同步,支持本地复制,或者与其他ssh、rsync主机同步,并实现在多台主机中同步传输文件。通过rsync工具进行同步,具有安全性高、备份迅速、支持增量备份等优点,目前现有技术中,常将其与inotify结合用以对文件发生变化时触发rsync来完成集群间文件同步,利用linux内核中的消息通知机制inotify,通过监控文件系统文件属性的变化,调动rsync进行文件同步。虽然该技术达到了实时同步的效果,但是也存在不够灵活、性能较低、容错性差的缺点,如:1、所监控的目录无法动态配置动态生效;2、集群规模较大时,顺序执行同步操作耗时较长,性能不佳,实时性差;3、集群中个别节点重启期间发生文件变化,节点重启后文件与其他节点不一致,容错性低。
51.基于上述文件同步时出现的效率低的问题,本技术提出一种数据同步的方法,本技术通过监控本地端设备中目标目录所监控的文件,是否与集群中其余节点中目标目录下的文件相一致,若一致,则监控本节点数据是否发生变化:并监控当前设备所监控的目录是否发生变更,若当前所监控的目录变更为目标目录,则监控目标目录下的文件是否发生了变更,若变更则同步至其他节点,从而提高了文件同步机制的效率和灵活性,降低了文件同步的容错率。
52.本公开实施例提供一种数据同步方法,如图1所示,该数据同步方法包括以下步骤:
53.101、若监测到文件变更事件被触发,则获取与本地端设备相连接的目标节点。
54.该文件变更事件用于指示本地端设备端所监控的目录目录下的文件变更为目标文件,该目标节点为集群节点中的至少一个节点。
55.本技术实施例中,在监测文件变更事件之前,先与至集群中至少一个节点建立连接,并进行验证处理目标录下的文件是否相同,具体的包括:
56.获取集群节点中至少一个节点,并依次建立与至少一个节点之间的连接;
57.若与目标节点成功连接,则获取目标节点所监控目录下的文件;
58.若目标节点目录所监控的文件与本地端设备端目录所监控的文件一致,则标记目
标节点为集群节点中的目标节点。
59.本技术实施例正常启动后,读取该监控目录配置文件和该集群节点ip记录文件,根据该集群节点ip记录文件,从第1个节点开始依次尝试连接,直到第n个节点连接成功,对第n个节点的监控目录下文件与本机进行md5校验:若校验一致后继续监控本地端的文件,若不一致,则同步其他节点的数据至本地端。
60.本技术实施例本地端设备启动时监测到所监控目录下的文件与集群中其他正常运行的节点的文件不一致,则同步其他节点的数据至本节点,从而能够避免本地端关机期间,集群中文件变化了,本地端无法获取数据变化造成的数据不一致。上述的监控目标配置文件有用于指示在本地端设备中监控的目标目录,集群节点ip记录文件,能够查找在集群中查字典本地端设备中监控的目标目录,通过对目标目录的监控能够确定该目标目录下的文件是否发生了变更,若发生了变更则把目标目录下变更的文件同步给集群中其他节点。
61.本技术实施例会根据监控结果确定是否发生了文件变更事件,具体包括:
62.若确定本地端设备所监控的目录目录中的文件发生了变化,则触发文件变更事件。
63.本技术实施例中导致触发文件变更事件的文件,可以是预设获取的,也可以是通过变更命令获取的,也可以同步处理与集群中其他节点所监控的文件而获取的。
64.本技术实施例在启动时会先逐一与集群中所有的节点进行一致性检查,从而能够保障本节点异常重启后能最大程度保证集群文件继续保持一致,可靠性,容错性更高。
65.102、根据所连接目标节点和文件变更事件,生成同步命令。
66.本技术实施例获取本地端目标目录中变更后的文件,读取该集群节点ip记录文件及集群节点数目n,启动n个线程,同时对集群中的节点执行rsync同步命令。
67.本技术实施例在同步变更数据至其他节点是,替换了现有技术中逐一发送的技术,而是启动多线程发送变更后的文件,提高了数据同步效率。
68.103、响应同步命令,完成本地端设备中目标目录下的文件在目标节点中的同步处理。
69.本技术实施例会根据同步算法,执行同步命令,具体包括:
70.获取目标节点的节点数量n;
71.根据该节点数量和目标目录下的文件,启动n个rsync进程,完成将本地终端设备所监控的目录目录下的文件同步到目标节点。
72.本技术实施例在rsync的同步处理算法上增加多线程机制,使rsync命令可同时执行,有效提高大规模集群文件同步性能。
73.本技术实施例会更根据配置修改请求,修改集群中其他节点的配置文件,具体包括:
74.获取监控修改请求信息,所述监控修改请求信息用于请求修改本地端设备当前所监控目录为目标目录;
75.根据所述监控修改请求信息,修改本地端设备所监控的当前目录为目标目录;
76.重新监控目标目录。
77.例如,基于flask启动服务器,激活监听功能,如果监听接收到配置修改请求,则按照请求内容对该监控目录配置文件进行修改。
78.例如,本技术前实施例中修改的是所监控的目录,比如当前监控的是/opt/test1目录下的所有文件,可以修改为监控/opt/test2目录下的所有文件。
79.现有技术中所监控的目录是写死的,要修改只能停服务,手动修改,然后再启动服务,这种方式不仅仅效率低,而且耗费人力资源,而本技术可以通过对所监控的目录进行动态配置和动态生效:变更当前所监控的目录为目标目标,并监控变更后的目标目录中的文件是否发生变化,大幅提升了数据监控的灵活度的效率。
80.重新监控目标目录可以是监控目标目录中的文件是否发生变更,或者是监控目标目标本身是否发生变更,如变更为其他的目录。
81.本技术实施例中可以披露变更多个本地端设备所监控的设备,从而提高效率。
82.本技术实施例在完成本地端设备所监控的目标目录修改后,还会再次与集群中的文件进行同步处理,具体包括:
83.在目标目录变更完成后,重新建立与集群中目标节点的连接;
84.读取本地端设备所监控的目标目录中的的文件和目标节点所监控的目标目标中的文件;
85.若该目标节点所监控的目录中的文件与本地端设备所监控的目标目录中的文件一致,则监控本地端设备中的目标目录中文件是否发生了变更,是否触发文件变更事件;
86.若该目标节点所监控的目录的文件与本地端设备目标目录所监控的文件不一致,则同步目标节点所监控目标目录中的文件至本地端设备所监控的目标目录中。
87.本技术实施例所提及的方法还会在节点异常重启后,再次与集群中的文件进行同步处理,具体包括:
88.读取该监控目录配置文件和该集群节点ip记录文件,根据该集群节点ip记录文件,从第1个节点开始依次尝试连接,直到第n个节点连接成功,对第n个节点的监控目录下文件与本机进行md5校验,如果校验一致则监控本地端,如果校验不一致,则将第n个节点的监控目录下文件用rsync同步至本机,保持集群中文件一致性。
89.本技术实施例在节点重启后主动发起一次rsync同步,从集群中第1个可连接的节点的监控目录下最新文件同步至本机,从而杜绝重启后文件不一致问题。
90.本公开实施例提供的数据同步方法,通过监控本地端设备中目标目录所监控的文件,是否与集群中其余节点中目标目录下的文件相一致,若不一致则进行同步处理,若一致,则监控本节点数据是否发生变化,并监控当前设备所监控的目录是否发生变更,若变更当前所监控的目录为目标目录,则监控目标目录下的文件是否发生了变更,若变更则同步至其他节点,通过上述的处理从而能够提高集群文件同步机制的灵活性、实时性和容错性。
91.基于上述图1对应的实施例提供的数据同步方法,参照图2所示,本实施例提供的数据同步方法包括以下步骤:
92.步骤一、系统正常启动后,主动同步模块读取监控目录配置文件和集群节点ip记录文件,根据集群节点ip记录文件,从第1个节点开始依次尝试连接,直到第n个节点。
93.若目标节点连接成功,则对目标节点的监控目录下文件与本地端设备中的文件进行md5校验,校验一致后继续步骤二,若校验不一致,则进行本地端设备所监控的文件与目标节点所监控文件的同步处理。
94.步骤二、监控模块启动,读取监控目录配置文件,对监控目录配置文件指示的目标
目录进行监控。如果目标目录触发文件变更事件,则调用文件同步模块,进行步骤三。
95.若目标目录中的文件发生了变更,则会触发文件变更事件。
96.在进行监控时,可以定时监控,也可以不间断实时事件监控。
97.通过步骤三的同步处理完成后,继续进行监控,以确保文件的一致性。
98.步骤三、监控目录修改模块启动监听程序,若通过监听程序监听到配置修改请求,则按照请求内容对监控目录配置文件进行修改,产生新的监控目录项,然后调用监控目录生效模块,执行步骤五继续进行监听。
99.通过监控目录修改模块能够修改当前所监控的目录为目标目录,并重启监控模块,监控变更后的目标目录。
100.本技术实施例监控目录修改模块可以通过flask启动一个不间断监听程序。
101.步骤四、文件同步模块获取变化的文件名,确定需要同步的目标节点,读取集群节点ip记录文件及集群节点数目n,启动n个线程,同时对集群中的节点执行rsync同步命令,将文件file同步至集群中的节点,完成文件的同步处理。
102.步骤五、监控目录生效模块对监控模块进行重启,监控模块重新读取修改后的监控目录配置文件,继续步骤二。
103.步骤六、节点异常重启后,主动同步模块读取监控目录配置文件和集群节点ip记录文件,根据集群节点ip记录文件,从第1个节点开始依次尝试连接,直到第n个节点连接成功,对第n个节点的监控目录下文件与本机进行md5校验,如果校验一致则继续步骤二,如果校验不一致,则将第n个节点的监控目录下文件用rsync同步至本机,保持集群中文件一致性,继续执行步骤二。
104.本技术通过上述的数据同步处理,能够通过监听目标目录,获取配置修改请求后,并根据该请求对该监控目录配置文件进行对应修改,修改完成后,通过监控目录生效模块重启目录监控模块,目录监控模块重启过程中重新加载配置文件,达到所监控的目录动态配置动态生效。
105.并且能够主动同步模块在节点重启后主动发起一次rsync同步,从集群中第1个可连接的节点的监控目录下最新文件同步至本机,从而杜绝重启后文件不一致问题。
106.本技术实施例中的文件同步模块在rsync基础上增加多线程机制,使rsync命令可同时执行,有效提高大规模集群文件同步性能。
107.本技术实施例所提供的的方法在启动时先检查本地端目标目目录中的文件与其他某个正常运行的节点的对应目录下的文件是否一致,不一致就同步其他节点的数据;若一致结束判断。从而能够防止节点重启期间其他节点文件变了,本节点不知道。
108.本技术实施例所提供的的方法还会启动目标监控功能和监控目录修改功能,其中,目录监控功能用于监控本节点目标目录下的文件是否与其他节点相一致;监控目录修改功能则是监听是否有目录修改的请求,如果收到请求,就修改监控目录配置文件中写的目录,然后重启目录监控功能,继续不间断监控新的目录下文件是否有文件变化。
109.实施例二
110.基于上述图1和图2对应的实施例中所描述的数据同步方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。
111.本公开实施例提供一种数据同步装置,如图3所示,该数据同步装置30包括:目录
监控模块301和文件同步模块302,
112.该目录监控模块301,用于当检测到文件变更事件,则获取与本地端设备相连接的集群节点中的目标节点,所述文件变更事件用于指示本地端设备端所监控目录中的当前文件变更为目标文件;
113.该文件同步模块302,用于根据所连接目标节点和文件变化时间,生成同步命令;
114.响应同步命令,完成本地节点中目标文件在目标节点中的同步处理。
115.在可选实施例中,如图3a所示,本技术实施例中的数据同步装置30还包括:主动同步模块303,
116.该主动同步模块,用于在节点重启时,获取集群节点中至少一个节点,并建立与至少一个节点之间的连接,
117.若与目标节点成功连接,则获取目标节点所监控目标目录中的文件和本地端设备端中目标目录所监控的文件;
118.若目标节点所监控的文件与本地端设备端所监控的文件一致,则监控目标目录中的文件是否发生变更,继续往后启动目录监控模块和目录修改模块。
119.在可选实施例中,本技术实施例中的数据同步装置30中的目录监控模块301还用于:
120.在目标节点重启后,若本地端设备所监控的目录变更为目标目录,重新建立与目标节点的连接,并读取目标节点所监控的配置文件;
121.若所述目标节点所监控的目录目录下的文件与本地端设备所监控的目录目录下的文件不一致,则同步所述目标目录下的文件至本地端设备,并触发文件变更事件。
122.在可选实施例中,如图3b所示,本技术实施例中的数据同步装置30中还包括监控目录修改模块304和配置生效模块305,
123.监控目录修改模块304,用于获取监控修改请求信息,所述监控修改请求信息用于请求修改本地端设备当前所监控目录为目标目录;
124.根据所述监控修改请求信息,修改本地端设备所监控的当前目录为目标目录;
125.所述监控目录生效模块305,用于重启目录监控模块,监控目标目录中的文件是否发生变化。
126.本公开实施例提供的数据同步装置,通过监控本地端设备中目标目录所监控的文件,是否与集群中其余节点中目标目录下的文件相一致,若不一致则进行同步处理,若一致,则监控本节点数据是否发生变化,并监控当前设备所监控的目录是否发生变更,若变更当前所监控的目录为目标目录,则监控目标目录下的文件是否发生了变更,若变更则同步至其他节点,通过上述的处理从而能够提高集群文件同步机制的灵活性、实时性和容错性。
127.实施例三
128.基于上述图1和图2对应的实施例中所描述的数据同步方法和图3对应是实施例中所描述的数据同步装置,下述为本公开装置实施例,可以用于执行本公开方法实施例。
129.本公开实施例提供一种数据同步系统,该数据同步系统至少包括第一设备和第二设备,该第一设备至少包括第一节点;该第二设备至少包括第二节点;
130.第一设备若监测到文件变更事件被触发,则获取与第一设备相连接的第二节点,该文件变更事件用于指示本地端设备端所监控目标目录中的文件变更为目标文件,该目标
节点为集群节点中的至少一个节点;
131.根据所连接目标节点和文件变更事件,生成同步命令;
132.响应同步命令,完成本地端设备中目标目录下的文件在目标节点中的同步处理;
133.第二设备根据同步命令,同步第一设备中第一节点所监控的目录目录下的文件。
134.例如,如图4所示,本技术实施例中可以包括多个节点,如图中的节点a、节点b和节点c:
135.三个节点可以部署于同一个设备,或者三个节点部署于同一个设备,或者两个节点部署于一个设备,剩余的节点部署于一个设备,该设备部署有本技术提供的数据同步装置,设备中部署的数据同步装置如实施例二和图3所提供的装置,此处不再赘述。
136.图中每个节点都可以根据本技术提供的数据同步方法,对比其余节点与本节点不同,同步其他节点的数据至本节点;或者监控本节点数据是否发生变化,若发生变化,则同步本节点所监控的数据至其他节点,上述数据同步的方法,如实施例一和图1和图2所提供的方法,此处不再赘述。
137.根据本发明实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质包括存储的程序,其中,在程序运行时控制计算机存储介质所在设备执行上述任意一项数据的同步方法。
138.可选地,在本实施例中,上述计算机存储介质可以位于计算机网络中计算设备群中的任意一个计算设备中,或者位于移动终端群中的任意一个移动终端中。
139.可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:获取待传输数据;根据缓存延时确定是否对待传输数据进行删除,其中,缓存延时为待传输数据在发送端缓存区的延迟时间;在确定对待传输数据进行删除的情况下,将待删除数据从待传输数据中删除,得到目标数据,其中,待删除数据根据预设的编码规则确定,预设的编码规则用于对待传输数据进行编码;将目标数据送入数据同步通道进行传输。
140.根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项数据的传输方法。
141.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
142.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
143.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如该单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
144.该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
145.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
146.该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例该方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
147.以上该仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
148.本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1