本技术涉及数据同步,尤其涉及一种数据同步方法、数据中心及数据同步系统、电子设备。
背景技术:
1、随着互联网金融的快速发展,对于金融级的核心业务系统的高可用性要求非常高,面临着对rto(recovery time objective)和rpo(recovery point objective)极限追求的挑战,建设基于多数据中心的业务多活系统,保证应用和数据都能做到多活,以提升整个集群的处理能力,有效降低系统的rpo和rto时间。
2、基于多数据中心的多活系统中,实现各数据中心的数据同步的现有方法通常有以下几种:
3、1)通过数据库本身的异步流复制技术实现数据同步,其中一个数据中心为主库对外提供服务,其他数据中心为备库,当前者出现问题时,需要将其降级为备库,其他数据中心中的一个升级为主库对外提供服务,再进行反向流复制。此种方式存在的问题是切换时间较长,同时仅有1个中心数据库对外提供服务,资源利用率低。
4、2)采用应用双写的方式实现应用和数据双活,应用需要同时连接两个中心的数据库,存在跨中心分布式事务,当其中一个中心数据库或者网络出现故障时,无法保证数据的一致性和交易的原子性,需要增加额外的异步处理机制进行补偿,实现相对复杂,对开发人员的要求更高。
5、3)采用开发应用轮询业务数据表进行表复制,首先读取数据,发送到异地再写入相应表中,对业务数据表压力大,效率低,无法满足库表复杂且有处理需求的业务系统要求。
6、因此,现有方案存在着数据双向同步的效率低、实现复杂,系统资源使用率低等问题。
技术实现思路
1、为了解决上述至少一个方面的技术问题,本技术实施例提供了一种数据同步方法、数据中心及数据同步系统、电子设备,以实现多数据中心之间的数据双向高效同步,保证业务一致性。
2、本技术实施例采用下述技术方案:
3、第一方面,本技术实施例提供一种数据同步方法,所述方法由多活数据中心系统中的第一数据中心执行,所述方法包括:
4、确定第一数据中心的业务数据表是否触发预设数据录制条件;
5、在触发预设数据录制条件的情况下,对所述第一数据中心的业务数据表中的变更数据进行录制,得到变更数据录制信息;
6、将所述变更数据录制信息传输至第一数据中心的消息中间件中进行缓存,以使多活数据中心系统中的至少一个第二数据中心能够根据所述第一数据中心的消息中间件中缓存的变更数据录制信息进行数据同步。
7、可选地,所述确定第一数据中心的业务数据表是否触发预设数据录制条件包括:
8、通过预设触发器确定所述第一数据中心的业务数据表是否触发预设数据操作类型,所述预设数据操作类型包括数据的插入、删除和修改中的至少一种;
9、若触发,则确定所述第一数据中心的业务数据表触发所述预设数据录制条件;
10、否则,则未触发。
11、可选地,所述在触发预设数据录制条件的情况下,对所述第一数据中心的业务数据表中的变更数据进行录制,得到变更数据录制信息包括:
12、在触发预设数据录制条件的情况下,对所述第一数据中心的业务数据表的dml语句进行录制;
13、将录制的dml语句作为变更数据录制信息记录到第一数据中心的变更数据录制表中,所述变更数据录制表与所述业务数据表相独立。
14、可选地,在将所述变更数据录制信息传输至第一数据中心的消息中间件中进行缓存之后,所述方法还包括:
15、将所述第一数据中心的变更数据录制表中的变更数据录制信息的同步状态由待同步状态更新为已同步状态。
16、可选地,所述将所述变更数据录制信息传输至第一数据中心的消息中间件中进行缓存包括:
17、采用轮询策略读取所述变更数据录制信息;
18、将读取到的变更数据录制信息传输至所述第一数据中心的消息中间件中进行缓存。
19、可选地,所述将读取到的变更数据录制信息传输至所述第一数据中心的消息中间件中进行缓存包括:
20、利用预设压缩算法对读取到的变更数据录制信息进行压缩,得到压缩后的变更数据录制信息;
21、将压缩后的变更数据录制信息传输至所述第一数据中心的消息中间件中进行缓存。
22、可选地,所述方法还包括:
23、在第一数据中心对任意一个第二数据中心的变更数据进行同步的情况下,读取所述第二数据中心的消息中间件中缓存的数据消息报文并进行消费,得到变更数据回放信息;
24、将所述变更数据回放信息记录到第一数据中心的变更数据回放表中,所述变更数据回放表与所述业务数据表相独立;
25、关闭第一数据中心的会话级触发器,并根据所述第一数据中心的变更数据回放表对第二数据中心的变更数据进行同步。
26、可选地,在根据所述第一数据中心的变更数据回放表对第二数据中心的变更数据进行同步之后,所述方法还包括:
27、将所述第一数据中心的变更数据回放表中的变更数据回放信息的回放状态由待回放状态更新为已回放状态。
28、第二方面,本技术实施例还提供一种数据中心,所述数据中心包括多活数据中心系统中的第一数据中心,所述第一数据中心包括数据库服务器、数据传输服务器和消息中间件;
29、所述数据库服务器,用于确定第一数据中心的业务数据表是否触发预设数据录制条件,并在触发预设数据录制条件的情况下,对所述第一数据中心的业务数据表中的变更数据进行录制,得到变更数据录制信息;
30、所述数据传输服务器,用于读取所述变更数据录制信息并将所述变更数据录制信息传输至第一数据中心的消息中间件;
31、所述消息中间件,用于对所述变更数据录制信息进行缓存,以使多活数据中心系统中的至少一个第二数据中心能够根据所述第一数据中心的消息中间件中缓存的变更数据录制信息进行数据同步。
32、第三方面,本技术实施例还提供一种数据同步系统,所述数据同步系统为多活数据中心系统,所述多活数据中心系统包括第一数据中心和至少一个第二数据中心,所述第一数据中心用于执行前述任一项所述方法。
33、第四方面,本技术实施例还提供一种电子设备,包括:
34、处理器;以及
35、被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行前述之任一所述方法。
36、第五方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行前述之任一所述方法。
37、本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:本技术实施例的数据同步方法由多活数据中心系统中的第一数据中心执行,先确定第一数据中心的业务数据表是否触发预设数据录制条件;然后在触发预设数据录制条件的情况下,对第一数据中心的业务数据表中的变更数据进行录制,得到变更数据录制信息;最后将变更数据录制信息传输至第一数据中心的消息中间件中进行缓存,以使多活数据中心系统中的至少一个第二数据中心能够根据第一数据中心的消息中间件中缓存的变更数据录制信息进行数据同步。本技术实施例的数据同步方法由多活数据中心系统中的任意一个数据中心执行,各数据中心的数据库都可同时对外提供数据库服务,有效地提升了系统资源利用率,通过结合变更数据的录制和消息中间件的缓存进行数据同步,提高了数据双向同步的效率,且易于实现。