CN110597910A - 一种异地数据同步方法、装置和系统 - Google Patents
一种异地数据同步方法、装置和系统 Download PDFInfo
- Publication number
- CN110597910A CN110597910A CN201910864256.XA CN201910864256A CN110597910A CN 110597910 A CN110597910 A CN 110597910A CN 201910864256 A CN201910864256 A CN 201910864256A CN 110597910 A CN110597910 A CN 110597910A
- Authority
- CN
- China
- Prior art keywords
- machine room
- data
- management server
- message queue
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种异地数据同步方法、装置和系统。本申请应用于第一机房和第二机房之间的内存数据库的同步过程,该方法包括:第一机房的数据管理服务器对物理数据库与所述第一机房本地的内存数据库进行同步,并将所述第一机房本地的内存数据库中的缓存数据的变更信息存储到消息队列;其中,所述消息队列为所述第一机房的数据管理服务器和所述第二机房的数据管理服务器所共享;第二机房的数据管理服务器监听所述消息队列,并响应于所述消息队列中的缓存数据的变更信息,根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库。
Description
技术领域
本申请涉及数据管理技术领域,特别是涉及一种异地数据同步方法、装置和系统。
背景技术
随着互联网的发展,各种基于互联网的业务在逐步扩大,业务的稳定性备受关注,目前业界采用异地多活机制以保证业务的稳定性。异地多活机制是指,位于不同地理区域的机房中都部署同样的业务,可以同时对外提供服务。但是目前在异地多活机制中,尚未有针对缓存数据同步的方案。
一般地,业界通常选用redis作为缓存数据的存储结构。redis是一种高性能key-value(键值对)数据库,是一种内存数据库。Redis的部署方式分为单点和集群两种模式,单点模式是指只部署一个redis节点,或者说主从redis节点以提高可靠性;集群模式则都是采用分片部署。这两种模式都是针对单机房部署的情况,而对于异地多机房,如何部署以及同步redis,目前尚未有解决方案。
发明内容
本申请实施例提供了一种异地数据同步方法、装置和系统,用以实现异地缓存数据同步。
第一方面,提供一种异地数据同步方法,应用于第一机房和第二机房之间的内存数据库的同步过程,该方法包括:
第一机房的数据管理服务器对物理数据库与所述第一机房本地的内存数据库进行同步,并将所述第一机房本地的内存数据库中的缓存数据的变更信息存储到消息队列;其中,所述消息队列为所述第一机房的数据管理服务器和所述第二机房的数据管理服务器所共享;第二机房的数据管理服务器监听所述消息队列,并响应于所述消息队列中的缓存数据的变更信息,根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库。
可选地,所述缓存数据的变更信息包括被删除的缓存数据的键值;所述根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库,包括:根据所述消息队列中被删除的缓存数据的键值,删除所述第二机房本地的内存数据库中的相应键值或相应键值的缓存数据。
可选地,所述缓存数据的变更信息还包括删除模式指示信息,所述删除模式指示信息用于指示删除缓存数据。
可选地,所述缓存数据的变更信息包括缓存数据更新命令;所述根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库,包括:在所述第二机房的数据管理服务器的内存数据库中执行所述消息队列中的缓存数据更新命令,以更新所述第二机房本地的内存数据库中的相应缓存数据。
可选地,所述缓存数据的变更信息还包括更新模式指示信息,所述更新模式指示信息用于指示更新缓存数据。
可选地,还包括:所述第二机房的数据管理服务器响应于数据访问请求,访问所述第二机房本地的内存数据库;若未从所述第二机房本地的内存数据库访问到所请求访问的数据,则访问所述物理数据库,并将从所述物理数据库访问到的数据存储到所述第二机房本地的内存数据库中。
可选地,还包括:若所述物理数据库位于所述第一机房,则所述第二机房的数据管理服务器将所述第二机房的物理数据库与所述第一机房的物理数据库进行同步;若所述物理数据库位于所述第二机房,则所述第一机房的数据管理服务器将所述第一机房的物理数据库与所述第二机房的物理数据库进行同步。
可选地,所述内存数据库为redis数据库。
第二方面,提供一种数据同步方法,包括:本地机房的数据管理服务器将物理数据库与本地机房的内存数据库进行同步;所述本地机房的数据管理服务器将所述本地机房的内存数据库中的缓存数据的变更信息存储到消息队列,所述消息队列中的缓存数据的变更信息用于被异地机房的数据管理服务器用来更新所述异地机房的内存数据库;其中,所述消息队列为所述第一机房的数据管理服务器和所述第二机房的数据管理服务器所共享。
第三方面,提供一种数据同步方法,包括:本地机房的数据管理服务器监听消息队列,所述消息队列为所述第一机房的数据管理服务器和所述第二机房的数据管理服务器所共享;所述本地机房的数据管理服务器响应于所述消息队列中的缓存数据的变更信息,根据所述消息队列中的缓存数据的变更信息更新本地机房的内存数据库;其中,所述消息队列中的缓存数据的变更信息是所述异地机房的数据管理服务器在所述异地的内存数据库的缓存数据发生变更时存储到所述消息队列中的。
第四方面,提供一种异地数据同步系统,包括第一机房和第二机房,所述第一机房和所述第二机房中分别包括:数据管理服务器、内存数据库。第一机房的数据管理服务器,用于对物理数据库与所述第一机房本地的内存数据库进行同步,并将所述第一机房本地的内存数据库中的缓存数据的变更信息存储到消息队列;其中,所述消息队列为所述第一机房的数据管理服务器和所述第二机房的数据管理服务器所共享。第二机房的数据管理服务器,用于监听所述消息队列,并响应于所述消息队列中的缓存数据的变更信息,根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库。
第五方面,提供一种数据管理服务器,包括:处理器、存储器;所述存储器,与所述处理器连接,配置为存储计算机指令;所述处理器,与所述存储器连接,配置为执行所述计算机指令以使得所述数据管理服务器执行如上述第一方面中任一项所述的方法,或第二方面中任一项所述的方法,或第三方面中任一项所述的方法。
本申请的上述实施例中,第一机房的数据管理服务器将其本地机房的内存数据库中的缓存数据的变更信息存储到消息队列,基于消息队列的监听机制,使得第二机房的数据管理服务器可以监听到该消息队列的变化,并获取该消息队列中新存储的缓存数据的变更信息,并根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库,从而实现了异地机房的内存数据库的同步。
附图说明
图1示例性示出了本申请实施例适用的系统架构;
图2示例性示出了本申请实施例中的异地数据同步流程示意图;
图3、图4分别示例性示出了本申请实施例中机房1和机房2之间的业务流程示意图;
图5示例性示出了本申请实施例中的缓存数据同步流程示意图;
图6示例性示出本申请实施例中的数据管理服务器的结构示意图。
具体实施方式
对于异地多活机制,目前业界对不同机房的内存数据库中的缓存数据的部署和同步尚未有解决方案。
一种可能的解决方案是:缓存数据采用冷备方式,即,针对业务数据的读写请求,均由位于不同地理区域的多个机房中的一个指定机房进行响应和处理,该指定机房根据其缓存数据响应来自于本机房以及其他机房的数据读写请求。上述方法中,如果该指定机房所响应的数据访问请求来自于其他机房,则会涉及跨机房访问缓存数据的问题。而跨机房进行缓存数据的访问,则网络时延较大,可能达到几十毫秒,业务性能降低,对于用户来说可能感知的就是卡顿问题,用户体验差。
为了解决上述问题,本申请实施例提出了一种异地数据同步方案。采用本申请实施例,缓存数据可以在不同机房之间进行同步,这样,不同机房内的数据管理服务器可以读写各自机房的缓存数据,从而减少网络时延。
下面结合附图对本申请实施例进行详细说明。
图1示例性示出了本申请实施例适用的系统架构示意图。
如图所示,该系统架构中包括第一机房100和第二机房200,第一机房100和第二机房200位于不同的地理位置区域,即第一机房100和第二机房200为异地机房。第一机房100中包括数据管理服务器101,数据管理服务器101连接有物理数据库102、内存数据库103和消息队列104。第二机房200中包括数据管理服务器201,数据管理服务器201连接有物理数据库202、内存数据库203。
本申请实施例中,内存数据库是指存储于系统内存中的缓存数据的结构。为了与内存数据库相区别,本申请实施例中将不是存储于内存,而是存储于硬盘、磁盘阵列等外部存储介质中的数据库,称为物理数据库。
其中,物理数据库(102,202)的数据库类型可以是关系型数据库。内存数据库(103,203)的数据库类型可以是redis,以保证数据读写性能。
可选地,在第一机房100内,内存数据库103可位于数据管理服务器101的内存中;在第二机房200内,内存数据库203可位于数据管理服务器202的内存中。
本申请实施例中,第一机房100中的数据管理服务器101与第二机房200中的数据管理服务器201,可以实现相同的业务功能,比如能够支持数据访问功能以及数据同步功能。
该系统架构中还包括终端300以及负载均衡设备400。负载均衡设备400位于网络侧,用以对终端300发送的数据访问请求进行负载均衡以及路由。具体地,终端300发送的数据访问请求到达负载均衡设备400后,负载均衡设备400根据负载均衡策略将该数据访问请求发送给机房100或机房200。负载均衡策略可根据业务需要或其他因素来设置,比如一种负载均衡策略是按照地域进行负载均衡,即,可根据终端所在的地理位置将该终端发送的数据访问请求路由到距离该终端较近的机房。
第一机房100内的数据管理服务器101可以通过访问内存数据库103以响应数据读写请求,第二机房200内的数据管理服务器201可以通过访问内存数据库203以响应数据读写请求。
第一机房100中的内存数据库103与第二机房200中的内存数据库203之间,可基于消息队列104进行数据同步。消息队列104为第一机房中的数据管理服务器和第二机房中的数据管理服务器所共享。当然,消息队列也可以位于第二机房,本申请实施例对此不作限制。
消息队列104作为中间件,可以基于其本身固有的监听(watch)机制,实现不同机房内的内存数据库的同步。具体地,当一个机房本地的内存数据库中的数据变更时,可将变更的缓存数据存储到消息队列中。当基于消息队列的监听机制,另一个机房内的数据管理服务器监听到该消息队列有更新时,可将该消息队列中的更新数据同步到该另一个机房本地的内存数据库中,从而实现不同机房的内存数据库之间的同步。
可选地,消息队列104可以采用多种消息处理技术,比如kafka、activemq等,本申请实施例对此不做限制。
上述系统架构是以两个机房为例描述的,在具体实施时,还可以有更多数量的机房,本申请实施例对此不作限制。
图2示例性示出了本申请实施例提供的异地数据同步流程示意图。该流程以第一机房和第二机房之间进行数据同步为例描述,其中,第一机房和第二机房位于不同的地理区域,也即第一机房和第二机房为异地机房。
需要说明的是,本流程中的“第一机房”可以是图1中的第一机房100,“第二机房”可以是图1中的第二机房200;或者,本流程中的“第一机房”也可以是图1中的第二机房200,“第二机房”为图1中的第二机房200。
如图所示,该流程可包括:
S10:第一机房的数据管理服务器对物理数据库与第一机房本地的内存数据库进行同步,并将第一机房本地的内存数据库中的缓存数据的变更信息存储到消息队列。
其中,物理数据库可以是第一机房内的物理数据库,也可以是第二机房内的物理数据库。
可选地,将第一机房本地的内存数据库中的缓存数据的变更信息存储到消息队列的操作,可以异步执行。
S20:第二机房的数据管理服务器监听所述消息队列,并响应于该消息队列中的缓存数据的变更信息,根据该消息队列中的缓存数据的变更信息更新第二机房本地的内存数据库。
可选地,所述内存数据库为redis数据库。即,第一机房和第二机房的内存数据库为redis数据库。
可选地,缓存数据的变更信息可以仅包括发生变更的缓存数据的变更信息,而无需包括所有缓存数据的信息。比如,以redis数据为例,可以仅包含新增加的redis数据的键值对(key,value),或者仅包含需要删除的redis数据的键值(key)。
本申请的上述实施例中,第一机房的数据管理服务器将其本地机房的内存数据库中的缓存数据的变更信息存储到消息队列,基于消息队列的监听机制,使得第二机房的数据管理服务器可以监听到该消息队列的变化,并获取该消息队列中新存储的缓存数据的变更信息,并根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库,从而实现了异地机房的内存数据库的同步。
可选地,用户的数据访问请求被路由到第二机房后,第二机房还可基于更新后的内存数据库响应该数据访问请求,进步一地,若第二机房本地的内存数据库中没有该数据访问请求所请求访问的数据,则可访问物理数据库,并将访问到的数据同步到第二机房本地的内存数据库中,以方便后续的数据访问。
具体地,上述流程还可包括:第二机房的数据管理服务器响应于数据访问请求,访问所述第二机房本地的内存数据库;若未从第二机房本地的内存数据库访问到所请求访问的数据,则访问物理数据库,并将从所述物理数据库访问到的数据存储到第二机房本地的内存数据库。
可选地,若物理数据库位于第一机房,则第二机房的数据管理服务器还可将第二机房的物理数据库与第一机房的物理数据库进行同步;若物理数据库位于第二机房,则第一机房的数据管理服务器将第一机房的物理数据库与第二机房的物理数据库进行同步。该同步过程可按照设定周期或设定时间进行,也可以在接收到数据同步指令后根据该指令进行。这样,在第一机房内的物理数据库作为主数据库的情况下,若该主数据库发生故障,第二机房内的物理数据库作为主数据库的备份,可以接替第一机房内的主数据库,实现数据存储和数据访问。
为了更清楚地理解本申请的上述实施例,下面分别结合图3和图4,对本申请实施例进行描述。
基于图1所示的系统架构,图3示例性示出了第一机房的redis数据变更后的业务流程。如图所示,该流程可包括:
301:当第一机房本地的redis数据发生变更时,第一机房的数据管理服务器将第一机房本地的redis数据库置为无效,以防止在此后的数据同步期间内再发生redis数据的更新而导致redis数据和磁盘阵列中的数据库数据不一致。
302:第一机房的数据管理服务器根据更新的redis数据更新磁盘阵列中的数据库。
303:第一机房的数据管理服务器更新第一机房本地的redis数据库,以使得第一机房的磁盘阵列数据库与本地redis数据库保持一致。
304:第一机房的数据管理服务器将redis数据的变更信息写入消息队列。
该步骤中,可仅将发生变更的redis数据的变更信息写入消息队列。
305:第二机房的数据管理服务器监听到消息队列的消息。
其中,基于消息队列固有的监听机制,当该消息队列发生变更(如有redis数据的变更信息写入消息队列时),第二机房的数据管理服务器可以监听到该消息队列的变更。
306:第二机房的数据管理服务器根据该消息队列中写入的redis数据的变更信息,将相应的数据同步到第二机房本地的redis数据库。
307~308:第二机房的数据管理服务器接收到数据访问请求后,访问第二机房本地redis数据库。若从该本地redis数据库中访问不到数据,则从第一机房的磁盘阵列数据库读取数据。
309:第二机房的数据管理服务器从第一机房的磁盘阵列数据库读取到数据后,将读取到的数据写入第二机房本地的redis数据库,以减少后续数据访问时的跨机房访问。
基于图1所示的系统架构,图4示例性示出了第二机房的redis数据变更后的业务流程。
如图所示,该流程可包括:
401:当第二机房本地的redis数据发生变更时,第二机房的数据管理服务器将该本地redis数据库置为无效,以防止在此后的数据同步期间内再发生redis数据的更新而导致该本地redis数据库和磁盘阵列中的数据库数据不一致。
402:第二机房的数据管理服务器根据更新的redis数据,更新第一机房中的磁盘阵列中的数据库。
403:第二机房的数据管理服务器更新第二机房本地的redis数据库,以使得第一机房的磁盘阵列数据库与第二机房本地的redis数据库保持一致。
404:第二机房的数据管理服务器将第二机房本地的redis数据库中发生变更的redis数据的变更信息写入第一机房的数据管理服务器的消息队列。
405:第一机房的数据管理服务器监听到消息队列的消息。
其中,基于消息队列固有的监听机制,当该消息队列发生变更(如有redis数据的变更信息写入消息队列时),第一机房的数据管理服务器可以监听到该消息队列的变更。
406:第一机房的数据管理服务器根据该消息队列中写入的redis数据的变更信息,将相应的数据同步到第一机房本地的redis数据库。
407~408:第一机房的数据管理服务器接收到数据访问请求后,访问第一机房本地的redis数据库。若从该本地redis数据库中访问不到数据,则从第一机房的磁盘阵列数据库读取数据。
409:第一机房的数据管理服务器从第一机房的磁盘阵列数据库读取到数据后,将读取到的数据写入第一机房本地的redis数据库,以减少后续数据访问时到磁盘阵列读取数据的几率。
本申请实施例中,针对不同的业务场景,缓存数据的同步方式有两种:删除和更新。
以redis数据为例,在删除模式中,当redis数据变化时,将变更的redis数据中的键值(key)写到消息队列;在基于该消息队列进行redis数据同步时,可直接从需要同步的redis数据库中删除该键值(key)所对应的redis数据(<key,value>),或者也可以仅删除该键值(key)。
具体地,以第一机房的数据管理服务器向消息队列写入redis数据变更信息,以使得第二机房的数据管理服务器更新第二机房本地的redis数据库为例,当第一机房的数据管理服务器将包含有被删除的redis数据的键值(key)的缓存数据变更信息写入消息队列后,第二机房的数据管理服务器基于消息队列的监听机制监听到该消息队列的变化,则根据该消息队列中写入的被删除的redis数据的键值(key),删除第二机房本地的redis数据库中相应的键值或相应键值的redis数据。
以redis数据为例,在更新模式中,当redis数据变化时,将操作redis数据的更新命令写到消息队列;在基于该消息队列进行redis数据同步时,可在需要同步的redis数据库中执行消息队列中的该更新命令。
具体地,以第一机房的数据管理服务器向消息队列写入redis数据变更信息,以使得第二机房的数据管理服务器更新第二机房本地的redis数据库为例,当第一机房的数据管理服务器将包含有redis数据更新命令的缓存数据变更信息写入消息队列后,第二机房的数据管理服务器基于消息队列的监听机制监听到该消息队列的变化,则根据该消息队列中写入的redis数据更新命令,在第二机房本地的redis数据库中执行该命令,以更新第二机房本地的redis数据库中的相应redis数据。
其中,所述更新命令可以是数据添加命令,或者是数据修改命令。对于数据添加命令,该命令中可包含需要添加的redis数据的键值对(key,value);对于修改命令,该命令中可包含需要修改的redis数据的键值(key)以及修改后的取值(value)。
可选地,在写入到消息队列中的缓存数据变更信息中,还可包含模式指示信息,用以指示缓存数据的同步方式,即指示是删除模式还是更新模式,比如用删除模式指示信息来指示删除缓存数据,用更新模式指示信息来指示更新缓存数据。具体实施时,可使用不同的标题对不同的同步方式进行区分。
图5示例性示出了一种本申请实施例提供的缓存数据同步过程的流程示意图,如图所示,该流程的执行主体为本地机房中的数据管理服务器,以同步redis数据为例,该流程可以包括:
S501~S502:监听到消息队列的消息后,根据该消息队列中,redis数据的变更信息中的模式指示信息,判断同步方式是删除模式还是更新模式,若是删除模式,则转入S503,否则转入S504;
S503:根据redis数据的变更信息中的redis key,从本地机房的redis数据库中删除相应的redis key;
S504:根据redis数据的变更信息中的redis更新命令,针对本地机房的redis数据库执行该命令,以更新本地机房的redis数据库中的相应数据。
根据本申请的实施例,异地更新redis数据的时延包括异地机房之间的通信时延加上redis命令执行的时延,该时延可以控制在百毫秒以内。在进行reis数据更新时,可根据实际场景来判断redis数据是否需要同步,以及是需要数据删除还是数据更新,而无需像redis主从同步方案中需要同步所有redis数据,从而节约了带宽流量,降低了成本。
基于相同的技术构思,本申请实施例还提供了一种数据管理服务器。
图6示例性示出了本申请实施例中提供的数据管理服务器的结构。如图所示,如图所示,该服务器600可包括:处理器601、存储器602、通信接口603。其中,处理器601也可以为控制器。所述处理器601被配置为支持该服务器执行图2至图5中任一图涉及的功能。通信接口603被配置为支持该服务器收发消息的功能。存储器602用于与处理器601耦合,其保存必要的程序指令和数据。其中,处理器601、通信接口603和存储器602相连,该存储器602用于存储指令,该处理器601用于执行该存储器602存储的指令,以控制通信接口603收发消息,完成上述方法中数据管理服务器执行相应功能的步骤。
本申请实施例中,数据管理服务器600所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。
需要说明的是,本公开实施例上述涉及的处理器可以是中央处理器(centralprocessing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。其中,所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (12)
1.一种异地数据同步方法,其特征在于,应用于第一机房和第二机房之间的内存数据库的同步过程,该方法包括:
第一机房的数据管理服务器对物理数据库与所述第一机房本地的内存数据库进行同步,并将所述第一机房本地的内存数据库中的缓存数据的变更信息存储到消息队列;其中,所述消息队列为所述第一机房的数据管理服务器和所述第二机房的数据管理服务器所共享;
第二机房的数据管理服务器监听所述消息队列,并响应于所述消息队列中的缓存数据的变更信息,根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库。
2.如权利要求1所述的方法,其特征在于,所述缓存数据的变更信息包括被删除的缓存数据的键值;
所述根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库,包括:
根据所述消息队列中被删除的缓存数据的键值,删除所述第二机房本地的内存数据库中的相应键值或相应键值的缓存数据。
3.如权利要求2所述的方法,其特征在于,所述缓存数据的变更信息还包括删除模式指示信息,所述删除模式指示信息用于指示删除缓存数据。
4.如权利要求1所述的方法,其特征在于,所述缓存数据的变更信息包括缓存数据更新命令;
所述根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库,包括:
在所述第二机房的数据管理服务器的内存数据库中执行所述消息队列中的缓存数据更新命令,以更新所述第二机房本地的内存数据库中的相应缓存数据。
5.如权利要求4所述的方法,其特征在于,所述缓存数据的变更信息还包括更新模式指示信息,所述更新模式指示信息用于指示更新缓存数据。
6.如权利要求1所述的方法,其特征在于,还包括:
所述第二机房的数据管理服务器响应于数据访问请求,访问所述第二机房本地的内存数据库;
若未从所述第二机房本地的内存数据库访问到所请求访问的数据,则访问所述物理数据库,并将从所述物理数据库访问到的数据存储到所述第二机房本地的内存数据库中。
7.如权利要求1所述的方法,其特征在于,还包括:
若所述物理数据库位于所述第一机房,则所述第二机房的数据管理服务器将所述第二机房的物理数据库与所述第一机房的物理数据库进行同步;
若所述物理数据库位于所述第二机房,则所述第一机房的数据管理服务器将所述第一机房的物理数据库与所述第二机房的物理数据库进行同步。
8.如权利要求1-7中任一项所述的方法,其特征在于,所述内存数据库为redis数据库。
9.一种数据同步方法,其特征在于,包括:
本地机房的数据管理服务器将物理数据库与本地机房的内存数据库进行同步;
所述本地机房的数据管理服务器将所述本地机房的内存数据库中的缓存数据的变更信息存储到消息队列,所述消息队列中的缓存数据的变更信息用于被异地机房的数据管理服务器用来更新所述异地机房的内存数据库;其中,所述消息队列为所述第一机房的数据管理服务器和所述第二机房的数据管理服务器所共享。
10.一种数据同步方法,其特征在于,包括:
本地机房的数据管理服务器监听消息队列,所述消息队列为所述第一机房的数据管理服务器和所述第二机房的数据管理服务器所共享;
所述本地机房的数据管理服务器响应于所述消息队列中的缓存数据的变更信息,根据所述消息队列中的缓存数据的变更信息更新本地机房的内存数据库;其中,所述消息队列中的缓存数据的变更信息是所述异地机房的数据管理服务器在所述异地的内存数据库的缓存数据发生变更时存储到所述消息队列中的。
11.一种异地数据同步系统,其特征在于,包括第一机房和第二机房,所述第一机房和所述第二机房中分别包括:数据管理服务器、内存数据库;
第一机房的数据管理服务器,用于对物理数据库与所述第一机房本地的内存数据库进行同步,并将所述第一机房本地的内存数据库中的缓存数据的变更信息存储到消息队列;其中,所述消息队列为所述第一机房的数据管理服务器和所述第二机房的数据管理服务器所共享;
第二机房的数据管理服务器,用于监听所述消息队列,并响应于所述消息队列中的缓存数据的变更信息,根据所述消息队列中的缓存数据的变更信息更新所述第二机房本地的内存数据库。
12.一种数据管理服务器,其特征在于,包括:处理器、存储器;
所述存储器,与所述处理器连接,配置为存储计算机指令;
所述处理器,与所述存储器连接,配置为执行所述计算机指令以使得所述数据管理服务器执行如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910864256.XA CN110597910A (zh) | 2019-09-12 | 2019-09-12 | 一种异地数据同步方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910864256.XA CN110597910A (zh) | 2019-09-12 | 2019-09-12 | 一种异地数据同步方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110597910A true CN110597910A (zh) | 2019-12-20 |
Family
ID=68859504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910864256.XA Pending CN110597910A (zh) | 2019-09-12 | 2019-09-12 | 一种异地数据同步方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110597910A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309693A (zh) * | 2020-02-07 | 2020-06-19 | 北京奇艺世纪科技有限公司 | 一种数据同步方法、装置、系统、电子设备及存储介质 |
CN111327680A (zh) * | 2020-01-21 | 2020-06-23 | 数字广东网络建设有限公司 | 认证数据同步方法、装置、系统、计算机设备和存储介质 |
CN111324664A (zh) * | 2020-01-22 | 2020-06-23 | 北京大生在线科技有限公司 | 一种多机房缓存同步的实现方法 |
CN111506587A (zh) * | 2020-03-31 | 2020-08-07 | 紫光云技术有限公司 | 一种基于Redis的异地双活方法 |
CN111651464A (zh) * | 2020-04-15 | 2020-09-11 | 北京皮尔布莱尼软件有限公司 | 数据处理方法、系统及计算设备 |
CN111930836A (zh) * | 2020-07-16 | 2020-11-13 | 北京首汽智行科技有限公司 | 一种基于工作流平台的数据同步方法 |
CN111949731A (zh) * | 2020-08-14 | 2020-11-17 | 厦门美图之家科技有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN111966719A (zh) * | 2020-10-21 | 2020-11-20 | 四川新网银行股份有限公司 | 一种分布式消费信贷系统本地数据缓存实时刷新的方法 |
CN112182095A (zh) * | 2020-08-31 | 2021-01-05 | 福州智象信息技术有限公司 | 多机房之间进行业务数据同步的方法及装置、设备和介质 |
CN112433814A (zh) * | 2020-11-24 | 2021-03-02 | 中信银行股份有限公司 | 一种本地镜像仓库管理方法、装置和系统 |
CN112667651A (zh) * | 2020-12-29 | 2021-04-16 | 新华三技术有限公司 | 一种数据通信方法及装置 |
CN113034715A (zh) * | 2021-03-02 | 2021-06-25 | 创优数字科技(广东)有限公司 | 一种考勤数据处理方法、装置、服务器及存储介质 |
CN113449000A (zh) * | 2021-07-09 | 2021-09-28 | 中国银行股份有限公司 | 分布式系统本地缓存的刷新装置及方法 |
CN114090129A (zh) * | 2021-11-24 | 2022-02-25 | 中国银行股份有限公司 | 实现应用程序配置数据跨机房更新的方法及装置和系统 |
CN114265708A (zh) * | 2021-12-28 | 2022-04-01 | 胜斗士(上海)科技技术发展有限公司 | 数据同步方法及装置、设备和介质 |
CN116466960A (zh) * | 2023-04-14 | 2023-07-21 | 北京星汉未来网络科技有限公司 | 一种数据库多活部署的方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290015B1 (en) * | 2003-10-02 | 2007-10-30 | Progress Software Corporation | High availability via data services |
CN103095769A (zh) * | 2011-11-04 | 2013-05-08 | 阿里巴巴集团控股有限公司 | 跨机房的数据同步方法以及系统 |
CN106294769A (zh) * | 2016-08-11 | 2017-01-04 | 珠海格力电器股份有限公司 | 同步工程数据的方法、系统和装置 |
CN106997378A (zh) * | 2017-03-13 | 2017-08-01 | 摩贝(上海)生物科技有限公司 | 基于Redis的数据库数据聚合同步的方法 |
CN109376197A (zh) * | 2018-09-28 | 2019-02-22 | 掌阅科技股份有限公司 | 一种数据同步方法、服务器及计算机存储介质 |
CN109522364A (zh) * | 2018-10-18 | 2019-03-26 | 恒峰信息技术有限公司 | 一种异地数据双向同步方法及系统 |
CN110149382A (zh) * | 2019-05-08 | 2019-08-20 | 拉扎斯网络科技(上海)有限公司 | 数据同步的方法、系统、主服务器、同步客户端及介质 |
-
2019
- 2019-09-12 CN CN201910864256.XA patent/CN110597910A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290015B1 (en) * | 2003-10-02 | 2007-10-30 | Progress Software Corporation | High availability via data services |
CN103095769A (zh) * | 2011-11-04 | 2013-05-08 | 阿里巴巴集团控股有限公司 | 跨机房的数据同步方法以及系统 |
CN106294769A (zh) * | 2016-08-11 | 2017-01-04 | 珠海格力电器股份有限公司 | 同步工程数据的方法、系统和装置 |
CN106997378A (zh) * | 2017-03-13 | 2017-08-01 | 摩贝(上海)生物科技有限公司 | 基于Redis的数据库数据聚合同步的方法 |
US20180260435A1 (en) * | 2017-03-13 | 2018-09-13 | Molbase (Shanghai) Biotechnology Co., Ltd. | Redis-based database data aggregation and synchronization method |
CN109376197A (zh) * | 2018-09-28 | 2019-02-22 | 掌阅科技股份有限公司 | 一种数据同步方法、服务器及计算机存储介质 |
CN109522364A (zh) * | 2018-10-18 | 2019-03-26 | 恒峰信息技术有限公司 | 一种异地数据双向同步方法及系统 |
CN110149382A (zh) * | 2019-05-08 | 2019-08-20 | 拉扎斯网络科技(上海)有限公司 | 数据同步的方法、系统、主服务器、同步客户端及介质 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327680A (zh) * | 2020-01-21 | 2020-06-23 | 数字广东网络建设有限公司 | 认证数据同步方法、装置、系统、计算机设备和存储介质 |
CN111324664A (zh) * | 2020-01-22 | 2020-06-23 | 北京大生在线科技有限公司 | 一种多机房缓存同步的实现方法 |
CN111309693A (zh) * | 2020-02-07 | 2020-06-19 | 北京奇艺世纪科技有限公司 | 一种数据同步方法、装置、系统、电子设备及存储介质 |
CN111506587A (zh) * | 2020-03-31 | 2020-08-07 | 紫光云技术有限公司 | 一种基于Redis的异地双活方法 |
CN111651464A (zh) * | 2020-04-15 | 2020-09-11 | 北京皮尔布莱尼软件有限公司 | 数据处理方法、系统及计算设备 |
CN111651464B (zh) * | 2020-04-15 | 2024-02-23 | 北京皮尔布莱尼软件有限公司 | 数据处理方法、系统及计算设备 |
CN111930836A (zh) * | 2020-07-16 | 2020-11-13 | 北京首汽智行科技有限公司 | 一种基于工作流平台的数据同步方法 |
CN111949731A (zh) * | 2020-08-14 | 2020-11-17 | 厦门美图之家科技有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN112182095A (zh) * | 2020-08-31 | 2021-01-05 | 福州智象信息技术有限公司 | 多机房之间进行业务数据同步的方法及装置、设备和介质 |
CN111966719A (zh) * | 2020-10-21 | 2020-11-20 | 四川新网银行股份有限公司 | 一种分布式消费信贷系统本地数据缓存实时刷新的方法 |
CN112433814A (zh) * | 2020-11-24 | 2021-03-02 | 中信银行股份有限公司 | 一种本地镜像仓库管理方法、装置和系统 |
CN112667651A (zh) * | 2020-12-29 | 2021-04-16 | 新华三技术有限公司 | 一种数据通信方法及装置 |
CN113034715A (zh) * | 2021-03-02 | 2021-06-25 | 创优数字科技(广东)有限公司 | 一种考勤数据处理方法、装置、服务器及存储介质 |
CN113449000A (zh) * | 2021-07-09 | 2021-09-28 | 中国银行股份有限公司 | 分布式系统本地缓存的刷新装置及方法 |
CN114090129A (zh) * | 2021-11-24 | 2022-02-25 | 中国银行股份有限公司 | 实现应用程序配置数据跨机房更新的方法及装置和系统 |
CN114265708A (zh) * | 2021-12-28 | 2022-04-01 | 胜斗士(上海)科技技术发展有限公司 | 数据同步方法及装置、设备和介质 |
CN116466960A (zh) * | 2023-04-14 | 2023-07-21 | 北京星汉未来网络科技有限公司 | 一种数据库多活部署的方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597910A (zh) | 一种异地数据同步方法、装置和系统 | |
CN104156361B (zh) | 一种实现数据同步的方法及系统 | |
US9262324B2 (en) | Efficient distributed cache consistency | |
US8458127B1 (en) | Application data synchronization | |
CN109842651B (zh) | 一种业务不间断的负载均衡方法和系统 | |
EP3680787B1 (en) | Method for synchronization between primary database and standby database, database system and device | |
CN104935654A (zh) | 一种服务器集群系统中的缓存方法、写入点客户端和读客户端 | |
US10901643B2 (en) | Using log objects in object storage for durability of file objects in volatile memory | |
CN110099084B (zh) | 一种保证存储服务可用性的方法、系统及计算机可读介质 | |
EP3486802A1 (en) | Global transaction identifier (gtid) synchronization method, apparatus and system, and storage medium | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN111984191A (zh) | 一种支持分布式存储的多客户端缓存方法及系统 | |
CN110807062A (zh) | 一种数据同步的方法、装置和数据库主机 | |
CN113190619B (zh) | 分布式kv数据库的数据读写方法、系统、设备和介质 | |
CN111880956A (zh) | 一种数据同步方法和装置 | |
CN114063883B (zh) | 存储数据方法、电子设备和计算机程序产品 | |
US9330153B2 (en) | System, method, and computer readable medium that coordinates between devices using exchange of log files | |
CN115292408A (zh) | MySQL数据库的主从同步方法、装置、设备及介质 | |
US10545667B1 (en) | Dynamic data partitioning for stateless request routing | |
CN111031126A (zh) | 集群缓存共享方法、系统、设备及存储介质 | |
CN111338834A (zh) | 数据存储方法和装置 | |
US20180052622A1 (en) | Read cache synchronization in data replication environments | |
US9871863B2 (en) | Managing network attached storage | |
CN103986771A (zh) | 一种不依赖于共享存储的高可用集群管理方法 | |
CN112000850A (zh) | 进行数据处理的方法、装置、系统及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191220 |