CN111309693A - 一种数据同步方法、装置、系统、电子设备及存储介质 - Google Patents
一种数据同步方法、装置、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111309693A CN111309693A CN202010082760.7A CN202010082760A CN111309693A CN 111309693 A CN111309693 A CN 111309693A CN 202010082760 A CN202010082760 A CN 202010082760A CN 111309693 A CN111309693 A CN 111309693A
- Authority
- CN
- China
- Prior art keywords
- data
- server
- processing
- synchronization
- synchronization information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 285
- 230000001360 synchronised effect Effects 0.000 claims description 41
- 238000004891 communication Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 abstract description 9
- 238000013500 data storage Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据同步方法、装置、系统、电子设备及存储介质,属于数据处理技术领域。本申请提供的数据同步方法应用于数据同步系统中的第一服务器,所述数据同步系统还包含第二服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,所述方法包括:响应于数据处理请求,对待处理的数据执行所述数据处理请求对应的处理操作;生成包含所述数据和所述处理操作的操作类型的同步信息;将所述同步信息存储至预设的消息中间件,以使所述第二服务器从所述消息中间件中读取所述同步信息,对所述数据执行所述操作类型指示的处理操作。采用本申请提供的技术方案,能够减少数据处理请求的响应时长。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据同步方法、装置、系统、电子设备及存储介质。
背景技术
安装有ElasticSearch(灵活搜索)系统的多个电子设备可以作为服务器,为用户提供数据存储和数据搜索等服务。安装有ElasticSearch系统的多个电子设备可以在同一数据机房内,也可以在不同的数据机房内。当安装有ElasticSearch系统的多个电子设备在不同数据机房内时,需要保证各数据机房所包含电子设备中存储的数据相同,因此,需要对各数据机房所包含电子设备中存储的数据进行同步。
相关技术中,安装有ElasticSearch系统的多个电子设备分别在第一数据机房和第二数据机房中,第一数据机房包含的电子设备称为第一服务器,第二数据机房包含的电子设备称为第二服务器。如果第一数据机房中的第一服务器接收到请求存储数据的数据处理请求,第一服务器可以在本地存储数据的同时,将该数据发送至第二数据机房中的第二服务器。第二服务器在存储该数据后,发送存储完成消息至第一服务器,由此,第一服务器可以确定完成数据同步,对下一个待存储的数据进行存储。
然而,在跨数据机房进行数据同步的过程中,第一服务器在接收到第二服务器发送的存储完成消息后,才继续存储下一个数据,导致第一服务器响应数据处理请求的响应时间长。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种数据同步方法、装置、系统、电子设备及存储介质。
第一方面,本申请提供了一种数据同步方法,所述方法应用于数据同步系统中的第一服务器,所述数据同步系统还包含第二服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,所述方法包括:
响应于数据处理请求,对待处理的数据执行所述数据处理请求对应的处理操作;
生成包含所述数据和所述处理操作的操作类型的同步信息;
将所述同步信息存储至预设的消息中间件,以使所述第二服务器从所述消息中间件中读取所述同步信息,对所述数据执行所述操作类型指示的处理操作。
可选的,所述生成包含所述数据和所述处理操作的操作类型的同步信息,包括:
确定对所述数据执行所述处理操作的处理顺序;
生成包含所述数据、所述处理操作的操作类型和所述处理顺序的同步信息。
可选的,所述消息中间件基于消息队列进行所述同步信息的存储。
第二方面,本申请提供了一种数据同步方法,所述方法应用于数据同步系统中的第二服务器,所述数据同步系统还包含应用上述权利要求1-3所述方法的第一服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,所述方法包括:
从预设的消息中间件中读取同步信息,所述同步信息至少包含待处理的数据和待执行的处理操作的操作类型;
对所述数据执行所述操作类型指示的处理操作。
可选的,所述消息中间件基于消息队列进行所述同步信息的读取,所述从预设的消息中间件中读取同步信息,包括:
从消息队列中按照各同步信息的接收顺序读取同步信息。
可选的,在所述同步信息包含所述数据的处理顺序的情况下,所述对所述数据执行所述操作类型指示的处理操作,包括:
如果所述数据为历史处理过的数据,确定对所述数据执行的历史处理操作的历史处理顺序;
如果所述历史处理顺序排列在所述处理顺序之前,则对所述数据执行所述操作类型指示的处理操作。
可选的,所述方法还包括:
根据所述消息中间件中同步信息的读取状态、所述第一服务器中的已存储数据、所述第二服务器中的已存储数据,确定用于表示所述第一服务器和第二服务器的数据同步状态的同步状态信息。
第三方面,本申请提供了一种数据同步系统,所述系统包括第一服务器和第二服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为第二数据机房包含的服务器,
其中,所述第一服务器用于执行上述第一方面所述的方法步骤,所述第二服务器用于执行上述第二方面所述的方法步骤。
第四方面,本申请提供了一种数据同步装置,所述装置应用于数据同步系统中的第一服务器,所述数据同步系统还包含第二服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,所述装置包括:
处理模块,用于响应于数据处理请求,对待处理的数据执行所述数据处理请求对应的处理操作;
生成模块,用于生成包含所述数据和所述处理操作的操作类型的同步信息;
存储模块,用于将所述同步信息存储至预设的消息中间件,以使所述第二服务器从所述消息中间件中读取所述同步信息,对所述数据执行所述操作类型指示的处理操作。
可选的,所述生成模块包括:
确定子模块,用于确定对所述数据执行所述处理操作的处理顺序;
生成子模块,用于生成包含所述数据、所述处理操作的操作类型和所述处理顺序的同步信息。
可选的,所述消息中间件基于消息队列进行所述同步信息的存储。
第五方面,本申请提供了一种数据同步装置,所述装置应用于数据同步系统中的第二服务器,所述数据同步系统还包含应用上述第一方面所述方法的第一服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,所述装置包括:
读取模块,用于从预设的消息中间件中读取同步信息,所述同步信息至少包含待处理的数据和待执行的处理操作的操作类型;
处理模块,用于对所述数据执行所述操作类型指示的处理操作。
可选的,所述读取模块,还用于在所述消息中间件基于消息队列进行所述同步信息的读取的情况下,从消息队列中按照各同步信息的接收顺序读取同步信息。
可选的,所述处理模块包括:
确定子模块,用于在所述同步信息包含所述数据的处理顺序、且所述数据为历史处理过的数据的情况下,确定对所述数据执行的历史处理操作的历史处理顺序;
处理子模块,用于当所述历史处理顺序排列在所述处理顺序之前时,对所述数据执行所述操作类型指示的处理操作。
可选的,所述装置还包括:
确定模块,用于根据所述消息中间件中同步信息的读取状态、所述第一服务器中的已存储数据、所述第二服务器中的已存储数据,确定用于表示所述第一服务器和第二服务器的数据同步状态的同步状态信息。
第六方面,本申请提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现任一上述第一方面,或,任一上述第二方面所述的方法步骤。
第七方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一上述第一方面,或,任一上述第二方面所述的方法。
第八方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一上述第一方面,或,任一上述第二方面所述的方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法,数据同步系统中的第一服务器能够响应于数据处理请求,对待处理的数据执行数据处理请求对应的处理操作;将同步信息存储至预设的消息中间件,以使数据同步系统中的第二服务器从消息中间件中读取同步信息,对数据执行操作类型指示的处理操作。第一服务器可以通过将同步信息发送至消息中间件,以使第二服务器从消息中间件中获取同步信息,再对同一数据进行同一处理操作的方式,实现数据同步。因此,在将同步信息发送至消息中间件之后,第一服务器即可响应下一个数据处理请求,从而能够减少数据处理请求的响应时长。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据同步方法的流程图;
图2为本申请实施例提供的另一种数据同步方法的流程图;
图3为本申请实施例提供的另一种数据同步方法的流程图;
图4为本申请实施例提供的另一种数据同步方法的流程图;
图5为本申请实施例提供的一种数据同步装置的结构示意图;
图6为本申请实施例提供的另一种数据同步装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据同步系统,数据同步系统可以包含多个服务器,多个服务器可以位于不同的数据机房内。为了便于区分,将接收到数据处理请求的服务器称为第一服务器,将第一服务器所处的数据机房称为第一数据机房,将待进行数据同步的服务器称为第二服务器,将第二服务器所处的数据机房称为第二数据机房。第二服务器的数量可以为一个,也可以为多个,当存在多个第二服务器时,第二服务器所属的数据机房可以为同一第二数据机房,也可以为不同的第二数据机房。
本申请实施例提供了一种应用于第一服务器的数据同步方法,如图1所示,具体处理过程包括:
步骤101,响应于数据处理请求,对待处理的数据执行数据处理请求对应的处理操作。
在实施中,当需要对某一数据进行数据处理时,用户可以执行预设操作,以使用户终端生成数据处理请求,向保持通信连接的第一服务器发送数据处理请求。预设操作可以是在选中某一文件的状态下,点击预设的保存图标,预设操作也可以是在选中某一文件的状态下,点击预设的更新图标。
响应于接收到的数据处理请求,第一服务器可以确定待处理的数据、数据处理请求对应的处理操作,然后,第一服务器可以对待处理的数据执行数据处理请求对应的处理操作。
本申请实施例中,数据处理请求可以携带有待处理的数据,第一服务器可以将数据处理请求携带的数据作为待处理的数据;数据处理请求也可以携带有待处理的数据的数据标识,第一服务器可以获取数据处理请求携带的数据标识,在本地存储的数据中,确定与该数据标识对应的数据,得到待处理的数据。
数据处理请求还可以携带有处理操作的操作标识,第一服务器可以根据操作标识,确定数据处理请求对应的处理操作。数据处理请求对应的处理操作可以是存储、删除、更新等。
例如,数据处理请求携带有待存储的数据A,数据处理请求对应的处理操作为存储。响应于数据处理请求,第一服务器可以在本地存储数据A。
步骤102,生成包含数据和处理操作的操作类型的同步信息。
在实施中,第一服务器可以生成包含待处理的数据和处理操作的操作类型的同步信息。
在一种可行的实现方式中,如果处理操作为删除,数据处理请求可以仅携带有待删除的数据的数据标识,第一服务器可以将数据处理请求携带的数据标识,作为待删除的数据的数据标识,生成包含数据标识和处理操作的操作类型的同步信息。
步骤103,将同步信息存储至预设的消息中间件。
在实施中,第一服务器可以在生成每个同步信息后,将该同步信息发送至预设的消息中间件。第一服务器也可以在达到预设同步周期时,按照同步信息的生成顺序,将该预设同步周期内生成的多个同步信息,依次存储至消息中间件。
在同步信息被存储至消息中间件后,第二服务器可以从消息中间件中读取同步信息,基于同步信息进行数据同步。后续会对第二服务器读取同步信息以及基于同步信息进行数据同步的具体处理过程进行详细说明。
本申请实施例中,数据同步系统中的第一服务器能够响应于数据处理请求,对待处理的数据执行数据处理请求对应的处理操作;将同步信息存储至预设的消息中间件,以使数据同步系统中的第二服务器从消息中间件中读取同步信息,对数据执行操作类型指示的处理操作。第一服务器可以通过将同步信息发送至消息中间件,以使第二服务器从消息中间件中获取同步信息,再对同一数据进行同一处理操作的方式,实现数据同步。因此,在将同步信息发送至消息中间件之后,第一服务器即可响应下一个数据处理请求,从而能够减少数据处理请求的响应时长。
可选的,消息中间件基于消息队列进行同步信息的存储、读取。
其中,消息队列可以为相关技术中任一种消息队列,消息队列例如Kafka(卡夫卡)消息队列、RabbitMQ(Rabbit message queue,兔子消息队列)和RocketMQ(Rocket messagequeue,火箭消息队列)。
在实施中,消息中间件可以存储于预设服务器中,预设服务器可以是第一服务器,预设服务器也可以是第二服务器,预设服务器还可以是数据同步系统中预先指定的某一服务器。由于消息中间件基于消息队列进行同步信息的存储、读取,因此,预设服务器可以按照同步信息的接收顺序在消息中间件中存储同步信息,相应的,预设服务器可以按照同步信息的接收顺序读取同步信息,将读取到的同步信息发送给第二服务器。
例如,预设服务器于上午9:10接收到同步信息D1,于上午9:11分接收到同步信息D2,同步信息的接收顺序为D1-D2,预设服务器可以在消息中间件中先存储同步信息D1、再存储同步信息D2。当第二服务器从消息中间件中读取同步信息时,预设服务器可以按照同步信息的接收顺序D1-D2,先读取同步信息D1,将同步信息D1发送给第二服务器,再读取同步信息D2,将同步信息D2发送给第二服务器。
本申请实施例中,由于消息中间件基于消息队列进行同步信息的存储、读取,因此,预设服务器可以按照同步信息的接收顺序在消息中间件中存储同步信息,并按照同步信息的接收顺序读取同步信息。基于此,第二服务器可以按照同步信息的接收顺序对各同步信息包含的数据执行操作类型指示的处理操作,可以实现数据的顺序处理,从而能够保证数据同步的准确性。
可选的,预设服务器可以按照各同步信息的接收顺序,将多个同步信息依次发送给第二服务器,预设服务器也可以将多个同步信息同时发送给第二服务器。在预设服务器将多个同步信息同时发送给第二服务器的情况下,为了便于第二服务器区分同时接收到的多个同步信息的处理顺序,第一服务器可以生成包含数据的处理顺序的同步信息。
如图2所示,为本申请实施例提供的一种生成包含数据的处理顺序的同步信息的实现方式,包括以下步骤:
步骤201、确定对数据执行处理操作的处理顺序。
在实施中,第一服务器可以将接收到数据处理请求的先后顺序,作为对数据执行处理操作的处理顺序。
在一种可行的实现方式中,第一服务器可以按照接收到数据处理请求的先后顺序,对数据处理请求进行编号,以便根据各数据处理请求的编号的大小关系,确定对各数据执行处理操作的处理顺序。
在另一种可行的实现方式中,第一服务器可以获取数据处理请求的接收时间戳,以便根据各数据处理请求的接收时间戳的大小关系,确定对各数据执行处理操作的处理顺序。
步骤202,生成包含数据、处理操作的操作类型和处理顺序的同步信息。
例如,第一服务器于上午8点30分接收到用于请求存储数据B的数据处理请求,由于此前并未对数据B执行过历史处理操作,第一服务器可以将1作为对数据B执行存储操作的处理顺序,生成包含数据B、处理操作的操作类型为存储、处理顺序为1的同步信息。
第一服务器于上午9点09分接收到用于请求更新数据B的数据处理请求,第一服务器可以比较接收时间戳上午9点09分和接收时间戳8点30分,将2作为对数据B执行更新操作的处理顺序。然后,第一服务器可以生成包含数据B、处理操作的操作类型为更新、处理顺序为2的同步信息。
或者,第一服务器可以将接收时间戳上午9点09分作为处理顺序信息,生成包含数据B、处理操作的操作类型为更新,处理顺序信息为接收时间戳上午9点09分的同步信息。
本申请实施例中,第一服务器可以确定对数据执行处理操作的处理顺序,生成包含数据、处理操作的操作类型和处理顺序的同步信息。由此,第二服务器可以在接收到多个同步信息后,根据同步信息包含的数据的处理顺序,确定多个数据的处理顺序,使得第二服务器对多个数据进行处理的顺序与第一服务器对相应数据进行处理的顺序相同,从而能够保证数据同步的准确性。
可选的,本申请实施例还提供了一种数据同步的实现方式,即第一服务器响应于数据处理请求,生成包含数据、处理操作的操作类型和处理顺序的同步信息,将同步信息存储至消息中间件,消息中间件基于消息队列进行同步信息的存储、读取。由于同时采用了确定对数据执行处理操作的处理顺序、基于消息队列对同步信息按照接收顺序进行存储和读取这两种顺序处理方式,因此,能够进一步提升数据同步的准确性。
可选的,在消息中间件基于消息队列进行同步信息的存储与读取的情况下,预设服务器接收到的多个同步信息可能会被分布的存储在预设服务器不同的分区中。当第一服务器和第二服务器需要对同一数据执行多个处理操作时,预设服务器可以获取该数据的数据标识,根据该数据标识将包含该数据的多个同步消息哈希到预设服务器的同一分区上,从而保证第二服务器可以从同一分区中读取到包含该数据的多个同步消息。进一步的,保证第二服务器基于读取到的同步信息对该数据执行多个处理操作的先后顺序,与第一服务器对同一数据执行的多个处理操作的先后顺序相同。
本申请实施例还提供了一种应用于第二服务器的数据同步方法,如图3所示,具体处理过程包括:
步骤301,从预设的消息中间件中读取同步信息。
其中,同步信息至少包含待处理的数据和待执行的处理操作的操作类型。
在实施中,如果预设的消息中间件中存储有新增的同步信息,第二服务器可以从消息中间件中读取同步信息。第二服务器可以通过向存储有消息中间件的预设服务器发送同步确认请求,或者,接收预设服务器发送的同步通知的方式,确定预设的消息中间件中是否存储有新增的同步信息。
从消息中间件中读取同步信息后,第二服务器可以解析同步信息,得到待处理的数据和待执行的处理操作的操作类型。
本申请实施例中,同步信息所包含操作类型指示的处理操作可以是存储、删除、更新等,待处理的数据可以是待存储的数据、待更新的数据、待删除的数据等,待处理的数据也可以是待删除的数据的数据标识。
步骤302,对数据执行操作类型指示的处理操作。
在实施中,第二服务器可以对待处理的数据执行操作类型指示的处理操作。
例如,待处理的数据为数据A,操作类型指示的处理操作为存储,第二服务器可以在本地存储数据A。待处理的数据为数据B的数据标识,操作类型指示的处理操作为删除,第二服务器可以根据数据标识在本地存储的多个数据中查找数据B,删除存储的数据B。
本申请实施例中,第二服务器可以从预设的消息中间件中读取同步信息,同步信息至少包含待处理的数据和待执行的处理操作的操作类型,然后,对数据执行操作类型指示的处理操作。由于消息中间件中的同步信息由第一服务器基于待处理的数据、对待处理的数据所执行的处理操作生成,第二服务器可以从消息中间件中获取同步信息,再对同步信息包含的数据执行操作类型指示的处理操作,因此,可以实现第二服务器与第一服务器均对同一数据进行同一处理操作,从而可以实现第一服务器与第二服务器的数据同步。
可选的,为了便于第二服务器区分同时接收到的多个同步信息的处理顺序,第一服务器可以生成包含数据的处理顺序的同步信息,如图4所示,在读取到包含数据的处理顺序的同步信息后,第二服务器进行数据同步的处理过程包括:
步骤401,判断同步信息包含的数据是否为历史处理过的数据。
在实施中,第二服务器可以在预设的历史处理记录中记录已处理数据的数据标识、已处理数据的处理顺序。
在读取每个同步信息之后,第二服务器可以查询历史处理记录中是否记录有待处理的数据的目标数据标识。如果历史处理记录中记录有目标数据标识,则第二服务器可以确定该数据为历史处理过的数据,然后,第二服务器可以执行步骤402。如果历史处理记录中未记录目标数据标识,则第二服务器可以执行步骤404。
步骤402,确定对数据执行的历史处理操作的历史处理顺序。
在实施中,第二服务器可以查询历史处理记录,确定与目标数据标识对应的处理顺序,得到对数据执行的历史处理操作的历史处理顺序。
步骤403,判断历史处理顺序是否在处理顺序之前。
在实施中,第二服务器可以判断历史处理顺序是否在待执行的处理操作的处理顺序之前。如果历史处理顺序在该处理顺序之前,则第二服务器可以执行步骤404;如果历史处理顺序在该处理顺序之后,则第二服务器可以执行步骤405。
例如,第二服务器可以在确定同步信息包含待处理的数据A、待执行的处理操作为存储、处理顺序为“2”之后,查询历史处理记录中是否存在目标数据标识A。如果历史处理记录中存在目标数据标识A,第二服务器可以确定对数据A执行的历史处理操作的历史处理顺序,得到“1”。然后,第二服务器可以判定历史处理顺序“1”在处理顺序“2”之前。之后,第二服务器可以对数据A执行操作类型指示的处理操作,即在本地存储数据A。
或者,第二服务器可以在确定同步信息包含待处理的数据A、待执行的处理操作为存储、处理顺序信息为接收时间戳上午9点15分之后,查询历史处理记录中是否存在目标数据标识A。如果历史处理记录中存在目标数据标识A,第二服务器可以确定对数据A执行的历史处理操作的历史处理顺序信息,得到接收时间戳9点12分。然后,第二服务器可以判定历史处理顺序信息9点12分在处理顺序9点15分之前。之后,第二服务器可以对数据A执行操作类型指示的处理操作,即在本地存储数据A。
步骤404,对数据执行操作类型指示的处理操作。
在实施中,此步骤的具体处理过程可以参照步骤302,此处不再赘述。
步骤405,不作后续处理。
本申请实施例中,第二服务器可以判断同步信息包含的数据是否为历史处理过的数据,如果同步信息包含的数据是历史处理过的数据,第二服务器可以确定对数据执行的历史处理操作的历史处理顺序,再判断历史处理顺序是否在处理顺序之前。如果历史处理顺序在处理顺序之前,第二服务器可以对数据执行操作类型指示的处理操作。如果同步信息包含的数据不是历史处理过的数据,或者,历史处理顺序在处理顺序之后,第二服务器可以不作后续处理。由于第二服务器在确定待执行的处理操作的处理顺序在同一数据的历史处理操作的历史处理顺序之后,对待处理的数据执行相应处理操作,因此,能够实现对同一数据的多个处理操作的顺次处理,从而保证了数据同步的准确性。
可选的,第二服务器可以通过预设的批量插入接口实现对多个数据的批量存储处理,从而减少存储多个数据所需的时间,提高数据同步效率,批量插入接口例如bulk(批量)接口。
可选的,预设服务器还可以对数据同步的状态进行监控,具体处理过包括:根据消息中间件中同步信息的读取状态、第一服务器中的已存储数据、第二服务器中的已存储数据,确定用于表示第一服务器和第二服务器的数据同步状态的同步状态信息。
在实施中,预设服务器可以获取消息中间件中同步信息的读取状态、第一服务器中的已存储数据、第二服务器中的已存储数据。然后,预设服务器可以根据消息中间件中同步信息的读取状态,确定第二服务器中的预期已存储数据。
之后,预设服务器可以判断第二服务器中的预期已存储数据、第一服务器中的已存储数据与第二服务器中的已存储数据是否相同。如果判断结果为是,则预设服务器可以提示数据同步状态正常。如果判断结果为否,预设服务器可以确定出现数据存储差异的数据存储方以及差异数据,其中,数据存储方可以是消息中间件、第一服务器、第二服务器中的一方或多方。然后,预设服务器可以提示出现数据存储差异的数据存储方以及差异数据。
在一种可行的实现方式中,同步状态信息还可以包含同步状态评价参数,同步状态评价参数例如良好、一般、较差。
例如,任两个数据存储方所存储数据之间的差异数据的数量大于10个时,同步状态评价参数为良好,差异数据的数量大于100个时,同步状态评价参数为较差。
本申请实施例中,预设服务器可以根据消息中间件中同步信息的读取状态、第一服务器中的已存储数据、第二服务器中的已存储数据,确定用于表示第一服务器和第二服务器的数据同步状态的同步状态信息。由此,能够便于工作人员了解数据同步进度,为进一步提升数据同步准确性提供参考。
本申请实施例还提供了一种数据同步装置,所述装置应用于数据同步系统中的第一服务器,所述数据同步系统还包含第二服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,如图5所示,所述装置包括:
处理模块510,用于响应于数据处理请求,对待处理的数据执行所述数据处理请求对应的处理操作;
生成模块520,用于生成包含所述数据和所述处理操作的操作类型的同步信息;
存储模块530,用于将所述同步信息存储至预设的消息中间件,以使所述第二服务器从所述消息中间件中读取所述同步信息,对所述数据执行所述操作类型指示的处理操作。
可选的,所述生成模块包括:
确定子模块,用于确定对所述数据执行所述处理操作的处理顺序;
生成子模块,用于生成包含所述数据、所述处理操作的操作类型和所述处理顺序的同步信息。
可选的,所述消息中间件基于消息队列进行所述同步信息的存储。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该装置,能够响应于数据处理请求,对待处理的数据执行数据处理请求对应的处理操作;将同步信息存储至预设的消息中间件,以使数据同步系统中的第二服务器从消息中间件中读取同步信息,对数据执行操作类型指示的处理操作。第一服务器可以通过将同步信息发送至消息中间件,以使第二服务器从消息中间件中获取同步信息,再对同一数据进行同一处理操作的方式,实现数据同步。因此,在将同步信息发送至消息中间件之后,第一服务器即可响应下一个数据处理请求,从而能够减少数据处理请求的响应时长。
本申请实施例还提供了一种数据同步装置,所述装置应用于数据同步系统中的第二服务器,所述数据同步系统还包含应用上述第一方面所述方法的第一服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,如图6所示,所述装置包括:
读取模块610,用于从预设的消息中间件中读取同步信息,所述同步信息至少包含待处理的数据和待执行的处理操作的操作类型;
处理模块620,用于对所述数据执行所述操作类型指示的处理操作。
可选的,所述读取模块,还用于在所述消息中间件基于消息队列进行所述同步信息的读取的情况下,从消息队列中按照各同步信息的接收顺序读取同步信息。
可选的,所述处理模块包括:
确定子模块,用于在所述同步信息包含所述数据的处理顺序、且所述数据为历史处理过的数据的情况下,确定对所述数据执行的历史处理操作的历史处理顺序;
处理子模块,用于当所述历史处理顺序排列在所述处理顺序之前时,对所述数据执行所述操作类型指示的处理操作。
可选的,所述装置还包括:
确定模块,用于根据所述消息中间件中同步信息的读取状态、所述第一服务器中的已存储数据、所述第二服务器中的已存储数据,确定用于表示所述第一服务器和第二服务器的数据同步状态的同步状态信息。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该装置,可以从预设的消息中间件中读取同步信息,同步信息至少包含待处理的数据和待执行的处理操作的操作类型,然后,对数据执行操作类型指示的处理操作。由于消息中间件中的同步信息由第一服务器基于待处理的数据、对待处理的数据所执行的处理操作生成,第二服务器可以从消息中间件中获取同步信息,再对同步信息包含的数据执行操作类型指示的处理操作,因此,可以实现第二服务器与第一服务器均对同一数据进行同一处理操作,从而可以实现第一服务器与第二服务器的数据同步。
本申请实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现上述由第一服务器或第二服务器实现的一种数据同步方法的步骤。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据同步方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据同步方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (12)
1.一种数据同步方法,其特征在于,所述方法应用于数据同步系统中的第一服务器,所述数据同步系统还包含第二服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,所述方法包括:
响应于数据处理请求,对待处理的数据执行所述数据处理请求对应的处理操作;
生成包含所述数据和所述处理操作的操作类型的同步信息;
将所述同步信息存储至预设的消息中间件,以使所述第二服务器从所述消息中间件中读取所述同步信息,对所述数据执行所述操作类型指示的处理操作。
2.根据权利要求1所述的方法,其特征在于,所述生成包含所述数据和所述处理操作的操作类型的同步信息,包括:
确定对所述数据执行所述处理操作的处理顺序;
生成包含所述数据、所述处理操作的操作类型和所述处理顺序的同步信息。
3.根据权利要求1或2所述的方法,其特征在于,所述消息中间件基于消息队列进行所述同步信息的存储。
4.一种数据同步方法,其特征在于,所述方法应用于数据同步系统中的第二服务器,所述数据同步系统还包含应用上述权利要求1-3所述方法的第一服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,所述方法包括:
从预设的消息中间件中读取同步信息,所述同步信息至少包含待处理的数据和待执行的处理操作的操作类型;
对所述数据执行所述操作类型指示的处理操作。
5.根据权利要求所述4的方法,其特征在于,所述消息中间件基于消息队列进行所述同步信息的读取,所述从预设的消息中间件中读取同步信息,包括:
从消息队列中按照各同步信息的接收顺序读取同步信息。
6.根据权利要求4所述的方法,其特征在于,在所述同步信息包含所述数据的处理顺序的情况下,所述对所述数据执行所述操作类型指示的处理操作,包括:
如果所述数据为历史处理过的数据,确定对所述数据执行的历史处理操作的历史处理顺序;
如果所述历史处理顺序排列在所述处理顺序之前,则对所述数据执行所述操作类型指示的处理操作。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述消息中间件中同步信息的读取状态、所述第一服务器中的已存储数据、所述第二服务器中的已存储数据,确定用于表示所述第一服务器和第二服务器的数据同步状态的同步状态信息。
8.一种数据同步系统,所述系统包括第一服务器和第二服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为第二数据机房包含的服务器,
其中,所述第一服务器用于执行上述权利要求1-3所述的方法步骤,所述第二服务器用于执行上述权利要求4-7所述的方法步骤。
9.一种数据同步装置,其特征在于,所述装置应用于数据同步系统中的第一服务器,所述数据同步系统还包含第二服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,所述装置包括:
处理模块,用于响应于数据处理请求,对待处理的数据执行所述数据处理请求对应的处理操作;
生成模块,用于生成包含所述数据和所述处理操作的操作类型的同步信息;
存储模块,用于将所述同步信息存储至预设的消息中间件,以使所述第二服务器从所述消息中间件中读取所述同步信息,对所述数据执行所述操作类型指示的处理操作。
10.一种数据同步装置,其特征在于,所述装置应用于数据同步系统中的第二服务器,所述数据同步系统还包含应用上述权利要求1-3所述方法的第一服务器,所述第一服务器为第一数据机房包含的服务器,所述第二服务器为其他数据机房包含的服务器,所述装置包括:
读取模块,用于从预设的消息中间件中读取同步信息,所述同步信息至少包含待处理的数据和待执行的处理操作的操作类型;
处理模块,用于对所述数据执行所述操作类型指示的处理操作。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-3,或,权利要求4-7任一所述的方法步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3,或,权利要求4-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010082760.7A CN111309693A (zh) | 2020-02-07 | 2020-02-07 | 一种数据同步方法、装置、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010082760.7A CN111309693A (zh) | 2020-02-07 | 2020-02-07 | 一种数据同步方法、装置、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111309693A true CN111309693A (zh) | 2020-06-19 |
Family
ID=71159865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010082760.7A Pending CN111309693A (zh) | 2020-02-07 | 2020-02-07 | 一种数据同步方法、装置、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309693A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187916A (zh) * | 2020-09-27 | 2021-01-05 | 中国银联股份有限公司 | 一种跨系统的数据同步方法与装置 |
CN113467661A (zh) * | 2021-07-19 | 2021-10-01 | 维沃移动通信有限公司 | 任务同步方法、装置、设备及可读存储介质 |
CN114172915A (zh) * | 2021-11-05 | 2022-03-11 | 中汽创智科技有限公司 | 一种消息同步方法、自动驾驶系统、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108055343A (zh) * | 2017-12-26 | 2018-05-18 | 北京奇虎科技有限公司 | 用于机房的数据同步方法及装置 |
CN108200219A (zh) * | 2018-03-13 | 2018-06-22 | 广东欧珀移动通信有限公司 | 数据同步方法、装置、服务器及存储介质 |
US20190215364A1 (en) * | 2016-10-25 | 2019-07-11 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Data processing method, storage medium, and electronic device |
CN110597910A (zh) * | 2019-09-12 | 2019-12-20 | 聚好看科技股份有限公司 | 一种异地数据同步方法、装置和系统 |
CN110674105A (zh) * | 2019-08-30 | 2020-01-10 | 中国人民财产保险股份有限公司 | 一种数据备份方法、系统及服务器 |
-
2020
- 2020-02-07 CN CN202010082760.7A patent/CN111309693A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190215364A1 (en) * | 2016-10-25 | 2019-07-11 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Data processing method, storage medium, and electronic device |
CN108055343A (zh) * | 2017-12-26 | 2018-05-18 | 北京奇虎科技有限公司 | 用于机房的数据同步方法及装置 |
CN108200219A (zh) * | 2018-03-13 | 2018-06-22 | 广东欧珀移动通信有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN110674105A (zh) * | 2019-08-30 | 2020-01-10 | 中国人民财产保险股份有限公司 | 一种数据备份方法、系统及服务器 |
CN110597910A (zh) * | 2019-09-12 | 2019-12-20 | 聚好看科技股份有限公司 | 一种异地数据同步方法、装置和系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187916A (zh) * | 2020-09-27 | 2021-01-05 | 中国银联股份有限公司 | 一种跨系统的数据同步方法与装置 |
CN112187916B (zh) * | 2020-09-27 | 2023-12-05 | 中国银联股份有限公司 | 一种跨系统的数据同步方法与装置 |
CN113467661A (zh) * | 2021-07-19 | 2021-10-01 | 维沃移动通信有限公司 | 任务同步方法、装置、设备及可读存储介质 |
CN114172915A (zh) * | 2021-11-05 | 2022-03-11 | 中汽创智科技有限公司 | 一种消息同步方法、自动驾驶系统、存储介质及电子设备 |
CN114172915B (zh) * | 2021-11-05 | 2023-10-31 | 中汽创智科技有限公司 | 一种消息同步方法、自动驾驶系统、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021180025A1 (zh) | 一种消息处理方法、装置、电子设备及介质 | |
CN109885786B (zh) | 数据缓存处理方法、装置、电子设备及可读存储介质 | |
CN109213604B (zh) | 一种数据源的管理方法和装置 | |
CN111061498B (zh) | 一种配置信息管理系统 | |
CN111277847B (zh) | 直播中聊天消息的展示方法、装置、服务器及系统 | |
CN111309693A (zh) | 一种数据同步方法、装置、系统、电子设备及存储介质 | |
CN111399764B (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
CN112115200B (zh) | 数据同步方法、装置、电子设备及可读存储介质 | |
CN111177165A (zh) | 数据一致性检测的方法、装置及设备 | |
CN112835885B (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
CN111355765B (zh) | 一种网络请求的处理、发送方法及装置 | |
CN109600254B (zh) | 全链路日志的生成方法及相关系统 | |
CN112000850B (zh) | 进行数据处理的方法、装置、系统及设备 | |
CN112363980B (zh) | 一种分布式系统的数据处理方法及装置 | |
CN111400327B (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN112838980A (zh) | 一种消息处理方法、系统、装置、电子设备及存储介质 | |
CN112579682A (zh) | 数据模型变更的通知方法、装置、电子设备及存储介质 | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN113726885B (zh) | 一种流量配额的调整方法和装置 | |
CN111291127B (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
CN109656936A (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
CN113722113A (zh) | 一种流量统计的方法和装置 | |
CN114285807A (zh) | 一种报文信息管理方法、装置、服务器和存储介质 | |
CN116483261A (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
CN112199381A (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 |
Application publication date: 20200619 |
|
RJ01 | Rejection of invention patent application after publication |