本技术涉及数据库,具体而言,本技术涉及一种数据同步方法、数据同步系统的节点、设备及存储介质。
背景技术:
1、支持同步关系型数据库的数据同步系统,一般也会支持按表来同步数据,比如将上游数据库中的一张表同步到下游的数据库中,或者将上游数据库中的一张表同步到下游的消息队列中。
2、然而相关的数据同步方法中,存在数据同步业务连续性差和因故障导致业务停顿时间较久的技术问题。
技术实现思路
1、本技术实施例提供了一种数据同步方法、数据同步系统的节点、设备及存储介质,用于解决数据同步业务连续性差和因故障导致业务停顿时间较久的技术问题。
2、根据本技术实施例的第一方面,提供了一种数据同步方法,应用于数据同步系统,数据同步系统包括一个主调度节点和至少两个同步节点,同步节点用于对待同步数据进行数据同步,主调度节点用于为待同步数据分配一个作为主节点的同步节点和至少一个作为副节点的同步节点,方法由主调度节点执行,方法包括:
3、从至少两个同步节点中确定出现异常的异常同步节点;
4、确定异常同步节点正在处理的第一待同步数据;
5、若异常同步节点为第一待同步数据的主节点,则从第一待同步数据的各个副节点中确定一个副节点作为第一待同步数据的新的主节点;
6、向第一待同步数据的新的主节点发送第一指示信息;第一指示信息包括第一待同步数据的标识,第一指示信息用于指示新的主节点作为第一待同步数据的新的主节点进行数据同步。
7、在一个可能的实现方式中,若异常同步节点为第一待同步数据的主节点,选择模块还用于从候选同步节点中确定一个同步节点作为第一待同步数据的新的副节点;候选同步节点为至少两个同步节点中,除第一待同步数据的主节点和副节点外的同步节点;
8、发送模块还用于向第一待同步数据的新的副节点发送第二指示信息;第二指示信息用于指示新的副节点作为第一待同步数据的新的副节点进行数据同步。
9、在另一个可能的实现方式中,数据同步系统的主调度节点还包括:
10、第一选择单元,用于若异常同步节点为第一待同步数据的副节点,则从候选同步节点中确定一个同步节点作为第一待同步数据的新的副节点;候选同步节点为至少两个同步节点中,除第一待同步数据的主节点和副节点外的同步节点;
11、第一发送单元,用于向第一待同步数据的新的副节点发送第二指示信息,第二指示信息用于指示新的副节点作为第一待同步数据的新的副节点进行数据同步。
12、在又一个可能的实现方式中,选择模块包括:
13、获取单元,用于若异常同步节点为第一待同步数据的主节点,则获取第一待同步数据的各个副节点的同步进度;
14、处理单元,用于将同步进度最大的副节点作为第一待同步数据的新的主节点。
15、在又一个可能的实现方式中,发送单元还用于确定异常同步节点的同步进度,向新的主节点发送异常同步节点的同步进度,以使得新的主节点基于异常同步节点的同步进度继续进行数据同步。
16、在又一个可能的实现方式中,第一发送单元还用于向新的副节点发送第一待同步数据的同步信息,以使得新的副节点根据同步信息进行数据同步;
17、同步信息包括:待同步数据的源地址和待同步数据的目的地址。
18、在又一个可能的实现方式中,数据同步系统的主调度节点还包括:
19、接收模块,用于接收终端发送的同步请求,同步请求用于请求主调度节点为待同步数据分配进行数据同步的同步节点,同步请求包括待同步数据的同步信息;
20、分配模块,用于针对每一个待同步数据,从至少两个同步节点中分配一个同步节点作为待同步数据的主节点,分配至少一个同步节点作为待同步数据的副节点;
21、第二发送模块,用于针对每一个待同步数据,向同步数据的主节点和至少一个副节点发送待同步数据的同步信息,供主节点和至少一个副节点根据同步信息进行数据同步;
22、同步信息包括:待同步数据的源地址和待同步数据的目的地址。
23、在又一个可能的实现方式中,数据同步系统的主调度节点还包括:
24、获取单元,用于周期性获取各个同步节点的节点状态;
25、第二确定模块,包括:
26、异常确定单元,用于对于任意一个同步节点,若超过预设时间阈值未接收到同步节点的节点状态,或接收到的同步节点的节点状态为异常状态,则确定同步节点为异常同步节点。
27、在又一个可能的实现方式中,主节点用于执行数据同步的数据拉取操作、数据处理操作和数据写入操作;副节点用于执行数据同步的数据拉取操作和数据处理操作。
28、根据本技术实施例的第二方面,提供了一种数据同步方法,应用于数据同步系统,数据同步系统包括一个主调度节点和至少两个同步节点,同步节点用于对待同步数据进行数据同步,主调度节点用于为待同步数据分配一个作为主节点的同步节点和至少一个作为副节点的同步节点,方法由同步节点执行,方法包括:
29、若接收到主调度节点发送的第一指示信息,则作为第一待同步数据的新的主节点进行数据同步;
30、若接收到主调度节点发送的第二指示信息,则作为第一待同步数据的新的副节点进行数据同步;
31、其中,第一指示信息和第二指示信息均包括第一待同步数据的标识,第一待同步数据为出现异常的异常同步节点正在处理的数据。
32、在一个可能的实现方式中,数据同步系统的同步节点包括:
33、第一上报模块,用于针对每一个正在处理的待同步数据,周期性上报待同步数据的同步进度。
34、在又一个可能的实现方式中,接收模块包括:
35、第一接收单元,用于接收主调度节点发送的异常同步节点的同步进度;
36、同步单元,用于基于异常同步节点的同步进度继续进行数据同步。
37、在又一个可能的实现方式中,接收模块还包括:
38、第二接收单元,用于接收第一待同步数据的同步信息;
39、第二同步单元,用于根据同步信息进行数据同步;
40、同步信息包括:待同步数据的源地址和待同步数据的目的地址。
41、在又一个可能的实现方式中,数据同步系统的同步节点还包括:
42、第二上报模块,用于定时上报同步节点的节点状态;供主调度节点根据节点状态判断同步节点是否发生异常。
43、根据本技术实施例的第三方面,提供了一种数据同步系统的主调度节点,数据同步系统包括一个主调度节点和至少两个同步节点,同步节点用于对待同步数据进行数据同步,主调度节点用于为待同步数据分配一个作为主节点的同步节点和至少一个作为副节点的同步节点,主调度节点包括:
44、第一确定模块,用于从至少两个同步节点中确定出现异常的异常同步节点;
45、第二确定模块,用于确定异常同步节点正在处理的第一待同步数据;
46、选择模块,用于若异常同步节点为第一待同步数据的主节点,则从第一待同步数据的各个副节点中确定一个副节点作为第一待同步数据的新的主节点;
47、发送模块,用于向第一待同步数据的新的主节点发送第一指示信息;第一指示信息包括第一待同步数据的标识,第一指示信息用于指示新的主节点作为第一待同步数据的新的主节点进行数据同步。
48、根据本技术实施例的第四方面,提供了一种数据同步系统的同步节点,数据同步系统包括一个主调度节点和至少两个同步节点,同步节点用于对待同步数据进行数据同步,主调度节点用于为待同步数据分配一个作为主节点的同步节点和至少一个作为副节点的同步节点,同步节点包括:
49、第一处理模块,用于若接收到主调度节点发送的第一指示信息,则作为第一待同步数据的新的主节点进行数据同步;
50、第二处理模块,用于若接收到主调度节点发送的第二指示信息,则作为第一待同步数据的新的副节点进行数据同步;
51、其中,第一指示信息和第二指示信息均包括第一待同步数据的标识,第一待同步数据为出现异常的异常同步节点正在处理的数据。
52、根据本技术实施例的第五方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行程序时实现如第一方面或者第二方面所提供的方法的步骤。
53、根据本技术实施例的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或者第二方面所提供的方法的步骤。
54、根据本技术实施例的第七方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面或者第二方面所提供的方法的步骤。
55、本技术实施例提供的技术方案带来的有益效果是:
56、本技术实施例提供的数据同步方法,通过主调度节点为待同步数据分配一个作为主节点的同步节点和至少一个作为副节点的同步节点,供待同步数据通过主节点和副节点进行数据同步,当主调度节点检测到出现异常的异常同步节点时,会首先确认异常同步节点正在处理的第一待同步数据,针对第一待同步数据,若异常节点为待同步数据的主节点,则可以从第一待同步数据的各个副节点中确定一个副节点作为第一待同步数据的新的主节点,并向第一待同步数据的新的主节点发送包括第一待同步数据的标识的第一指示信息,以使得新的主节点能根据指示信息作为第一待同步数据的新的主节点进行数据同步,由于进行数据同步的待同步数据除主节点外都有副节点,从而使得第一待同步数据的主节点出现异常时,能迅速从执行第一待同步数据的数据同步的各个副节点中确定一个副节点接替原有主节点的数据同步任务,作为第一待同步数据的新的主节点继续进行数据同步操作,实现了第一待同步数据发生同步中断后能及时恢复到数据同步状态,解决了数据同步业务连续性差和因故障导致业务停顿时间较久的问题。