本发明涉及数据处理,尤其涉及一种数据同步方法、装置、终端及存储介质。
背景技术:
1、在软件系统中,特别是分布式系统中,数据同步是非常常见的需求。通常情况下,数据同步源向多个同步目标同步数据,同步目标可能在运行期间动态变化。然而,同步源和同步目标可以在同一个进程内、同一个节点的不同进程或者不同节点。因此,同步源和同步目标之间的通信可能是不可靠的。
2、目前,数据同步通常采用全同步和变化同步相结合的方法,在同步目标初始化时采用全同步方法将数据同步源的数据同步至同步目标,当存在数据变化时,则采用变化同步方法,但是在同步源和同步目标之间的通信不稳定时,全同步的数据处理压力、通信压力陡增,可能引起恶性循环,从而导致系统“雪崩”。即便是在变化同步过程,若采用的是变化记录实时向同步目标发出的方式,也同样会由于通信的不稳定造成错过变化记录,最终仍需要进行全同步。
技术实现思路
1、本发明实施例提供了一种数据同步方法、装置、终端及存储介质,以解决因通信异常导致的数据同步处理工作量大的问题。
2、第一方面,本发明实施例提供了一种数据同步方法,包括:
3、响应于同步目标发送的变化同步请求,从当前缓存区对应的索引中查找当前变化记录标识对应的变化记录在当前缓存区中的存储位置;所述变化同步请求携带所述当前变化记录标识;所述当前缓存区包括至少一条变化记录;所述变化记录包括变化记录标识和数据变化内容;
4、提取当前缓存区中当前变化记录标识对应的存储位置之后的所有数据变化内容和所述当前缓存区的最后一个存储位置的变化记录对应的变化记录标识;
5、将所述当前变化记录标识之后的所有数据变化内容和最后一个变化记录的变化记录标识均发送至所述同步目标,以使所述同步目标根据接收到的数据变化内容更新本地数据,并将接收到的最后一个变化记录的变化记录标识作为更新后的当前变化记录标识。
6、第二方面,本发明实施例提供了一种数据同步装置,包括:
7、索引查找模块,用于响应于同步目标发送的变化同步请求,从当前缓存区对应的索引中查找当前变化记录标识对应的变化记录在当前缓存区中的存储位置;所述变化同步请求携带所述当前变化记录标识;所述当前缓存区包括至少一条变化记录;所述变化记录包括变化记录标识和数据变化内容;
8、变化记录获取模块,用于提取当前缓存区中当前变化记录标识对应的存储位置之后的所有数据变化内容和所述当前缓存区的最后一个存储位置的变化记录对应的变化记录标识;
9、数据同步模块,用于将所述当前变化记录标识之后的所有数据变化内容和最后一个变化记录的变化记录标识均发送至所述同步目标,以使所述同步目标根据接收到的数据变化内容更新本地数据,并将接收到的最后一个变化记录的变化记录标识作为更新后的当前变化记录标识。
10、第三方面,本发明实施例提供了一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面任一种可能的实现方式所述方法的步骤。
11、第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面任一种可能的实现方式所述方法的步骤。
12、本发明实施例提供一种数据同步方法、装置、终端及存储介质,该方法响应于同步目标发送的变化同步请求,从当前缓存区对应的索引中查找当前变化记录标识对应的变化记录在当前缓存区中的存储位置;所述变化同步请求携带所述当前变化记录标识;提取当前缓存区中当前变化记录标识对应的存储位置之后的所有数据变化内容和所述当前缓存区的最后一个存储位置的变化记录对应的变化记录标识;将所述当前变化记录标识之后的所有数据变化内容和最后一个变化记录的变化记录标识均发送至所述同步目标,以使所述同步目标根据接收到的数据变化内容更新本地数据,并将接收到的最后一个变化记录的变化记录标识作为更新后的当前变化记录标识。上述方法提供了一种带索引的变化记录缓存区,能够在当前缓存区中存储多条变化记录,只要同步目标中的当前变化记录标识还位于当前缓存区,则可以采用变化同步方法对同步目标进行数据同步,以克服因通信不稳定错过最新的变化记录而频繁全同步导致数据处理工作量大的问题。
1.一种数据同步方法,其特征在于,应用于数据同步源,包括:
2.根据权利要求1所述的数据同步方法,其特征在于,所述从当前缓存区对应的索引中查找当前变化记录标识对应的变化记录在当前缓存区中的存储位置,包括:
3.根据权利要求1所述的数据同步方法,其特征在于,所述当前缓存区为环形缓存;所述方法还包括:
4.根据权利要求3所述的数据同步方法,其特征在于,所述将第一元素插入至环形缓存对应的索引中,包括:
5.根据权利要求1-4中任一项所述的数据同步方法,其特征在于,所述变化记录标识为通用唯一标识码。
6.根据权利要求1所述的数据同步方法,其特征在于,所述方法还包括:
7.一种数据同步装置,其特征在于,包括:
8.根据权利要求7所述的数据同步装置,其特征在于,所述变化记录获取模块包括:
9.一种终端,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求1至6中任一项所述的数据同步方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上的权利要求1至6中任一项所述数据同步方法的步骤。