一种数据同步方法及设备与流程

文档序号:12121121阅读:来源:国知局

技术特征:

1.一种数据同步方法,其特征在于,所述方法应用于包括多个集群节点以及数据库的集群中,所述集群节点包括接收到待同步数据的数据写入节点和数据拉取节点,该方法包括:

当集群节点接收到数据获取消息时,所述集群节点生成与所述数据获取消息对应的数据获取任务;其中,所述数据获取消息为所述数据写入节点在将所述待同步数据处理完毕并写入所述数据库之后向所述集群中的所有集群节点发送的;

所述集群节点根据所述数据获取任务从所述数据库中获取所述待同步数据。

2.如权利要求1所述的方法,其特征在于,在所述集群节点接收到数据获取消息之前,还包括:

若所述集群节点为所述数据写入节点,所述数据写入节点接收所述客户端发送的所述待同步数据,并根据所述待同步数据的类型对所述待同步数据进行处理;

所述数据写入节点生成与所述待同步数据对应的标识,并将所述标识以及所述待同步数据对应写入所述数据库;

所述数据写入节点设置并触发数据同步事件;

当所述数据写入节点监听到所述数据同步事件时,所述数据写入节点向所述集群中的所有集群节点发送携带所述标识的数据获取消息。

3.如权利要求2所述的方法,其特征在于,在所述数据写入节点向自身以及所述数据拉取节点发送携带所述标识的数据获取消息之后,还包括:

所述数据写入节点判断所述数据拉取节点是否成功接收所述数据获取消息;

若所述数据拉取节点未成功接收所述数据获取消息,所述数据写入节点在预设的时间阈值之后向所述数据拉取节点重新发送所述数据获取消息。

4.如权利要求1所述的方法,其特征在于,所述集群节点根据所述数据获取任务从所述数据库中获取所述待同步数据,具体为:

所述集群节点将所述数据获取任务加入自身的任务队列中;

所述集群节点监听所述任务队列当前是否存在数据获取任务;

若存在,所述集群节点根据所述数据获取任务对应的标识从所述数据库中获取所述待同步数据,所述标识携带于所述数据获取消息中,所述标识在所述待同步数据被写入所述数据库之前对应生成。

5.如权利要求4所述的方法,其特征在于,所述集群节点将所述数据获取任务加入自身的任务队列中,具体为:

所述集群节点判断所述任务队列中是否存在配置与所述数据获取任务一致的重复数据获取任务;

若存在,所述集群节点将所述重复数据获取任务替换为所述数据获取任务;

若不存在,所述集群节点将所述数据获取任务添加至所述任务队列中。

6.如权利要求1所述的方法,其特征在于,在所述集群节点根据所述数据获取任务从所述数据库中获取所述待同步数据之后,还包括:

若所述集群节点发生重启,所述集群节点将当前本地的所有内存数据以及缓存数据删除;

所述集群节点从所述数据库获取与自身对应的内存数据以及缓存数据,并根据所获取的数据进行初始化。

7.如权利要求6所述的方法,其特征在于,还包括:

若所述集群节点根据所述数据获取任务对应的标识从所述数据库中获取所述待同步数据失败,所述集群节点将该所述数据获取任务更新时间戳后重新加入所述任务队列。

8.一种服务器,其特征在于,所述服务器作为集群节点应用于包括多个集群节点以及数据库的集群中,所述集群节点包括接收待同步数据的数据写入节点和数据拉取节点,该服务器包括:

生成模块,当接收到数据获取消息时,生成与所述数据获取消息对应的数据获取任务;其中,所述数据获取消息为所述数据写入节点在将所述待同步数据处理完毕并写入所述数据库之后向所述集群中的所有集群节点发送的;

获取模块,根据所述数据获取任务从所述数据库中获取所述待同步数据。

9.如权利要求8所述的服务器,还包括:

处理模块,接收客户端发送的所述待同步数据,并根据所述待同步数据的类型对所述待同步数据进行处理;

写入模块,生成与所述待同步数据对应的标识,并将所述标识以及所述待同步数据对应写入所述数据库;

设置模块,设置并触发数据同步事件;

发送模块,当监听到所述数据同步事件时,向所述集群中的所有服务器发送携带所述标识的数据获取消息。

10.如权利要求9所述的服务器,其特征在于,还包括:

判断模块,判断所述数据拉取节点是否成功接收所述数据获取消息,并在所述数据拉取节点未成功接收所述数据获取消息时指示所述发送模块在预设的时间阈值之后向所述数据拉取节点重新发送所述数据获取消息。

11.如权利要求8所述的服务器,其特征在于,所述获取模块具体包括:

添加子模块,将所述数据获取任务加入自身的任务队列中;

监听子模块,监听所述任务队列当前是否存在数据获取任务;

获取子模块,在所述监听子模块监听所述任务队列当前存在数据获取任务时根据所述数据获取任务对应的标识从所述数据库中获取所述待同步数 据,所述标识携带于所述数据获取消息中,所述标识在所述待同步数据被写入所述数据库之前对应生成。

12.如权利要求11所述的服务器,其特征在于,所述添加子模块具体用于:

判断是否存在配置与所述数据获取任务一致的重复数据获取任务;

若存在,将所述重复数据获取任务替换为所述数据获取任务;

若不存在,将所述数据获取任务添加至所述任务队列中。

13.如权利要求8所述的服务器,其特征在于,还包括:

删除模块,当所述服务器发生重启,将当前本地的所有内存数据以及缓存数据删除;

初始化模块,从所述数据库获取与自身对应的内存数据以及缓存数据,并根据所获取的数据进行初始化。

14.如权利要求6所述的服务器,其特征在于,还包括:

重处理模块,当所述服务器根据所述数据获取任务对应的标识从所述数据库中获取所述待同步数据失败,将该所述数据获取任务更新时间戳后重新加入所述任务队列。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1