用于数据系统的数据同步方法和装置与流程

文档序号:11582726阅读:134来源:国知局
用于数据系统的数据同步方法和装置与流程

本申请涉及计算机技术领域,具体涉及网络技术领域,尤其涉及用于数据系统的数据同步方法和装置。



背景技术:

随着互联网技术的快速发展,越来越多的数据系统采用分布式集群系统部署方式。然而在分布式集群式系统中,如何将数据库系统中的数据同步到集群中的各个应用实例内存中以实现数据的定时属性功能,是一个需要解决的重要技术问题。

现有技术中,一种数据同步方法是使各个应用系统直接从数据库系统读取数据以实现数据更新,另一种是通过数据更新系统将数据库系统的数据先同步至缓存系统而各个应用系统从缓存系统读取数据。前者使得多个应用系统可能同时访问数据库系统,导致数据库系统访问压力增大;后者则需要引入新的数据更新系统,需要维护多个系统,增加系统故障的概率。



技术实现要素:

本申请的目的在于提出一种用于数据系统的数据同步方法和装置,来解决以上背景技术部分提到的技术问题。

第一方面,本申请提供了一种用于数据系统的数据同步方法,所述数据系统包括数据库服务器、缓存服务器以及应用服务器集群,所述方法包括:通过应用服务器集群中的各个应用服务器向所述缓存服务器申请更新锁;使用申请到更新锁的应用服务器查询所述数据库服务器中的数据;将所述应用服务器从所述数据库服务器中查询到的数据同步至所述缓存服务器。

在一些实施例中,在将从所述数据库服务器中查询的数据同步至 所述缓存服务器之后,所述方法还包括:释放所述应用服务器申请到的更新锁。

在一些实施例中,在所述使用申请到锁的应用服务器查询所述数据库服务器中的数据之后,所述方法还包括:将所述应用服务器从所述数据库服务器中查询的数据同步至运行于所述应用服务器中的应用中。

在一些实施例中,在所述通过应用服务器集群中的各个服务器向所述缓存服务器申请更新锁之后,所述方法还包括:将所述缓存服务器中的数据同步至所述应用服务器集群中未申请到所述更新锁的应用服务器。

在一些实施例中,所述通过应用服务器集群中的各个服务器向所述缓存服务器申请更新锁,包括:获取所述缓存服务器中预先存储的更新时间,所述更新时间是所述缓存服务器上次从所述数据库服务器进行数据同步的时间;在当前时间与所述更新时间之差达到预设时长时,通过所述应用服务器集群中的各个服务器向所述缓存服务器申请更新锁;以及在所述将从所述数据库服务器中查询的数据同步至所述缓存服务器之后,所述方法还包括:将所述更新时间设置为当前时间。

在一些实施例中,所述方法还包括:在当前时间与所述更新时间之差未达到预设时长时,将所述缓存服务器中的数据同步至所述应用服务器集群中的各个应用服务器。

在一些实施例中,所述更新锁设置有失效时间。

在一些实施例中,所述失效时间设置为所述预设时长的一半。

第二方面,本申请提供了一种用于数据系统的数据同步装置,所述数据系统包括数据库服务器、缓存服务器以及应用服务器集群,所述装置包括:申请单元,用于通过应用服务器集群中的各个应用服务器向所述缓存服务器申请更新锁;查询单元,用于使用申请到更新锁的应用服务器查询所述数据库服务器中的数据;第一同步单元,用于将所述应用服务器从所述数据库服务器中查询到的数据同步至所述缓存服务器。

在一些实施例中,所述装置还包括:释放单元,用于释放所述应 用服务器申请到的更新锁。

在一些实施例中,所述装置还包括:第二同步单元,用于将所述应用服务器从所述数据库服务器中查询的数据同步至运行于所述应用服务器中的应用中。

在一些实施例中,所述装置还包括:第三同步单元,用于将所述缓存服务器中的数据同步至所述应用服务器集群中未申请到所述更新锁的应用服务器。

在一些实施例中,所述申请单元,包括:获取子单元,用于获取所述缓存服务器中预先存储的更新时间,所述更新时间是所述缓存服务器上次从所述数据库服务器进行数据同步的时间;申请子单元,用于在当前时间与所述更新时间之差达到预设时长时,通过所述应用服务器集群中的各个服务器向所述缓存服务器申请更新锁;以及所述装置还包括时间设置单元,用于在所述将从所述数据库服务器中查询的数据同步至所述缓存服务器之后,将所述更新时间设置为当前时间。

在一些实施例中,所述装置还包括:第四同步单元,用于在当前时间与所述更新时间之差未达到预设时长时,将所述缓存服务器中的数据同步至所述应用服务器集群中的各个应用服务器。

在一些实施例中,所述更新锁设置有失效时间。

在一些实施例中,所述失效时间设置为所述预设时长的一半。

本申请提供的用于数据系统的数据同步方法和装置,通过更新锁从应用服务器集群中选取一个应用服务器将数据库服务器的数据实现更新到缓存服务器中,从而避免数据库服务器同时被多个设备访问而造成峰值压力等问题,并且也不会引入新的系统,可以降低系统故障的概率。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的用于数据系统的数据同步方法的一个实施例 的流程图;

图3是根据本申请的用于数据系统的数据同步方法的又一个实施例的流程图;

图4是根据本申请的用于数据系统的数据同步装置的一个实施例的结构示意图;

图5是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的用于数据系统的数据同步方法或装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括应用服务器集群101,缓存服务器102和数据库服务器103。应用服务器集群101可以包括应用服务器1011、1012、……、101n,缓存服务器102和数据库服务器103和应用服务器集群101中的各个应用服务器可以通过网络进行连接,以进行数据同步。

应用服务器集群101中可以通过各个应用服务器所运行的应用程序对外提供服务。应用服务器集群101中的各个应用服务器可以访问缓存服务器102,以实现对应用服务器中数据与缓存服务器中数据的同步。缓存服务器102中可设置有更新锁,应用服务器集群101中的各个应用服务器可以向缓存服务器102发起更新锁的申请,获得更新锁的应用服务器可以有权限直接访问数据库服务器102以及根据从数据库服务器103查询到的数据对缓存服务器102进行数据更新。

需要说明的是,本申请实施例所提供的用于数据系统的数据同步方法主要由应用服务器集群101中的应用服务器执行,一些步骤也可以由缓存服务器执行;相应地,用于数据系统的数据同步装置一般设置于应用服务器集群101中的应用服务器中,一些单元或子单元也可以设置于缓存服务器中。

应该理解,图1中的应用服务器集群、缓存服务器和数据库服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的应用服务器集群、缓存服务器和数据库服务器。

继续参考图2,示出了根据本申请的用于数据系统的数据同步方法的一个实施例的流程200。该数据系统可以参考图1中所描述的示例性系统架构100。所述的用于数据系统的数据同步方法,包括以下步骤:

步骤201,通过应用服务器集群中的各个应用服务器向缓存服务器申请更新锁。

在本实施例中,应用服务器集群中的各个应用服务器可以首先向缓存服务器发送更新锁申请请求。应用服务器集群通常可以包括多个应用服务器。其中,应用服务器通常可以是通过网络向客户端上所运用的应用提供后台支持的服务器,也可以是用于向其他服务器提供服务的服务器。例如,应用服务器可以是部署有网站业务代码以处理网站业务的服务器。本实施例中,应用服务器集群各个应用服务器可以部署有相同的应用,共同对外提供服务。这里需要说明的是,应用服务器也可以是由多个硬件设备组成的服务器系统。

缓存服务器是与通常的数据库服务器相比具有较高访问速度的服务器系统。缓存服务器的数据访问速度快,可以减少数据访问的时间,从而可以承受更多的数据读取操作。

更新锁是放置在可更新资源的锁,用于防止常见形式的死锁,一次只有一个事务可以获得资源的更新锁。如果事务修改资源,则更新锁转换为排它锁。否则,锁转换为共享锁。在本实施例中,更新锁是对缓存服务器中设置的、对缓存服务器进行数据更新操作的更新锁。申请更新锁的各个应用服务器中,只有一个应用服务器可以申请到该 更新锁,以拥有对缓存服务器的数据更新权限。并且,在该应用服务器通过申请到的更新锁执行数据更新操作的操作过程中,其他应用服务器不具有对缓存服务器进行数据更新的操作权限,但具有从缓存服务器中读取数据的操作权限。

步骤202,使用申请到更新锁的应用服务器查询数据库服务器中的数据。

在本实施例中,基于步骤201,上述应用服务器集群中通常会有一个应用服务器申请到更新锁。申请到更新锁的应用服务器会对数据库服务器执行数据查询操作。应用服务器可以根据所部署的应用程序的需求,在数据库服务器查询相应的数据。

步骤203,将上述应用服务器从数据库服务器中查询到的数据同步至缓存服务器。

在本实施例中,基于步骤202,上述应用服务器可以查询到数据库服务器中的数据。在步骤203中,数据系统可以使用上述应用服务器,将其所获取的数据同步到缓存服务器中。

在本实施例的一些可选实现方式,在步骤203之后,上述数据同步方法还包括:释放上述应用服务器申请到的更新锁。在该实现方式中,数据系统在通过上述应用服务器完成将数据库服务器的数据同步到缓存服务器的操作后,及时使上述应用服务器释放更新锁,使得在后续操作中可以再次通过对更新锁的竞争对缓存服务器的数据进行更新。

在本实施例的一些可选实现方式,在步骤202之后,上述数据同步方法还包括:将上述应用服务器从数据库服务器中查询的数据同步至运行于上述应用服务器中的应用中。在本实现方式中,申请到更新锁的应用服务器在对数据库服务器进行数据查询后,除了将查询到的数据更新到缓存服务器外,还将查询到的数据更新到该应用服务器自身所运用的应用中,使得该应用服务器中的应用可以及时更新数据,不必再次到缓存服务器中获取数据,提高了该应用服务器数据更新的效率。

在本实施例的一些可选实现方式,在步骤201之后,上述数据同 步方法还包括:将缓存服务器中的数据同步至应用服务器集群中未申请到更新锁的应用服务器。在本实现方式中,除了使用申请到更新锁的应用服务器对缓存服务器进行数据更新操作外,还可以通过未申请到更新锁的应用服务器从缓存服务器中读取数据以对这些应用服务器中的数据进行更新。通过这种方式,可以保证未申请到更新锁的应用服务器也能对数据进行实时更新。

本申请的上述实施例提供的方法可以通过更新锁从应用服务器集群中选取一个应用服务器将数据库服务器的数据实现更新到缓存服务器中,从而避免数据库服务器同时被多个设备访问而造成峰值压力等问题,并且也不会引入新的系统,可以降低系统故障的概率。

进一步参考图3,其示出了用于数据系统的数据同步方法的又一个实施例的流程300。该数据系统可以参考图1中所描述的示例性系统架构100。该数据同步方法的流程300,包括以下步骤:

步骤301,获取缓存服务器中预先存储的更新时间。

在本实施例中,应用服务器集群中各个应用服务器可以向缓存服务器发送对更新时间的请求,以从缓存服务器中获取到更新时间。其中,该更新时间是缓存服务器上次从数据库服务器进行数据同步的时间。

步骤302,在当前时间与更新时间之差达到预设时长时,通过应用服务器集群中的各个服务器向缓存服务器申请更新锁。

在本实施例中,基于步骤301获取到的更新时间,应用服务器集群中的各个应用服务器可以不断计算当前时间与该更新时间的时间差。当该时间差达到预设时长,各个应用服务器可以向缓存服务器发出对更新锁的申请请求。其中,预设时长即为对缓存服务器进行数据更新的周期。

步骤303,使用申请到更新锁的应用服务器查询数据库服务器中的数据。

在本实施例中,步骤303的具体处理可以参考图2对应实施例的步骤202。

步骤304,将更新时间设置为当前时间。

在本实施例中,在通过步骤303完成对缓存服务器的数据更新之后,可以将缓存服务器中存储的更新时间更新为当前时间,使得该更新时间始终与最新一次对缓存服务器进行数据更新的时间一致。

步骤305,释放上述应用服务器申请到的更新锁。

在本实施例中,步骤305的具体处理可以参考图2对应实施例中相应的实现方式。

在本实施例的一些可选实现方式中,上述数据同步方法还包括:在当前时间与更新时间之差未达到预设时长时,将缓存服务器中的数据同步至应用服务器集群中的各个应用服务器。在本实现方式中,当距离缓存服务器上次进行数据更新的时间尚未达到预设时长时,可以直接使用缓存服务器的数据对应用服务器中的数据进行更新。从而,使得在某些时间可以通过缓存服务器对各个应用服务器提供数据支持,减少了系统对数据库服务器的依赖性,有利于对系统进行扩展。

在本实施例的一些可选实现方式中,上述更新锁设置有失效时间。在本实现方式中,可以通过对更新锁设置失效时间,以防在对缓存服务器进行数据更新的过程中出现死锁,使整个系统出现故障。

在本实施例的一些可选实现方式中,失效时间设置为预设时长的一半。

从图3中可以看出,与图2对应的实施例相比,本实施例中的用于数据系统的数据同步方法的流程300突出了对应用服务器集群中各应用服务器向缓存服务器申请更新锁的时机进行了限定。由此,本实施例描述的方案可以对缓存服务器的数据更新设置一定的周期,从而防止缓存服务器不停地进行数据更新而消耗不必要的资源。

进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种用于数据系统的数据同步装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。该数据系统包括数据库服务器、缓存服务器以及应用服务器集群。

如图4所示,本实施例所述的用于数据系统的数据同步装置400 包括:申请单元401、查询单元402、第一同步单元403。其中,申请单元401用于通过应用服务器集群中的各个应用服务器向缓存服务器申请更新锁;查询单元402用于使用申请到更新锁的应用服务器查询数据库服务器中的数据;第一同步单元403用于将应用服务器从数据库服务器中查询到的数据同步至缓存服务器。

在本实施例中,申请单元401、查询单元402、第一同步单元403的具体处理可以参考图2对应实施例的步骤201、步骤202、步骤203。

在本实施例的一些可选实现方式中,上述数据同步装置400还包括释放单元(未示出),该释放单元用于释放所述应用服务器申请到的更新锁。该实现方式的具体处理可参考图2对应实施例中相应的实现方式。

在本实施例的一些可选实现方式中,上述数据同步装置400还包括第二同步单元(未示出),第二同步单元用于将应用服务器从数据库服务器中查询的数据同步至运行于该应用服务器中的应用中。该实现方式的具体处理可参考图2对应实施例中相应的实现方式。

在本实施例的一些可选实现方式中,上述数据同步装置400还包括第三同步单元(未示出),第三同步单元用于将缓存服务器中的数据同步至应用服务器集群中未申请到更新锁的应用服务器。该实现方式的具体处理可参考图2对应实施例中相应的实现方式。

在本实施例的一些可选实现方式中,上述申请单元401包括:获取子单元(未示出),用于获取缓存服务器中预先存储的更新时间,该更新时间是缓存服务器上次从数据库服务器进行数据同步的时间;申请子单元(未示出),用于在当前时间与上述更新时间之差达到预设时长时,通过应用服务器集群中的各个服务器向所述缓存服务器申请更新锁;以及上述数据同步装置400还包括时间设置单元(未示出),用于在将从所述数据库服务器中查询的数据同步至所述缓存服务器之后,将更新时间设置为当前时间。具体处理可以参考图3对应实施例中相应的步骤。

在本实施例的一些可选实现方式中,上述数据同步装置400还包括:第四同步单元,用于在当前时间与更新时间之差未达到预设时长 时,将缓存服务器中的数据同步至应用服务器集群中的各个应用服务器。该实现方式的具体处理可参考图3对应实施例中相应的实现方式。

在本实施例的一些可选实现方式中,上述更新锁设置有失效时间。该实现方式的具体处理可参考图3对应实施例中相应的实现方式。

在本实施例的一些可选实现方式中,上述失效时间设置为上述预设时长的一半。

下面参考图5,其示出了适于用来实现本申请实施例的各种服务器的计算机系统500的结构示意图。

如图5所示,计算机系统500包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有系统500操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

以下部件连接至i/o接口505:包括硬盘等的存储部分506;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分507。通信部分507经由诸如因特网的网络执行通信处理。驱动器508也根据需要连接至i/o接口505。可拆卸介质509,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器508上,以便于从其上读出的计算机程序根据需要被安装入存储部分506。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分507从网络上被下载和安装,和/或从可拆卸介质509被安装。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码 的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括申请单元、查询单元、第一同步单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一同步单元还可以被描述为“将所述应用服务器从所述数据库服务器中查询到的数据同步至所述缓存服务器的单元”。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备执行用于数据系统的数据同步方法,所述数据系统包括数据库服务器、缓存服务器以及应用服务器集群,所述方法包括:通过应用服务器集群中的各个应用服务器向所述缓存服务器申请更新锁;使用申请到更新锁的应用服务器查询所述数据库服务器中的数据;将所述应用服务器从所述数据库服务器中查询到的数据同步至所述缓存服务器。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合 而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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