一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据多机房同步方法、装置、设备及存储介质与流程

2022-06-02 12:01:10 来源:中国专利 TAG:


1.本技术实施例涉及数据处理技术领域,尤其涉及一种数据多机房同步方法、装置、设备及存储介质。


背景技术:

2.随着网络技术的发展,越来越多的用户加入到网络服务中,随之而来的是越来越多的用户数据的产生,当业务系统需要为处于不同地区甚至全球的用户服务时,单机房的数据库部署通常会导致操作延迟过高,响应速度慢等情况,导致用户体验较差,为了降低数据库的操作延迟,提高响应速度,通常使用多机房的分布式存储系统。
3.目前多机房同步的方式通常通过第三方工具定时同步来进行,第三方工具定时同步需要定时全量同步或监听发生变更的键(key),实现不同机房之间的全量数据同步。但是对于存储量较大的数据库,每次同步耗时和网络带宽等资源占用极高,在同步时需要拉取相关键的全量数据,在拉取的键的数据量较大时,拉取耗时和网络带宽占用相应增高,容易导致机房网络拥堵,影响全量业务。


技术实现要素:

4.本技术实施例提供一种数据多机房同步方法、装置、设备及存储介质,以解决现有技术中在拉取的键的数据量较大时,拉取耗时和网络带宽占用相应增高,容易导致机房网络拥堵,影响全量业务的技术问题,减少对系统资源的占用,保证全量业务的正常进行。
5.在第一方面,本技术实施例提供了一种数据多机房同步方法,包括:
6.接收业务系统发起的数据库操作,向当前机房的数据库转发所述数据库操作,以使当前机房的数据库根据所述数据库操作进行数据操作,并确定是否需要对所述数据库操作进行多机房同步;
7.响应于需要对所述数据库操作进行多机房同步,根据所述数据库操作创建同步事件;
8.向其他机房发送所述同步事件,以使其他机房响应于接收到的同步事件进行数据库同步。
9.在第二方面,本技术实施例提供了一种数据多机房同步装置,包括同步判断模块、事件创建模块和事件同步模块,其中:
10.所述同步判断模块,用于接收业务系统发起的数据库操作,向当前机房的数据库转发所述数据库操作,以使当前机房的数据库根据所述数据库操作进行数据操作,并确定是否需要对所述数据库操作进行多机房同步;
11.所述事件创建模块,用于响应于需要对所述数据库操作进行多机房同步,根据所述数据库操作创建同步事件;
12.所述事件同步模块,用于向其他机房发送所述同步事件,以使其他机房响应于接收到的同步事件进行数据库同步。
13.在第三方面,本技术实施例提供了一种数据多机房同步设备,包括:存储器以及一个或多个处理器;
14.所述存储器,用于存储一个或多个程序;
15.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据多机房同步方法。
16.在第四方面,本技术实施例提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的数据多机房同步方法。
17.本技术实施例通过在接收到业务系统发起的数据库操作时,向当前机房的数据库转发数据库操作,以使当前机房的数据库根据数据库操作进行数据操作,并确定是否需要对该数据库操作进行多机房同步,在需要进行多机房同步时,根据数据库操作创建同步事件,并向其他机房发送同步事件,以通知其他机房基于接收到的同步事件进行数据库同步,通过在接收到数据库操作时,过滤掉非必要或低价值数据的数据库操作的同步,减少过多的数据库同步操作导致数据拉取耗时和网络带宽占用增高的情况,减少对系统资源的占用,保证数据库全量业务的正常进行。
附图说明
18.图1是本技术实施例提供的一种数据多机房同步方法的流程图;
19.图2是本技术实施例提供的一种多机房同步判断的流程示意图;
20.图3是本技术实施例提供的一种同步事件的创建流程示意图;
21.图4是本技术实施例提供的另一种数据多机房同步方法的流程图;
22.图5是本技术实施例提供的一种数据多机房同步装置的结构示意图;
23.图6是本技术实施例提供的一种数据多机房同步设备的结构示意图。
具体实施方式
24.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图对本技术具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时上述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。上述处理可以对应于方法、函数、规程、子例程、子程序等等。
25.图1给出了本技术实施例提供的一种数据多机房同步方法的流程图,本技术实施例提供的数据多机房同步方法可以由数据多机房同步装置来执行,该数据多机房同步装置可以通过硬件和/或软件的方式实现,并集成在数据多机房同步设备中。
26.下述以数据多机房同步装置执行数据多机房同步方法为例进行描述。参考图1,该数据多机房同步方法包括:
27.s101:接收业务系统发起的数据库操作,向当前机房的数据库转发数据库操作,以
使当前机房的数据库根据数据库操作进行数据操作,并确定是否需要对数据库操作进行多机房同步。
28.本实施例提供的数据库配置于多机房的分布式存储系统中。需要进行解释的是,在分布式存储系统的各个数据库分别布置于不同的机房中,并且数据库在接收到业务系统转发的数据库操作时,将根据数据库操作对其所存储的数据进行相应的处理。同时,数据库在接收到其他机房发送过来的同步事件时,将根据同步事件进行数据库同步操作,保证不同机房之间业务数据的一致性。
29.本实施例提供的数据库可以是redis数据库,对应的数据库操作为redis操作,并且每个数据库操作配置有对应的键(key),可通过对键的配置记录并更新对应数据库操作的同步状态。可选的,可通过对键的配置设置不同的多机房同步策略,包括:是否同步、有效时长、键分组(key分组)等。对应的,可根据键的配置信息确定是否对相应的数据库操作进行同步,在达到有效时长时将键的同步状态重置为未同步,通过键分组确定业务相关的其他数据库操作对应的键。
30.其中,业务系统服务与用户进行通信并向用户提供对应的服务,例如,在用户需要发起对数据库进的相关操作时,用户可向业务系统发起数据库操作请求(例如向业务系统发起数据写入请求或数据读取请求),业务系统可响应于数据库操作请求发起对应的数据库操作。
31.示例性的,在接收到业务系统发起的数据可操作时,向当前机房的数据库转发该数据库操作。数据库在接收到业务系统转发的数据库操作后,可根据数据库操作执行对应的数据操作。在一个实施例中,数据库操作包括写操作和读操作。例如,在接收到业务系统转发的写操作时,数据库可根据写操作在对应的存储位置写入相应数据,并通知业务系统数据写入结果,而在接收到业务系统转发的读操作时,数据库可根据读操作从对应的存储位置获取相应数据并发送给业务系统。
32.在一个实施例中,在向当前机房的数据库转发数据库操作的同时,判断是否需要对该数据库操作进行多机房同步,以过滤掉非必要或低价值的数据库同步。进一步的,在确定需要对该数据库操作进行多机房同步时,跳转至步骤s102执行后续对数据库操作的数据多机房同步流程,若确定不需要对该数据库操作进行多机房同步,则结束对当前数据库操作的数据多机房同步流程。
33.在一个可能的实施例中,可根据业务需要预先设定需要进行多机房同步的数据库操作,并基于各个数据库操作对应的键(key)确定是否需要进行多机房同步。可选的,可通过表格记录的方式记录需要进行多机房同步的键,基于此,如图2提供的一种多机房同步判断的流程示意图所示,本方案在确定是否需要对数据库操作进行多机房同步时,具体包括步骤s1011-s1013:
34.s1011:将数据库操作对应的键在同步匹配表中进行匹配,同步匹配表中记录有需要进行同步的键。
35.s1012:响应于匹配成功的匹配结果确定需要对数据库操作进行多机房同步。
36.s1013:响应于匹配失败的匹配结果确定不需要对数据库操作进行多机房同步。
37.示例性的,通过同步匹配表记录需要进行同步的键,在接收到业务系统发起的数据库操作后,将该数据库操作对应的键在同步匹配表中进行匹配,若在同步匹配表中匹配
到相同的键,则生成匹配成功的匹配结果,若遍历同步匹配表都没找到相同的键,则生成匹配失败的匹配结果。
38.进一步的,在生成匹配成功的匹配结果时,确定需要对当前数据库操作进行多机房同步,并跳转至步骤s102,而在生成匹配失败的匹配结果时,确定不需要对当前数据库操作进行多机房同步,结束对当前数据库操作的数据多机房同步流程,等待下一个数据库操作的到来。
39.s102:响应于需要对数据库操作进行多机房同步,根据数据库操作创建同步事件。
40.示例性的,在确定需要对数据库操作进行多机房同步时,根据该数据库操作生成相应的同步事件。其中,不同的数据库操作对应不同的操作类型,对应的,可根据数据库操作的不同操作类型创建不同类型的同步事件。即在根据数据库操作创建同步事件时,可以是根据数据库操作的操作类型创建同步事件。
41.在一个可能的实施例中,数据库操作的操作类型包括写操作类型和读操作类型,对应的,同步事件包括增量同步事件和全量同步事件。基于此,如图3提供的一种同步事件的创建流程示意图所示,本方案在根据数据库操作的操作类型创建同步事件时,具体包括:
42.s1021:确定数据库操作的操作类型。
43.s1022:响应于数据库操作为写操作类型,创建增量同步事件。
44.s1023:响应于数据库操作为读操作类型,创建全量同步事件。
45.其中,写操作类型的数据库操作可理解为需要在数据库中写入数据的操作,读操作类型的数据库操作可理解为需要从数据库中读取数据的操作。增量同步事件可理解为需要其他机房对发生变化的数据进行同步的事件,全量同步事件可理解为需要其他机房对所有业务数据进行同步的事件。
46.示例性的,在确定需要对数据库操作进行多机房同步时,确定当前数据库操作的操作类型,若数据库操作的操作类型为写操作类型,则基于该数据库操作创建对应的增量同步事件,若数据库操作的操作类型为读操作类型,则基于该数据库操作创建对应的全量同步事件。可以理解的是,在数据库操作的操作类型为写操作类型时,只是在数据库中写入部分数据,只需要增量同步修改部分的数据到其他机房的数据库中即可,没必要对全部业务数据进行同步,在同步时不需要拉取相关键的全量数据,减少对系统资源的占用,降低拉取耗时和网络带宽占用。在数据库操作的操作类型为读操作类型时,由于读操作经常会涉及到多种数据(有可能是全量数据或部分数据),需要在多个机房之间全量同步数据,以保证业务完整性。
47.s103:向其他机房发送同步事件,以使其他机房响应于接收到的同步事件进行数据库同步。
48.示例性的,向同一分布式存储系统的其他机房发送同步事件,其他机房在接收到同步事件后,将同步事件转发给对应的数据库,由其他机房的数据库根据同步事件进行数据库同步。在一个实施例中,其他机房的数据库在完成数据库同步后,向发起同步事件的数据多机房同步装置反馈同步结果,数据多机房同步装置可根据同步结果确定是否需要重新进行多机房同步。
49.在一个可能的实施例中,可通过预先配置的待发送事件队列负责同步事件向其他机房的发送。基于此,本方案在向其他机房发送同步事件时,具体为:将同步事件发送到待
发送事件队列中,由待发送事件队列向其他机房发送接收到的同步事件。示例性的,将创建的同步事件推入到待发送事件队列中,由待发送事件队列按照同步事件的加入顺序向同一分布式存储系统的其他机房发送同步事件,以保证数据库同步的时序性。
50.上述,通过在接收到业务系统发起的数据库操作时,向当前机房的数据库转发数据库操作,以使当前机房的数据库根据数据库操作进行数据操作,并确定是否需要对该数据库操作进行多机房同步,在需要进行多机房同步时,根据数据库操作创建同步事件,并向其他机房发送同步事件,以通知其他机房基于接收到的同步事件进行数据库同步,通过在接收到数据库操作时,过滤掉非必要或低价值数据的数据库操作的同步,减少过多的数据库同步操作导致数据拉取耗时和网络带宽占用增高的情况,减少对系统资源的占用,保证数据库全量业务的正常进行。同时,根据数据库操作的键校验是否需要进行多机房同步,有效过滤掉没必要同步的键,减少不必要的同步操作,节省系统资源。并且根据数据库操作的操作类型创建增量同步事件或全量同步事件,在执行写操作时进行增量同步,减少同步的数据量,通过增量同步与全量同步结合,降低在业务高峰期出现大键(big key)需要全量同步的概率,减少多机房同步对整个分布式存储系统的资源占用。并通过可配置的键实现对同步的选择,过滤掉无需同步的键,减少不必要的同步,节省资源。
51.在上述实施例的基础上,图4给出了本技术实施例提供的另一种数据多机房同步方法的流程图,该数据多机房同步方法是对上述数据多机房同步方法的具体化。参考图4,该数据多机房同步方法包括:
52.s201:接收业务系统发起的数据库操作,向当前机房的数据库转发数据库操作,以使当前机房的数据库根据数据库操作进行数据操作,并确定是否需要对数据库操作进行多机房同步。
53.s202:响应于需要对数据库操作进行多机房同步,确定数据库操作的操作类型。
54.根据数据库操作对应的键判断是否需要进行多机房同步,在确定不需要进行多机房同步时结束本次数据多机房同步流程,等待下一个数据库操作的发起。在确定需要进行多机房同步时,判断数据库操作的操作类型。在操作类型为写操作类型时,跳转至步骤s203,在操作类型为读操作类型时,跳转至步骤s204。
55.s203:响应于数据库操作为写操作类型,创建增量同步事件。
56.示例性的,在数据库操作的操作类型为写操作类型时,根据该数据库操作创建对应的增量同步事件。其中,一个写操作可操作一个或多个键,对应的,在创建增量同步事件时,根据写操作对应的一个或多个键创建一个或多个增量同步事件,并且增量同步事件与键一一对应。
57.例如,对于针对单个数据发起的写操作一般会对应一个键(redis key),对应的只创建一个对应该键的增量同步事件,而对应针对多个数据发起的写操作(例如redis pipeline写操作),会涉及到多个键,对应的,针对每一个键创建对应的增量同步事件。
58.在一个实施例中,在创建同步事件(包括增量同步事件和全量同步事件)后,可对数据库操作的版本号进行记录,其他机房的数据库在基于同步事件进行数据库同步时,可根据版本号判断更新是否正常(例如正常情况下,其他机房中记录的版本号是落后于接收到的同步事件的同步事件的),并在更新异常时在各机房之间发起全量同步事件。例如其他机房的数据库在基于增量同步事件进行数据库增量同步时,可根据版本号判断增量同步更
新是否正常,并在增量同步更新异常时,将增量同步事件转换为全量同步事件,并在各机房之间发起该全量同步事件,保证数据的正确性和一致性。
59.s204:响应于数据库操作为读操作类型,创建全量同步事件。
60.示例性的,在数据库操作的操作类型为读操作类型时,为了保持业务的完整性,根据数据库操作的操作类型创建同步事件。一般的,一个读操作会操作一个或多个键,对应的,在创建全量同步事件时,根据读操作对应的一个或多个键创建一个或多个全量同步事件,并且全量同步事件与键一一对应。
61.在一个实施例中,读操作可对应一个或多个业务(事务),可将同一业务(事务)的键划分到相同的键分组中,即同一个键分组中的键是在业务上相关联的,例如在键的配置中设定对应的键分组(例如通过键的固定前缀进行设定),在同一个键分组中的键均配置有相同的固定前缀。
62.s205:确定增量同步事件对应的键的同步状态。
63.本实施例通过对键(key)的同步状态来反映对应先前设定时间段(键的有效时长)内是否有对对应数据库操作进行多机房同步。在初始状态下,键的同步状态为未同步,在基于键对应的数据库操作生成的同步事件(包括增量同步事件和全量同步事件)发送到其他机房进行数据库同步并同步成功时,将对应的键的同步状态更新为已同步(同样,其他机房也将对应的键的同步状态更新为已同步),或者是接收到其他机房发出的同步事件进行数据库同步时,将对应的键的同步状态更新为已同步。其中,在键的同步状态更新为已同步并持续该键的有效时长,并且在有效时长期间未重新更新该键的同步状态更新为已同步时,将该键的同步状态更新为未同步。
64.在一个实施例中,在将同步事件(包括增量同步事件和全量同步事件)发送给其他机房后,根据其他机房的同步反馈信息确定是否同步成功,并在确定同步成功时,将同步事件对应的键的同步状态设置为已更新。
65.在一个实施例中,在创建同步事件后,对同步事件进行同步校验,从而判断是否需要将增量同步事件转换为全量同步事件,保证业务一致性,或者判断是否需要为相同键分组中其他未同步的键创建全量同步事件,主动触发关联业务的联动同步。
66.示例性的,确定各个增量同步事件对应的键的同步状态,若全部的增量同步事件对应的键的同步状态均为已同步时,跳转至步骤s207(即直接同步全部增量同步事件,不需要转换为全量同步事件),若这些增量同步事件对应的键中,存在同步状态为未同步的键,则跳转至步骤s206。
67.s206:响应于存在同步状态为未同步的键,将为未同步的键对应的增量同步事件转换为全量同步事件。
68.其中,在增量同步事件对应的键在先前未经过同步或者同步状态超过时效时,有可能存在其他机房的数据库中该键对应的数据不一致的情况,为了保证业务数据的有效性与一致性,需要进行全量同步。
69.示例性的,在存在同步状态为未同步的键时,将同步状态为未同步的键对应的增量同步事件转换为全量同步事件。可以理解的是,在初始状态下或者是键的同步状态保持超过有效时长时,数据库操作对应的数据未写入其他机房中或者出现更新而未同步的情况,若仍然发起增量同步事件,会存在同步结果不一致的情况,为了保证数据的一致性,将
增量同步事件转换为全量同步事件。
70.s207:确定全量同步事件对应的键对应的键分组,并确定键分组中其他键的同步状态,键分组中的键在业务上相关联。
71.s208:响应于键分组中存在同步状态为未同步的键,根据未同步的键创建全量同步事件。
72.示例性的,确定全量同步事件对应的键对应的键分组,并进一步确定该键分组中其他键的同步状态。在该键分组中存在同步状态为未同步的键时,可根据这些未同步的键创建全量同步事件,通过主动同步联动的同步策略,推动业务相关的键及时同步到其他机房,那么其他机房的业务系统在使用同步数据时,无需校验各项数据是否同步完整,加快数据系统响应速度。
73.在一个实施例中,在确定键分组中其他键的同步状态后,还可响应于全量同步事件对应的键的同步状态为已同步,丢弃全量同步事件。即在全量同步事件的键的同步状态为已同步时,可认为该键对应的数据在各个机房之间是一致的,没必要再发起该键对应的全量同步事件,以减少不必要的全量同步,节省系统处理资源。
74.s209:将同步事件发送到待发送事件队列中,由待发送事件队列向其他机房发送接收到的同步事件,以使其他机房响应于接收到的同步事件进行数据库同步。
75.其中,发送到待发送事件队列中的同步事件包括增量同步事件和/或全量同步事件。例如,在数据库操作为单个写操作时,对应只会操作一个键并创建一个增量同步事件,在对该增量同步事件进行校验时,若对应的键的同步状态为已同步时,发送到待发送事件队列中的同步事件为该增量同步事件,若对应的键的同步状态为未同步时,则将该增量同步事件转换为全量同步事件,那么发送到待发送事件队列中的同步事件为由增量同步事件转换得到的全量同步事件。在数据库操作(例如redis pipeline操作)涉及到多个键时,创建多个增量同步事件,在对这些增量同步事件进行校验时,若这些键的同步状态均为已同步时,发送到待发送事件队列中的同步事件为这些增量同步事件,若存在未同步的键,则将未同步的键对应的增量同步事件转换为全量同步事件,那么发送到待发送事件队列中的同步事件为由未同步的键对应的增量同步事件转换得到的全量同步事件和已同步的键对应的增量同步事件(存在已同步的键时)。
76.在数据库操作为读操作并涉及多个键时,创建多个全量同步事件,可以理解的是,这些同步事件均为全量同步事件,未命中增量同步事件校验中未同步的键。对于每一个全量同步事件,判断对应的键分组中其他键的同步状态,若键分组中存在其他未同步的键,则根据未同步的键创建全量同步事件,那么发送到待发送事件队列中的同步事件为根据读操作创建的多个全量同步事件以及基于键分组中存在其他未同步的键创建的全量同步事件。若键分组中其他的键均已同步,则直接向待发送事件队列发送这些全量同步事件,那么发送到待发送事件队列中的同步事件为根据读操作创建的多个全量同步事件。在全量同步事件对应的键的同步状态为已同步时,可丢弃该全量同步事件,减少不必要的全量同步。
77.上述,通过在接收到业务系统发起的数据库操作时,向当前机房的数据库转发数据库操作,以使当前机房的数据库根据数据库操作进行数据操作,并确定是否需要对该数据库操作进行多机房同步,在需要进行多机房同步时,根据数据库操作创建同步事件,并向其他机房发送同步事件,以通知其他机房基于接收到的同步事件进行数据库同步,通过在
接收到数据库操作时,过滤掉非必要或低价值数据的数据库操作的同步,减少过多的数据库同步操作导致数据拉取耗时和网络带宽占用增高的情况,减少对系统资源的占用,保证数据库全量业务的正常进行。同时,将未同步的键对应的增量同步事件转换为全量同步事件,发起不同机房之间的数据全量同步,保证数据的一致性。并根据键分组中业务关联的未同步的键创建全量同步事件,主动同步联动业务相关的数据到其他机房,加快数据系统响应速度。同时,在发起读操作并且在全量同步事件的键已同步时丢弃该全量同步事件,减少不必要的全量同步,有效节省系统处理资源。并且可将数据多机房同步装置应用到redis分布式存储系统中,对数据库的同步操作使用的是redis命令,而非redis序列化数据,在不同的redis版本中可以快速接入该数据多机房同步方法,不需要考虑序列化数据的兼容性,实现更好的redis版本兼容性,有效减少对业务系统和redis存储系统的侵入,并通过增量同步与全量同步的结合,有效减少在业务高峰期出现大键全量同步的概率,减少对整个系统的资源占用。
78.图5是本技术实施例提供的一种数据多机房同步装置的结构示意图。参考图5,该数据多机房同步装置包括同步判断模块51、事件创建模块52和事件同步模块53。
79.其中,同步判断模块51,用于接收业务系统发起的数据库操作,向当前机房的数据库转发数据库操作,以使当前机房的数据库根据数据库操作进行数据操作,并确定是否需要对数据库操作进行多机房同步;事件创建模块52,用于响应于需要对数据库操作进行多机房同步,根据数据库操作创建同步事件;事件同步模块53,用于向其他机房发送同步事件,以使其他机房响应于接收到的同步事件进行数据库同步.
80.上述,通过在接收到业务系统发起的数据库操作时,向当前机房的数据库转发数据库操作,以使当前机房的数据库根据数据库操作进行数据操作,并确定是否需要对该数据库操作进行多机房同步,在需要进行多机房同步时,根据数据库操作创建同步事件,并向其他机房发送同步事件,以通知其他机房基于接收到的同步事件进行数据库同步,通过在接收到数据库操作时,过滤掉非必要或低价值数据的数据库操作的同步,减少过多的数据库同步操作导致数据拉取耗时和网络带宽占用增高的情况,减少对系统资源的占用,保证数据库全量业务的正常进行。
81.在一个实施例中,同步判断模块51在确定是否需要对数据库操作进行多机房同步时,包括:
82.将数据库操作对应的键在同步匹配表中进行匹配,同步匹配表中记录有需要进行同步的键;
83.响应于匹配成功的匹配结果确定需要对数据库操作进行多机房同步;
84.响应于匹配失败的匹配结果确定不需要对数据库操作进行多机房同步。
85.在一个实施例中,事件创建模块52在根据数据库操作创建同步事件时,包括:
86.确定数据库操作的操作类型;响应于数据库操作为写操作类型,创建增量同步事件;响应于数据库操作为读操作类型,创建全量同步事件。
87.在一个实施例中,事件创建模块52还用于在根据数据库操作创建同步事件之后,确定增量同步事件对应的键的同步状态;响应于存在同步状态为未同步的键,将为未同步的键对应的增量同步事件转换为全量同步事件
88.在一个实施例中,事件创建模块52还用于在根据数据库操作创建同步事件之后,
确定全量同步事件对应的键对应的键分组,并确定键分组中其他键的同步状态,键分组中的键在业务上相关联;响应于键分组中存在同步状态为未同步的键,根据未同步的键创建全量同步事件。
89.在一个实施例中,事件创建模块52还用于在根据数据库操作创建同步事件之后,响应于全量同步事件对应的键的同步状态为已同步,丢弃全量同步事件。
90.在一个实施例中,事件同步模块53在向其他机房发送同步事件时,包括:将同步事件发送到待发送事件队列中,由待发送事件队列向其他机房发送接收到的同步事件。
91.在一个实施例中,数据库为redis数据库。
92.本技术实施例还提供了一种数据多机房同步设备,该数据多机房同步设备可集成本技术实施例提供的数据多机房同步装置。图6是本技术实施例提供的一种数据多机房同步设备的结构示意图。参考图6,该数据多机房同步设备包括:输入装置63、输出装置64、存储器62以及一个或多个处理器61;存储器62,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器61执行,使得一个或多个处理器61实现如上述实施例提供的数据多机房同步方法。上述提供的数据多机房同步装置、设备和计算机可用于执行上述任意实施例提供的数据多机房同步方法,具备相应的功能和有益效果。
93.本技术实施例还提供一种存储计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的数据多机房同步方法。当然,本技术实施例所提供的一种存储计算机可执行指令的存储介质,其计算机可执行指令不限于如上提供的数据多机房同步方法,还可以执行本技术任意实施例所提供的数据多机房同步方法中的相关操作。上述实施例中提供的数据多机房同步装置、设备及存储介质可执行本技术任意实施例所提供的数据多机房同步方法,未在上述实施例中详尽描述的技术细节,可参见本技术任意实施例所提供的数据多机房同步方法。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献