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

基于操作日志的双向同步方法、装置和电子设备与流程

2023-01-15 08:07:52 来源:中国专利 TAG:

1.本技术涉及数据库技术领域,尤其涉及基于操作日志的双向同步方法、装置和电子设备。


背景技术:

2.读写分离是一种常见的解决关系型数据库性能的技术。需要读写的应用访问主库,只需要读数据的应用访问从库。主库、从库之间通过数据复制进行数据上的同步,保证主从库数据一致。此处数据同步是读写分离的关键技术。
3.目前,在相关的数据同步技术中没有针对云端和本地数据库进行双向同步的技术方案,当双向同步方案可以确保云端和本地两个数据库中实时保持同步,对系统双活具体重大意义。


技术实现要素:

4.基于此,有必要针对上述问题,本技术提出了基于操作日志的双向同步方法、装置和电子设备,能够基于数据库的操作日志及时感知数据更新并进行数据双向同步,提高数据同步效率,保持云端数据和本地数据的数据一致性。
5.第一方面,本技术提供了一种基于操作日志的双向同步方法,包括:监听云端和本地两个数据库的操作日志;当两个数据库任意一个中发生数据更新时,根据相应的操作日志,确定与数据更新相关的数据信息,并将数据信息封装到队列消息中发送至应用程序,其中应用程序为作为队列消息的消费者的程序;通过应用程序根据数据库中的双向同步规则,使用数据信息对两个数据库进行双向同步,其中数据库中的双向同步规则是预先制定的。
6.可选的,在第一方面的一种实现方式中,数据信息包括规则类数据和同步类数据,规则类数据包括双向同步规则,同步类数据包括需要双向同步的目标数据;该方法还包括:使用数据信息中的双向同步规则更新数据库中的双向同步规则;根据数据库中的双向同步规则,使用数据信息对两个数据库进行双向同步,包括:根据数据信息中的双向同步规则,将目标数据对两个数据库进行双向同步。
7.可选的,在第一方面的一种实现方式中,数据信息为数据库表,在使用数据信息对两个数据库进行双向同步之前,还包括:当应用程序启动时,获取数据库中的双向同步规则;当数据库表存在,并且数据库表的唯一键正确时,执行对两个数据库进行双向同步的操作。
8.可选的,在第一方面的一种实现方式中,队列消息为rabbitmq消息,rabbitmq消息的消息类型包括:输入型、更新型和删除型。
9.进一步可选的,当rabbitmq消息中的数据为输入型或更新型时,根据数据库中的
双向同步规则,使用数据信息对两个数据库进行双向同步,包括:对于两个数据库中的任一个,判断数据库中是否存在rabbitmq消息中的数据;若不存在,则执行输入操作将在rabbitmq消息中的数据输入数据库中;若存在,则执行更新操作将在rabbitmq消息中的数据更新至数据库中。
10.进一步可选的,当rabbitmq消息中的数据为删除型时,根据数据库中的双向同步规则,使用数据信息对两个数据库进行双向同步,包括:对于两个数据库中的任一个,判断数据库中是否存在rabbitmq消息中的数据;若存在,则执行删除操作将在rabbitmq消息中的数据从数据库中删除。
11.可选的,在第一方面的一种实现方式中,该方法还包括:当双向同步完成后,获取相应的同步时长;若同步时长大于或等于预设同步阈值,通过微信方式发出告警信息。
12.第二方面,本技术提供了一种基于操作日志的双向同步装置,包括:监听模块、处理模块和更新模块;监听模块用于:监听云端和本地两个数据库的操作日志;处理模块用于:当两个数据库任意一个中发生数据更新时,根据相应的操作日志,确定与数据更新相关的数据信息,并将数据信息封装到队列消息中发送至应用程序,其中应用程序为作为队列消息的消费者的程序;更新模块用于:根据数据库中的双向同步规则,使用数据信息对两个数据库进行双向同步,其中数据库中的双向同步规则是预先制定的。
13.第三方面,本技术提供了一种电子设备,包括:处理器和存储器,存储器上存储有可执行代码;当可执行代码被处理器调用时,使得电子设备执行如第一方面及其实现方式任一项中所述的基于操作日志的双向同步方法中的步骤。
14.第四方面,本技术提供了一种计算机可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器调用时,使得电子设备执行如第一方面及其实现方式任一项中所述的基于操作日志的双向同步方法中的步骤。
15.本技术提供的技术方案具有以下有益效果:在本技术技术方案中,通过对云端和本地两个数据库的操作日志的监听,可以在云端或本地任意一个数据库中发生数据更新时,通过相应的操作日志确定与数据更新相关的数据信息,并将该数据信息封装到队列消息中发送至应用程序中,进而通过应用程序使用数据信息对云端和本地两个数据库进行双向同步,可以基于数据库的操作日志及时感知数据更新并进行数据同步,确保云端和本地两个数据库中的数据保持实时一致,提高数据同步效率,保持云端数据和本地数据的数据一致性。
16.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
17.通过结合附图对本技术示例性实施方式进行更详细的描述,本技术的上述以及其它目的、特征和优势将变得更加明显,其中,在本技术示例性实施方式中,相同的参考标号
通常代表相同部件。
18.图1为本技术实施例中基于操作日志的双向同步方法的一个流程示意图;图2为本技术实施例中基于操作日志的双向同步装置的一个结构示意图;图3为本技术实施例中电子设备的一个结构示意图。
具体实施方式
19.下面将参照附图更详细地描述本技术的实施方式。虽然附图中显示了本技术的实施方式,然而应该理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本技术更加透彻和完整,并且能够将本技术的范围完整地传达给本领域的技术人员。
20.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
21.应当理解,尽管在本技术可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
22.本技术实施例中提供了基于操作日志的双向同步方法、装置和电子设备,能够基于数据库的操作日志及时感知数据更新并进行数据双向同步,提高数据同步效率,保持云端数据和本地数据的数据一致性。
23.为了便于理解本技术实施例中基于操作日志的双向同步方法,下面结合附图对具体的技术方案进行说明,具体如下:图1为本技术实施例中基于操作日志的双向同步方法的一个流程示意图。
24.101、监听云端和本地两个数据库的操作日志。
25.在本技术实施例中,云端数据库是部署在云平台上的数据库,例如华为云数据库,本地数据库是企业、事业单位部署在本地机房中的数据库。
26.相应的,操作日志是用于记录数据库中的数据更新或者潜在更新,例如mysql bin log日志就是操作日志的其中一种,binlog是二进制日志文件。
27.对于监听的方式可以是实时监听,或者周期性监听,对此本技术中不做任何限制。
28.102、当两个数据库任意一个中发生数据更新时,根据相应的操作日志,确定与数据更新相关的数据信息。
29.在本技术实施例中,由于操作日志可以记录数据更新或者潜在更新,因此根据操作日志的记录可以获取与数据更新相关的数据信息。应用程序是指作为队列消息的消费者的程序。
30.可选的,在本技术实施例的一种实施方式中,数据信息中的数据可以分为规则类数据和同步类数据,规则类数据表示双向同步规则,同步类数据包括需要双向同步的目标
数据。
31.可选的,数据信息可以以表的形式呈现,具体的,数据信息为数据库表。
32.需要说明的是,双向同步是指两个数据库之间的双向数据实时同步,例如两个mysql数据库之间的双向同步,比如rds mysql和自建mysql之间的双向数据实时同步。
33.103、将数据信息封装到队列消息中发送至应用程序。
34.在本技术实施例中,队列消息又称消息队列(message queuing,mq),具体的,消息队列具体可以是rabbitmq消息,应用程序是作为rabbitmq消息的消费者的程序,此外,消息队列也可以是除rabbitmq消息之外的其他消息,对此本技术不做任何限制。
35.进一步的,rabbitmq消息的消息类型包括:输入型、更新型和删除型。
36.进一步可选的,当rabbitmq消息中的数据为输入型或更新型时,根据数据库中的双向同步规则,使用数据信息对两个数据库进行双向同步,包括以下步骤:对于两个数据库中的任一个,判断数据库中是否存在rabbitmq消息中的数据;若不存在,则执行输入操作将在rabbitmq消息中的数据输入数据库中;若存在,则执行更新操作将在rabbitmq消息中的数据更新至数据库中。
37.进一步可选的,当rabbitmq消息中的数据为删除型时,根据数据库中的双向同步规则,使用数据信息对两个数据库进行双向同步,包括以下步骤:对于两个数据库中的任一个,判断数据库中是否存在rabbitmq消息中的数据;若存在,则执行删除操作将在rabbitmq消息中的数据从数据库中删除。
38.104、通过应用程序根据数据库中的双向同步规则,使用数据信息对两个数据库进行双向同步。
39.在本技术实施例中,数据库中的双向同步规则是预先制定的并将其作为初始化的双向同步规则。
40.数据信息包括规则类数据和同步类数据,实现对云端和本地两个数据库的双向同步具体可以执行以下步骤:首先,使用数据信息中的双向同步规则更新数据库中的双向同步规则;其次,根据数据信息中的双向同步规则,将目标数据对两个数据库进行双向同步。
41.进一步的,若数据信息为数据库表,在使用数据信息对两个数据库进行双向同步之前,还包括:当应用程序启动时,获取数据库中的双向同步规则;当数据库表存在,并且数据库表的唯一键正确时,执行对两个数据库进行双向同步的操作。
42.可选的,在本技术实施例的一些实施方式中,该方案中还可以提供数据同步时长监控,延迟一定时间系统进行微信告警,运维人员接入处理。具体的,双向同步方法还包括以下步骤:当双向同步完成后,获取相应的同步时长;若同步时长大于或等于预设同步阈值,通过微信方式发出告警信息。
43.在本技术实施例的技术方案中,通过对云端和本地两个数据库的操作日志的监听,可以在云端或本地任意一个数据库中发生数据更新时,通过相应的操作日志确定与数据更新相关的数据信息,并将该数据信息封装到队列消息中发送至应用程序中,进而通过应用程序使用数据信息对云端和本地两个数据库进行双向同步,可以基于数据库的操作日志及时感知数据更新并进行数据同步,确保云端和本地两个数据库中的数据保持实时一致,提高数据同步效率,保持云端数据和本地数据的数据一致性。
44.与前述应用功能实现方法实施例相对应,本技术还提供了一种基于操作日志的双向同步装置、电子设备及相应的实施例。
45.图2为本技术实施例中基于操作日志的双向同步装置的一个结构示意图。
46.如图2所述,本技术实施例中基于操作日志的双向同步装置20包括:监听模块201、处理模块202和更新模块203;监听模块201用于:监听云端和本地两个数据库的操作日志;处理模块202用于:当两个数据库任意一个中发生数据更新时,根据相应的操作日志,确定与数据更新相关的数据信息,并将数据信息封装到队列消息中发送至应用程序,其中应用程序为作为队列消息的消费者的程序;更新模块203用于:根据数据库中的双向同步规则,使用数据信息对两个数据库进行双向同步,其中数据库中的双向同步规则是预先制定的。
47.可选的,在本技术实施例的一种实施方式中,数据信息包括规则类数据和同步类数据,规则类数据包括双向同步规则,同步类数据包括需要双向同步的目标数据;更新模块203还用于:使用数据信息中的双向同步规则更新数据库中的双向同步规则;进而,更新模块203具体执行以下操作进行双向同步:更新模块203根据数据信息中的双向同步规则,将目标数据对两个数据库进行双向同步。
48.可选的,在本技术实施例的一种实施方式中,数据信息为数据库表,在更新模块203使用数据信息对两个数据库进行双向同步之前,更新模块203还用于执行以下步骤:当应用程序启动时,更新模块203获取数据库中的双向同步规则;当数据库表存在,并且数据库表的唯一键正确时,更新模块203执行对两个数据库进行双向同步的操作。
49.可选的,在本技术实施例的一种实施方式中,处理模块202中用于发送的队列消息为rabbitmq消息,rabbitmq消息的消息类型包括:输入型、更新型和删除型。
50.可选的,在本技术实施例的一种实施方式中,当rabbitmq消息中的数据为输入型或更新型时,更新模块203根据数据库中的双向同步规则,使用数据信息对两个数据库进行双向同步具体执行以下操作:对于两个数据库中的任一个,更新模块203判断数据库中是否存在rabbitmq消息中的数据;若不存在,则更新模块203执行输入操作将在rabbitmq消息中的数据输入数据库中;若存在,则更新模块203执行更新操作将在rabbitmq消息中的数据更新至数据库中。
51.可选的,在本技术实施例的一种实施方式中,当rabbitmq消息中的数据为删除型时,更新模块203根据数据库中的双向同步规则,使用数据信息对两个数据库进行双向同步具体执行以下步骤:对于两个数据库中的任一个,更新模块203判断数据库中是否存在rabbitmq消息中的数据;若存在,则更新模块203执行删除操作将在rabbitmq消息中的数据从数据库中删除。
52.可选的,在本技术实施例的一种实施方式中,更新模块203还用于执行以下操作进行告警:当双向同步完成后,更新模块203获取相应的同步时长;若同步时长大于或等于预设同步阈值,更新模块203通过微信方式发出告警信息。
53.关于上述实施例中的装置,其中各个模块执行操作的具体方式及其有益效果已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
54.图3为本技术实施例中电子设备的一个结构示意图。
55.如图3所示,本技术实施例中电子设备30包括存储器301和处理器302。存储器上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行上述任一实施例中的方法。
56.处理器302可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器 (digital signal processor,dsp)、专用集成电路 (application specific integrated circuit,asic)、现场可编程门阵列 (field-programmable gate array,fpga) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
57.存储器301可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器302或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器301可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器301可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、min sd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
58.存储器301上存储有可执行代码,当可执行代码被处理器302处理时,可以使处理器302执行上文述及的方法中的部分或全部。
59.此外,根据本技术的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本技术的上述方法中部分或全部步骤的计算机程序代码指令。
60.或者,本技术还可以实施为一种计算机可读存储介质(或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当可执行代码(或计算机程序、或计算机指令代码)被电子设备(或电子设备、服务器等)的处理器执行时,使处理器执行根据本技术的上述方法的各个步骤的部分或全部。
61.本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本技术的范围。
62.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术
领域内所公知的任意其它形式的存储介质中。
63.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
64.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
65.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
66.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。
67.以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献