[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN112015815B - 数据同步方法、装置及计算机可读存储介质 - Google Patents

数据同步方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN112015815B
CN112015815B CN202010879371.7A CN202010879371A CN112015815B CN 112015815 B CN112015815 B CN 112015815B CN 202010879371 A CN202010879371 A CN 202010879371A CN 112015815 B CN112015815 B CN 112015815B
Authority
CN
China
Prior art keywords
data
message
synchronized
database
synchronization
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.)
Active
Application number
CN202010879371.7A
Other languages
English (en)
Other versions
CN112015815A (zh
Inventor
庄志辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202010879371.7A priority Critical patent/CN112015815B/zh
Publication of CN112015815A publication Critical patent/CN112015815A/zh
Application granted granted Critical
Publication of CN112015815B publication Critical patent/CN112015815B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种大数据,揭露一种数据同步方法,包括:拦截存储至数据库中的待同步数据中的SQL操作;对拦截到的SQL操作进行解析,获取并封装与SQL操作对应的参数对象及映射关系,以获取与SQL操作对应的封装数据;将封装数据发送至消息平台,通过消息平台对封装数据进行监听,并将监听到的消息发送至订阅消息的数据存储空间;通过数据存储空间接收并处理与监听到消息对应的封装数据,并根据封装数据将待同步数据同步至数据存储空间中。本发明还涉及区块链技术,所述待同步数据存储于区块链中。本发明可以提高数据同步的效率及精度。

Description

数据同步方法、装置及计算机可读存储介质
技术领域
本发明涉及大数据处理,尤其涉及一种数据同步的方法、装置、电子设备及计算机可读存储介质。
背景技术
目前主要涉及两个方面的同步,一是通过后台程序编码实现数据同步,二是直接作用于数据库,在数据库层面实现数据的同步。其中,通过后台程序编码实现数据同步,主要思路为有就更新,无则新增,其他情况通过日志进行记录。在数据库层面实现数据同步进一步分为三种方式:1、通过发布/订阅的方式实现同步,2、通过SQL JOB方式实现数据同步,3、通过Service Broker消息列队的方式实现数据同步。
上述三种方式进一步包括实时同步和异步同步数据两种方式,其中,实时同步对程序压力较大,影响程序执行的效率,在业务存在较强耦合性的情况下,存在写数据失败的风险,导致同步的数据缺失或不可用等问题。另外,采用MQ异步双写的方式实现数据同步也同样会面临业务耦合度高的问题。
目前,在数据同步方面,通过定时任务JOB的方式从数据库表中将数据同步到ElasticSearch或内存中的实现方式,为减少对数据库的压力,仅能在非业务高峰期进行数据同步,仍存在一定的业务耦合度问题。
发明内容
本发明提供一种数据同步方法、装置、电子设备及计算机可读存储介质,其主要目的在于提高了数据同步的效率、精度以及时效性。
为实现上述目的,本发明提供的一种数据同步方法,包括:
拦截存储至数据库中的待同步数据中的SQL操作;
对拦截到的SQL操作进行解析,获取并封装与SQL操作对应的参数对象及映射关系,以获取与所述SQL操作对应的封装数据;
将所述封装数据发送至消息平台,通过所述消息平台对所述封装数据进行监听,并将监听到的消息发送至订阅消息的数据存储空间;
通过所述数据存储空间接收并处理与监听到的消息对应的所述封装数据,并根据所述封装数据将所述待同步数据同步至所述数据存储空间中。
可选地,在将所述待同步数据同步至数据存储空间之后,还包括:
判断所述待同步数据的同步结果;
当所述待同步数据同步成功时,向所述消息平台反馈执行成功通知;否则,当所述待同步数据同步失败时,提示选择性的重新发送之前发送失败的消息。
可选地,所述待同步数据存储于区块链中,拦截存储至服务器中的待同步数据中的SQL操作的过程包括:
通过SQL拦截器拦截所述待同步数据中的SQL操作,并获取所述待同步数据在所述数据库中的version值;将所述Version值与所述参数对象及映射关系封装至所述封装数据内;其中,所述SQL操作的语句信息包括:数据操作类型、数据值以及与所述待同步数据对应的表结构;其中,所述数据操作类型包括数据增加操作、数据删除操作和数据修改操作。。
可选地,根据所述封装数据将所述待同步数据同步至所述数据存储空间中的过程包括:根据所述封装数据中的version值对所述监听到的消息进行排序或丢弃处理。
可选地,当所述待同步数据同步失败时,判断对应的失败的消息的version值是否为所述消息平台的消息队列中的最大值;
如果所述失败的消息的version值为消息队列中的最大值,则将所述失败的消息进行数据库入库处理,并记录所述失败的消息的内容以及version值的对应表;
对入库处理后的所述失败的消息进行逻辑判断。
优选地,如果所述失败的消息的version值比所述数据库中的version值小,则对所述失败的消息进行丢弃处理;否则,提示消息再次发送。
为了解决上述问题,本发明还提供一种数据同步装置,所述装置包括:
操作拦截模块,用于拦截存储至数据库中的待同步数据中的SQL操作;
封装数据获取模块,用于对拦截到的SQL操作进行解析,获取并封装与SQL操作对应的参数对象及映射关系,以获取与所述SQL操作对应的封装数据;
消息发送模块,用于将所述封装数据发送至消息平台,通过所述消息平台对所述封装数据进行监听,并将监听到的消息发送至订阅消息的数据存储空间;
数据同步模块,用于通过所述数据存储空间接收并处理与监听到的消息对应的所述封装数据,并根据所述封装数据将所述待同步数据同步至所述数据存储空间中。
可选地,在将待同步数据同步至数据存储空间之后,还包括:
判断所述待同步数据的同步结果;
当所述待同步数据同步成功时,向所述消息平台反馈执行成功通知;否则,当所述待同步数据同步失败时,提示选择性的重新发送之前发送失败的消息。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述处理器通信连接的存储器;其中,
所述存储器存储有可被所述处理器执行的指令,所述指令被所述处理器执行以实现上述数据同步方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述数据同步方法。
本发明实施例通过消息拦截以及消息平台的分发方式,对发送至数据库中的数据进行拦截获取,并发送至其他的数据存储空间中,通过数据存储空间对数据进行判断消费,能够降低业务的耦合度,同时还能够提高数据同步的时效性,从而实现数据同步的准确性和及时性。
附图说明
图1为本发明一实施例提供的数据同步方法的流程示意图;
图2为本发明一实施例提供的数据同步方法的逻辑图;
图3为本发明一实施例提供的数据同步装置的模块示意图;
图4为本发明一实施例提供的实现数据同步方法的电子设备的内部结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据同步方法。参照图1所示,为本发明一实施例提供的数据同步方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本发明一个实施例中,数据同步方法包括:
S110:拦截存储至数据库中的待同步数据中的SQL操作。
具体地,可通过SQL拦截器拦截待同步数据中的SQL操作,并获取待同步数据在数据库中的version值;将Version值与参数对象及映射关系封装至所述封装数据内,其中,version值用于在数据存储空间中消费消息时或者在重新发送消息时进行消息判断及选择。
需要强调的是,为进一步保证上述待同步数据的私密和安全性,上述同步数据还可以存储于一区块链的节点中
其中,SQL操作的语句信息包括:数据操作类型、数据值以及与待同步数据对应的表结构;其中,所述数据操作类型包括数据增加操作、数据删除操作和数据修改操作。
S120:对拦截到的SQL操作进行解析,获取并封装与SQL操作对应的参数对象及映射关系,以获取与SQL操作对应的封装数据。
其中,在获取封装数据时,封装数据中还包括拦截到的version值,当数据存储空间进行消息消费时,根据version值做消息排序及消息丢弃处理,确保同一目标数据在保持数据最新的情况下,取最大version值对应的消息,即数据库拦截消息保持的最新的一条记录。
S130:将封装数据发送至消息平台,通过消息平台对封装数据进行监听,并将监听到的消息发送至订阅消息的数据存储空间。
其中,当在数据存储空间中消费消息时,根据version值进行消息排序及消息丢弃处理,确保同一个待同步数据取最大version值对应的消息,以使得待同步数据保持最新版本。
当消息消费失败或者待同步数据同步失败时,判断失败的消息的version值是否为消息平台的消息队列中的最大值;如果失败的消息的version值为消息队列中的最大值,则将失败的消息进行数据库入库处理,以记录失败的消息的内容以及version值的对应表;对入库处理后的失败的消息进行逻辑判断,如果失败的消息的version值比数据库中的version值小,则对失败的消息进行丢弃处理;否则,提示消息再次发送。
具体地,当数据存储空间消息消费失败时,判断该消息的version值是否为消息队列中的最大值,如果是则将失败的消息进行数据库入库处理,记录消息失败的内容以及version对应表等。然后,对失败消息进行逻辑判断,如果失败消息的version比数据库表中的version小,那么丢弃不管。如果失败消息的version大于或者等于当前数据库对应表最大的version值,那么需要关注手动再次发消息。其中,保持数据存储空间和数据库的数据是最新的一致的,这里的手动发消息可以通过定时任务去执行。
此外,与数据库实现数据同的数据存储空间可以为其他数据库或者ElasticSearch(简称ES)等。
S140:通过数据存储空间接收并处理与监听到的消息对应的封装数据,并根据封装数据将待同步数据同步至数据存储空间中。
在上述将待同步数据同步至数据存储空间之后,还包括:判断消息平台发送的消息的消费状态,即待同步数据的同步结果;当待同步数据的同步结果成功或消息消费成功时,向消息平台反馈执行成功通知;否则,当待同步数据同步失败或消息消费失败时,则提示选择性的重新发送之前发送失败的消息。
作为具体示例,以下将以保单数据同步至数据库和ES为例对本发明的数据同步方法进行详细阐述。
当业务生成保单数据后,保单数据属于基础数据源,其主要存储的是相关的保单号、保单信息、被保险人、保险公司等基本信息。将上述这些数据存储至ES中,能够方便数据统计分析时,从而在ES上快速、高效的获得相应的信息,从而脱离对数据库的强依赖性。
图2示出了根据本发明实施例的保单数据同步方法的具体逻辑。
如图2所示,本发明的保单数据同步方法包括以下步骤:
第一步:通过Mybatis拦截器拦截存储至数据库中的保单数据中的SQL操作(或SQL语句)。
其中,在对保单数据进行持久化的时候,会涉及到相关的增删改的SQL语句,这些增删改的SQL语句可以通过Mybatis拦截器进行拦截,分别对应INSERT,DELETE,UPDATE的数据库操作类型。针对同一份数据,在数据库里面唯一标识的保单code只有一条记录。换言之,不管该份保单的数据修改多少次都会只保存一条记录在数据库中。
对应地,在存储该保单数据的数据库对应的表中,设定一个version字段来记录当前数据的版本号,每次更新数据库的时候同步更新version字段,从而在执行完每次数据库操作后,均可以保证数据库中的version字段是当前的最新版本。
步骤二:对拦截到的SQL语句进行处理,获取与该语句对应的操作类型、数据值和表结构。
其中,SQL语句里面的信息包括:数据操作类型(INSERT,UPDATE,DELETE)、数据值,以及与数据对应的表结构;数据操作类型主要指数据的增、删、改的操作,数据值指的是数据结构对应的值大小,例如,新增一条保单数据,那么该业务操作的数据操作类型就是INSERT,数据对应的表结构指:保单的若干字段名、保单号、被保险人、保额等,该表结构和目标数据同步存储的数据库是保持一致的,也就是一对一的数据字段映射关系。
在创建新数据时,首先判断该表结构是否已经存在,如果没有,则默认创建一套和数据库相一致的表结构并新增数据。数据值主要指的是这些表结构对应的值大小:例如,保单号:202001140000000;被保险人:庄XX;保额:1000;Version:10。
步骤三:将所述操作类型、数据值和表结构封装后发送至消息平台,通过消息平台进行监听,并将监听到的封装数据发送至订阅消息的ES;
其中,在SQL拦截器中可以获取与SQL预计对应的version字段以及基础数据这些信息,然后把这些消息封装成一个消息体,将消息体发送到消息平台指定的topic的队列中,消费者循环监听对应topic的队列里面的消息,这样就能拿到对应的消息体,进行后续的操作。
步骤四:ES对消息平台发送的消息进行消费并反馈消费状况。
此外,本发明的数据同步方法,在执行步骤一的同时,Mybatis拦截器所拦截的是将要存储至数据库的保单数据,该保单数据记录在数据库中时,会同步SQL的修改,并通过对应的version字段记录当前数据的版本号,每次更新数据库时均会同步更新version字段,从而确保在每次数据库操作完相关操作后,数据库中的version字段是最新的。
在本发明的一个具体实施方式中,通过Mybatis拦截器拦截保单数据中的SQL语句后,即可获取对应的version字段及相关的基础数据,但是将其发送至消息平台时,会存在一个并发、乱序以及消息被消费的先后顺序的问题。
为此,ES会根据version值进行消息排序或者消息丢弃的处理,同一个唯一的数据在保持数据最新的情况下,version取最大的那个值的消息,就是数据库拦截消息保持的最新的一条记录。换言之,当需要消费的当前版本的数据的version的值小于已经消费的版本数据的version值时,可以对该较小version值的版本数据进行舍弃,否则进行正常消费,从而保证消息排序version值最大的版本进行最后消费。
在本发明的另一个具体实施方式中,如果遇到消息消费失败的情况,同时该消息的version是消息队列中的最大值时,针对此类消费失败的消息,需要进行数据库入库处理,记录消息失败的内容以及version对应表至数据库的失败表中。进而,手动发送消息的逻辑判断,如果失败消息的version比数据库表中的最新版本的version值小,那么该失败的消息可丢弃不管。如果失败消息的version值大于或者等于当前数据库对应表最大的version值,那么需要手动再次发送该消息,最终保持ES和数据库的数据均是最新的且一致的。
需要说明的是,此处的手动发消息操作,也可通过定时任务去执行。
本发明上述数据同步方法,通过消息拦截以及消息平台的分发方式,对发送至数据库中的数据进行拦截获取,并发送至其他的数据存储空间中,通过数据存储空间对数据进行判断消费,能够降低业务的耦合度,同时还能够提高数据同步的时效性,从而实现数据同步的准确性和及时性。
如图3所示,是本发明数据同步装置的功能模块图。
本发明所述数据同步装置100可以安装于电子设备中。根据实现的功能,所述数据同步装置可以包括操作拦截模块101、封装数据获取模块102、消息发送模块103、数据同步模块104。本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
操作拦截模块101,用于拦截存储至数据库中的待同步数据中的SQL操作;
封装数据获取模块102,用于对拦截到的SQL操作进行解析,获取并封装与SQL操作对应的参数对象及映射关系,以获取与所述SQL操作对应的封装数据;
消息发送模块103,用于将封装数据发送至消息平台,通过所述消息平台对所述封装数据进行监听,并将监听到的消息发送至订阅消息的数据存储空间;
数据同步模块104,用于通过所述数据存储空间接收并处理与监听到的消息对应的所述封装数据,并根据所述封装数据将所述待同步数据同步至数据存储空间中。
可选地,在将所述待同步数据同步至数据存储空间之后,还包括:
判断所述待同步数据的同步结果;
当所述待同步数据同步成功时,向所述消息平台反馈执行成功通知;否则,当所述待同步数据同步失败时,提示选择性的重新发送之前发送失败的消息。
可选地,拦截存储至服务器中的待同步数据中的SQL操作的过程包括:
通过SQL拦截器拦截所述待同步数据中的SQL操作,并获取所述待同步数据在所述数据库中的version值;将所述Version值与所述参数对象及映射关系封装至所述封装数据内;其中,所述SQL操作的语句信息包括:数据操作类型、数据值以及与所述待同步数据对应的表结构;其中,所述数据操作类型包括数据增加操作、数据删除操作和数据修改操作。需要强调的是,为进一步保证上述待同步数据的私密和安全性,上述待同步数据还可以存储于一区块链的节点中。
可选地,根据所述封装数据将所述待同步数据同步至所述数据存储空间中的过程包括:根据所述封装数据中的version值对所述监听到的消息进行排序或丢弃处理。
可选地,当所述待同步数据同步失败时,判断对应的失败的消息的version值是否为所述消息平台的消息队列中的最大值;
如果所述失败的消息的version值为消息队列中的最大值,则将所述失败的消息进行数据库入库处理,并记录所述失败的消息的内容以及version值的对应表;
对入库处理后的所述失败的消息进行逻辑判断。
优选地,如果所述失败的消息的version值比所述数据库中的version值小,则对所述失败的消息进行丢弃处理;否则,提示消息再次发送。
如图4所示,是本发明实现数据同步方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如数据同步程序12。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如数据同步程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如数据同步程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图4仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的数据同步程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
拦截存储至数据库中的待同步数据中的SQL操作;
对拦截到的SQL操作进行解析,获取并封装对应的参数对象及映射关系,以获取与所述SQL操作对应的封装数据;
将所述封装数据发送至消息平台,所述消息平台对所述封装数据进行监听,并将监听到的消息发送至订阅消息的数据存储空间;
通过所述数据存储空间接收并处理所述封装数据,并根据所述封装数据对所述待同步数据进行数据同步操作。
具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。需要强调的是,为进一步保证上述待同步数据的私密和安全性,上述待同步数据还可以存储于一区块链的节点中。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (6)

1.一种数据同步方法,其特征在于,所述方法包括:
拦截存储至数据库中的待同步数据中的SQL操作;
对拦截到的SQL操作进行解析,获取并封装与所述SQL操作对应的参数对象及映射关系,以获取与所述SQL操作对应的封装数据;
将所述封装数据发送至消息平台,通过所述消息平台对所述封装数据进行监听,并将监听到的消息发送至订阅消息的数据存储空间;
通过所述数据存储空间接收并处理与监听到的消息对应的封装数据,并根据所述封装数据将所述待同步数据同步至所述数据存储空间中;
所述待同步数据存储于区块链中,所述拦截存储至数据库中的待同步数据中的SQL操作的过程包括:
通过SQL拦截器拦截所述待同步数据中的SQL操作,并获取所述待同步数据在所述数据库中的version值;
将所述version值与所述参数对象及映射关系封装至所述封装数据内;其中,所述SQL操作的语句信息包括:数据操作类型、数据值以及与所述待同步数据对应的表结构;其中,所述数据操作类型包括数据增加操作、数据删除操作和数据修改操作;
根据所述封装数据将所述待同步数据同步至所述数据存储空间中的过程包括:根据所述封装数据中的version值对所述监听到的消息进行排序或丢弃处理;
当所述待同步数据同步失败时,判断对应的失败的消息的version值是否为所述消息平台的消息队列中的最大值;
如果所述失败的消息的version值为消息队列中的最大值,则将所述失败的消息进行数据库入库处理,并记录所述失败的消息的内容以及version值的对应表;
对入库处理后的所述失败的消息进行逻辑判断;
所述逻辑判断的过程包括:
如果所述失败的消息的version值比所述数据库中的version值小,则对所述失败的消息进行丢弃处理;
否则,提示消息再次发送。
2.如权利要求1所述的数据同步方法,其特征在于,在将所述待同步数据同步至数据存储空间之后,还包括:
判断所述待同步数据的同步结果;
当所述待同步数据同步成功时,向所述消息平台反馈执行成功通知;否则,当所述待同步数据同步失败时,提示选择性的重新发送之前发送失败的消息。
3.一种数据同步装置,其特征在于,所述装置包括:
操作拦截模块,用于拦截存储至数据库中的待同步数据中的SQL操作;
封装数据获取模块,用于对拦截到的SQL操作进行解析,获取并封装与所述SQL操作对应的参数对象及映射关系,以获取与所述SQL操作对应的封装数据;
消息发送模块,用于将所述封装数据发送至消息平台,通过所述消息平台对所述封装数据进行监听,并将监听到的消息发送至订阅消息的数据存储空间;
数据同步模块,用于通过所述数据存储空间接收并处理与监听到的消息对应的所述封装数据,并根据所述封装数据将所述待同步数据同步至所述数据存储空间中;
所述待同步数据存储于区块链中,所述拦截存储至数据库中的待同步数据中的SQL操作的过程包括:
通过SQL拦截器拦截所述待同步数据中的SQL操作,并获取所述待同步数据在所述数据库中的version值;
将所述version值与所述参数对象及映射关系封装至所述封装数据内;其中,所述SQL操作的语句信息包括:数据操作类型、数据值以及与所述待同步数据对应的表结构;其中,所述数据操作类型包括数据增加操作、数据删除操作和数据修改操作;
根据所述封装数据将所述待同步数据同步至所述数据存储空间中的过程包括:根据所述封装数据中的version值对所述监听到的消息进行排序或丢弃处理;
当所述待同步数据同步失败时,判断对应的失败的消息的version值是否为所述消息平台的消息队列中的最大值;
如果所述失败的消息的version值为消息队列中的最大值,则将所述失败的消息进行数据库入库处理,并记录所述失败的消息的内容以及version值的对应表;
对入库处理后的所述失败的消息进行逻辑判断;
所述逻辑判断的过程包括:
如果所述失败的消息的version值比所述数据库中的version值小,则对所述失败的消息进行丢弃处理;
否则,提示消息再次发送。
4.如权利要求3所述的数据同步装置,其特征在于,在将待同步数据同步至数据存储空间之后,还包括:
判断所述待同步数据的同步结果;
当所述待同步数据同步成功时,向所述消息平台反馈执行成功通知;否则,当所述待同步数据同步失败时,提示选择性的重新发送之前发送失败的消息。
5.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述处理器通信连接的存储器;其中,
所述存储器存储有可被所述处理器执行的指令,所述指令被所述处理器执行以实现如权利要求1或2所述的数据同步方法。
6.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1或2所述的数据同步方法。
CN202010879371.7A 2020-08-27 2020-08-27 数据同步方法、装置及计算机可读存储介质 Active CN112015815B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010879371.7A CN112015815B (zh) 2020-08-27 2020-08-27 数据同步方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010879371.7A CN112015815B (zh) 2020-08-27 2020-08-27 数据同步方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112015815A CN112015815A (zh) 2020-12-01
CN112015815B true CN112015815B (zh) 2024-02-02

Family

ID=73503777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010879371.7A Active CN112015815B (zh) 2020-08-27 2020-08-27 数据同步方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112015815B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685499B (zh) * 2020-12-30 2024-06-18 珠海格力电器股份有限公司 一种工作业务流的流程数据同步方法、装置及设备
CN112988897A (zh) * 2021-03-30 2021-06-18 工银科技有限公司 系统升级场景下的数据双向同步方法及装置
CN113157701A (zh) * 2021-04-27 2021-07-23 中国工商银行股份有限公司 一种oracle数据库的双活机制部署方法及装置
CN113392161A (zh) * 2021-07-08 2021-09-14 苏州海管家物流科技有限公司 数据双向实时同步系统
CN113946628A (zh) * 2021-10-27 2022-01-18 中国建设银行股份有限公司 一种基于拦截器的数据同步方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595812A (zh) * 2013-11-21 2014-02-19 北京京东尚科信息技术有限公司 一种发送Web服务消息的方法及装置
CN108833199A (zh) * 2018-04-26 2018-11-16 广州视源电子科技股份有限公司 数据上报的方法、装置、设备及存储介质
CN108985757A (zh) * 2017-11-27 2018-12-11 北京京东金融科技控股有限公司 信息处理方法、装置及系统、存储介质、电子设备
CN109446273A (zh) * 2018-12-04 2019-03-08 深圳前海环融联易信息科技服务有限公司 区块链的数据同步方法、装置、计算机设备及存储介质
CN110232097A (zh) * 2019-06-21 2019-09-13 北京奇艺世纪科技有限公司 一种数据同步方法及装置
CN110898434A (zh) * 2019-11-06 2020-03-24 上饶市中科院云计算中心大数据研究院 处理数据的方法、服务器、系统和计算机可读程序介质
CN111400130A (zh) * 2020-03-06 2020-07-10 平安科技(深圳)有限公司 任务监控方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019863B2 (en) * 2008-03-28 2011-09-13 Ianywhere Solutions, Inc. Synchronizing events between mobile devices and servers

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595812A (zh) * 2013-11-21 2014-02-19 北京京东尚科信息技术有限公司 一种发送Web服务消息的方法及装置
CN108985757A (zh) * 2017-11-27 2018-12-11 北京京东金融科技控股有限公司 信息处理方法、装置及系统、存储介质、电子设备
CN108833199A (zh) * 2018-04-26 2018-11-16 广州视源电子科技股份有限公司 数据上报的方法、装置、设备及存储介质
CN109446273A (zh) * 2018-12-04 2019-03-08 深圳前海环融联易信息科技服务有限公司 区块链的数据同步方法、装置、计算机设备及存储介质
CN110232097A (zh) * 2019-06-21 2019-09-13 北京奇艺世纪科技有限公司 一种数据同步方法及装置
CN110898434A (zh) * 2019-11-06 2020-03-24 上饶市中科院云计算中心大数据研究院 处理数据的方法、服务器、系统和计算机可读程序介质
CN111400130A (zh) * 2020-03-06 2020-07-10 平安科技(深圳)有限公司 任务监控方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"分布式系统中数据同步机制的研究与实现";崔伟等;<计算机工程与设计>;全文 *

Also Published As

Publication number Publication date
CN112015815A (zh) 2020-12-01

Similar Documents

Publication Publication Date Title
CN112015815B (zh) 数据同步方法、装置及计算机可读存储介质
CN112653760B (zh) 跨服务器的文件传输方法、装置、电子设备及存储介质
CN112084486A (zh) 用户信息验证方法、装置、电子设备及存储介质
CN112446022A (zh) 数据权限控制方法、装置、电子设备及存储介质
CN112506559A (zh) 基于网关的灰度发布方法、装置、电子设备及存储介质
CN111538573A (zh) 异步任务处理方法、装置及计算机可读存储介质
CN112256783A (zh) 数据导出方法、装置、电子设备及存储介质
CN112540839B (zh) 信息变更方法、装置、电子设备及存储介质
CN113542387B (zh) 系统发布方法、装置、电子设备及存储介质
CN114205322A (zh) 消息发送方法、装置、电子设备及存储介质
CN115145870A (zh) 失败任务原因定位方法、装置、电子设备及存储介质
CN114201466B (zh) 防缓存击穿方法、装置、设备及可读存储介质
CN111652681A (zh) 一种单据处理方法、服务器及计算机可读存储介质
CN117873508A (zh) 软件成分数据库增量数据处理的方法、装置、设备及介质
CN113347245B (zh) 一种基于消息队列的文件分片断点传输方法及装置
CN112637280B (zh) 数据传输方法、装置、电子设备及存储介质
CN114547011A (zh) 数据抽取方法、装置、电子设备及存储介质
CN115174555A (zh) 文件传输方法、装置、电子设备及存储介质
CN114820132A (zh) 订单派发方法、装置、电子设备及存储介质
CN113568904B (zh) 作品送审方法、装置、电子设备及可读存储介质
CN115174691B (zh) 基于页面请求的大数据加载方法、装置、设备及介质
CN112199718A (zh) 数据流转的监控方法、装置、电子设备及存储介质
CN113032168B (zh) 数据传输速率动态调整方法、装置、电子设备及存储介质
CN115225458A (zh) 告警通知方法、装置、电子设备及存储介质
CN117851506A (zh) 基于git的跨库同步方法、装置、电子设备及存储介质

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
GR01 Patent grant
GR01 Patent grant