一种数据同步的系统的制作方法

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

本发明涉及数据处理领域,更具体地说,涉及一种数据同步的系统。



背景技术:

数据同步是指多个系统、设备或应用之间的数据同步,使数据保持完整性和统一性。现有的数据同步方法,是业务直接调用同步接口,如果接口比较慢或者同步失败,造成业务功能慢或者失败,影响业务使用。并且,同步和业务绑定,只能单个处理同步数据,不能批量处理同步数据,同步效率较低。



技术实现要素:

有鉴于此,本发明提出一种数据同步的系统,欲实现保障业务使用,以及提高数据同步效率的目的。

为了实现上述目的,现提出的方案如下:

一种数据同步的系统,包括:多个同步客户端代理组件、多个中间数据库、同步管理服务器和协调服务器;

在需要进行数据同步的每个应用端设置一个所述同步客户端代理组件和一个所述中间数据库,设置在所述第一应用端的同步客户端代理组件将第一应用端的更新数据保存至设置在所述第一应用端的中间数据库,以及在所述协调服务器上创建同步状态;

所述同步管理服务器,用于在监测到所述协调服务器的创建的同步状态后,通过所述协调服务器,向在所有非第一应用端设置的同步客户端代理组件分别发送数据更新通知指令;

在所述非第一应用端设置的同步客户端组件,用于在接收到所述数据更新通知指令后,从所述第一应用端的中间数据库获取更新数据;

在所述非第一应用端设置的同步客户端组件,还用于在获取所述更新数据后,对所述非第一应用端设置的中间数据库中的数据进行更新,并对所述非第一应用端进行数据更新。

优选的,所述同步管理服务器,还用于接收用户注册的同步配置信息,并通过所述协调服务器将所述同步配置信息发送至所有同步客户端代理组件。

优选的,所述协调服务器为:zookeeper服务器。

优选的,设置在所述第一应用端的同步客户端代理组件,具体用于:

每隔预设时间周期,针对设置在所述第一应用端的中间数据库保存的处于未更新状态的更新数据,在所述协调服务器上创建相应同步状态。

优选的,设置在所述第一应用端的同步客户端代理组件,具体用于:

在预设时刻,针对设置在所述第一应用端的中间数据库保存的处于未更新状态的更新数据,在所述协调服务器上创建相应同步状态。

优选的,在所述非第一应用端设置的同步客户端组件,还用于:在对所述非第一应用端设置的中间数据库中的数据进行更新完成后,更新所述协调服务器上同步状态节点;

所述同步管理服务器,用于在监测到所述协调服务器上同步状态节点为同步完成状态时,通过所述协调服务器,向所述第一应用端设置的同步客户端代理组件发送更新完成通知指令;

设置在所述第一应用端的同步客户端代理组件,还用于将设置在所述第一应用端的中间数据库中的更新数据的状态,更新为完成更新状态,或删除设置在所述第一应用端的中间数据库中的更新数据。

优选的,在所述非第一应用端设置的同步客户端组件,具体用于:

每隔预设时间周期,根据设置在所述非第一应用端的中间数据库保存的更新数据,对所述非第一应用端进行数据更新。

优选的,在所述非第一应用端设置的同步客户端组件,具体用于:

在预设时刻,根据设置在所述非第一应用端的中间数据库保存的更新数据,对所述非第一应用端进行数据更新。

与现有技术相比,本发明的技术方案具有以下优点:

上述技术方案提供的数据同步的系统,在需要进行数据同步的每个应用端设置一个同步客户端代理组件和一个中间数据库,设置在第一应用端的同步客户端代理组件将第一应用端的更新数据保存至设置在第一应用端的中间数据库,以及在协调服务器上创建同步状态;同步管理服务器在监测到所述协调服务器的创建的同步状态后,通过协调服务器,向在所有非第一应用端设置的同步客户端代理组件分别发送数据更新通知指令,进而完成数据同步。由于先把同步数据同步到数据库中,业务部直接调用同步接口,降低了数据同步与业务的耦合,使用业务不关注同步,能够快速响应用户操作,数据同步通过通知方式,可以异步批量处理,从而提高了业务的性能和数据的同步效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据同步的系统的结构示意图;

图2为本发明实施例提供的一种数据更新的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本实施例提供一种数据同步的系统,参见图1所示,该系统包括:两个同步客户端代理组件11、两个中间数据库12、同步管理服务器13和协调服务器14。

在需要进行数据同步的每个应用端2设置一个同步客户端代理组件11和一个中间数据库12,设置在第一应用端2的同步客户端代理组件11将第一应用端2的更新数据保存至设置在第一应用端2的中间数据库12,以及在协调服务器14上创建同步状态。

需要说明的是本实施例中同一应用端2在不同的数据更新过程中既可以是第一应用端2,也可以是非第一应用端。发生数据更新的应用端2为第一应用端2,根据第一应用端2的更新数据进行数据同步的应用端2称为非第一应用端2。

同步管理服务器13,用于在监测到协调服务器14的创建的同步状态后,通过协调服务器14,向在非第一应用端2设置的同步客户端代理组件11发送数据更新通知指令。设置在第一应用端2的同步客户端代理组件11,通知协调服务器14创建第一应用端2的更新数据的同步状态,更新数据的同步状态节点包括同步中状态和同步完成状态。同步管理服务器13检测到协调服务器14创建的同步状态,即指同步管理服务器13检测到协调服务器14中更新数据的同步状态节点为同步中状态。

在非第一应用端2设置的同步客户端组件11,用于在接收到数据更新通知指令后,从第一应用端2的中间数据库12获取更新数据;

在非第一应用端2设置的同步客户端组件11,还用于在获取更新数据后,对非第一应用端2设置的中间数据库11中的数据进行更新,并对非第一应用端2进行数据更新。同步客户端组件11根据同步配置信息,实现不同应用之间的数据更新,例如同步配置信息为用户表,用户表包含应用用户名和真实身份标识之间的对应关系,同一用户在不同应用中用户名可能不一样,通过用户表,可以确定同一用户在不同应用的用户名,进而对同一用户在不同应用中的数据进行同步。具体可以设置一个同步数据库保存同步配置信息。

本实施例提供的数据同步的系统,由于先把同步数据同步到数据库中,业务部直接调用同步接口,降低了数据同步与业务的耦合,使用业务不关注同步,能够快速响应用户操作,数据同步通过通知方式,可以异步批量处理,从而提高了业务的性能和数据的同步效率。

同步管理服务器13,还用于接收用户注册的同步配置信息,并通过协调服务器14将同步配置信息发送至所有同步客户端代理组件11。

优选的,协调服务器14为zookeeper服务器。

在协调服务器14上创建同步状态,具体的包括:设置在第一应用端2的同步客户端代理组件11每隔预设的时间周期,针对设置在第一应用端2的中间数据库12保存的处于未更新状态的更新数据,在协调服务器14上创建相应同步状态。预设的时间周期为技术人员根据应用具体情况进行设置,如果应用数据更新的较频繁,时间周期可以适当减小。中间数据库12保存的更新数据对应的状态可以包括未更新状态和完成更新状态。设置在第一应用端2的同步客户端代理组件11将第一应用端2的更新数据保存至设置在第一应用端2的中间数据库12时,更新数据对应的状态为未更新状态;设置在第一应用端2的同步客户端代理组件11,接收到协调服务器14发送的更新完成通知指令后,更新第一应用端2的中间数据库12中更新数据对应的状态为完成更新状态。

在协调服务器14上创建同步状态,具体的包括设置在第一应用端2的同步客户端代理组件11,在预设时刻,针对设置在第一应用端2的中间数据库12保存的处于未更新状态的更新数据,在协调服务器14上创建相应同步状态。技术人员可以根据应用更新的具体情况,设置预设时刻,例如,预设时刻可以为每天的上午1点、8点、12点,以及下午2点、6点。

在非第一应用端2设置的同步客户端组件11,还用于在对非第一应用端2设置的中间数据库12中的数据进行更新完成后,更新协调服务器14上同步状态节点,即更新协调服务器14上同步状态节点为同步完成状态。

同步管理服务器13,用于在监测到协调服务器14上同步状态节点为同步完成状态时,通过协调服务器13,向第一应用端2设置的同步客户端代理组件11发送更新完成通知指令;

设置在第一应用端2的同步客户端代理组件11,还用于将设置在第一应用端2的中间数据库12中的更新数据的状态,更新为完成更新状态,或删除设置在第一应用端2的中间数据库12中的更新数据。

非第一应用端2设置的同步客户端组件11,具体用于每隔预设时间周期,根据设置在非第一应用端2的中间数据库12保存的更新数据,对非第一应用端2进行数据更新。

在所述非第一应用端2设置的同步客户端组件11,具体用于在预设时刻,根据设置在非第一应用端2的中间数据库12保存的更新数据,对非第一应用端2进行数据更新。

图2为本实施例介绍的一条数据更新的具体过程。下面对图2示出的数据更新过程包括步骤:

s1:用户注册同步配置信息至同步管理服务器13,同步数据库20存储同步配置信息。

s2:同步管理服务器13将同步配置信息注册到协调服务器14。

s3:协调服务器14将监听同步配置同步到所有同步客户端代理组件11。

这样同步客户端代理组件可以监听相应的应用是否发生了相关数据更新,进而进行后续操作。

s4:第一应用端2将相应更新数据发送至设置在第一应用端2的同步客户端代理组件11。

s5:同步客户端代理组件11将更新数据保存到设置在第一应用端2的中间数据库12,并且设置更新数据的状态为未更新状态。

s6:在协调服务器14上创建同步状态,设置同步状态节点为同步中状态。

s7:同步管理服务器13监听到协调服务器14创建的处于同步中状态节点的同步状态后,通知非第一应用端2更新数据。

s8:设置在非第一应用端2的同步客户端代理组件11监听到更新数据通知指令。

s9:设置在非第一应用端2的同步客户端代理组件11调用设置在第一应用端2的同步客户端代理组件11的数据接口,获取设置在第一应用端2的中间数据库12中的更新数据。

s10:设置在非第一应用端2的同步客户端代理组件11将获取的更新数据,保存至设置在非第一应用端2的中间数据库12。

s11:设置在非第一应用端2的同步客户端代理组件11将根据获取的更新数据对非第一应用端2进行数据更新。

s12:对非第一应用端2进行数据更新完成后,更新协调服务器14中同步状态节点为同步完成状态。

s13:同步管理服务器13监听到协调服务器14上同步状态节点为同步完成状态。

s14:同步管理服务器13通知设置在第一应用端2的同步客户端代理组件11更新完成。

s15:设置在第一应用端2的同步客户端代理组件11监听到更新完成通知指令,更新设置在第一应用端2的中间数据库12的更新数据的状态为完成更新状态,或者删除设置在第一应用端2的中间数据库12中的更新数据。

上面介绍的是一条数据的更新过程。更新的是多条数据时,每条数据更新过程一致,不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对本发明所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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