CN114443773A - 一种分布式系统数据同步方法、装置、设备和存储介质 - Google Patents
一种分布式系统数据同步方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114443773A CN114443773A CN202210113501.5A CN202210113501A CN114443773A CN 114443773 A CN114443773 A CN 114443773A CN 202210113501 A CN202210113501 A CN 202210113501A CN 114443773 A CN114443773 A CN 114443773A
- Authority
- CN
- China
- Prior art keywords
- transaction
- processing
- database
- database table
- state
- 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 48
- 238000012545 processing Methods 0.000 claims abstract description 227
- 230000000694 effects Effects 0.000 claims abstract description 17
- 238000012216 screening Methods 0.000 claims abstract description 16
- 230000004048 modification Effects 0.000 claims description 27
- 238000012986 modification Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 16
- 239000000126 substance Substances 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式系统数据同步方法、装置、设备和存储介质。包括:获取交易请求,交易请求中包含交易作用的数据库表、操作类型、筛选条件和执行参数;查询交易作用的数据库表当前的处理状态,处理状态包括已处理或未处理;基于处理状态根据交易请求对数据库表进行处理,获取数据库处理结果;将数据库处理结果返回给第一交易处理,在确定第一交易处理成功后调用第二交易,以使开放系统与主机系统保持数据同步。根据数据库表的不同状态分别进行处理,将数据库处理结果返回给开放系统的第一交易处理并调用主机系统中具备相同功能的第二交易,即使在单边数据情况下,通过重复提交实现两边数据的一致,兼顾了分布式系统整体一致性和可用性要求。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种分布式系统数据同步方法、装置、设备和存储介质。
背景技术
在分布式系统中主机和开放系统通过计算机网络实现信息传递与交互。当开放和主机数据库均有存储同一数据的情况,数据的更新和维护,通过开放交易协同调用主机交易实现,可能出现网络故障等原因导致协同主机交易处理失败,出现开放和主机数据不一致的问题。
针对开放和主机数据不一致的问题虽然提出了通过第三方服务器作为协调者进行协同,但如果出现网络故障或主机异常,协调者将该笔交易涉及的开放和主机参与者的所有事务回滚,该笔交易无法正常开展,服务中断,系统的可靠性和容错率不足。并且协调者要等待所有的参与者进行表态后才能执行提交或回滚操作,可能会造成长时间资源锁定,容易产生性能瓶颈,使系统可用性降低。因此目前通过加入第三方服务器的方式并不能有效实现开放系统和主机系统的数据同步问题。
发明内容
本发明提供了一种分布式系统数据同步方法,以解决分布式系统和主机系统数据不一致的情况。
根据本发明的一方面,提供了一种分布式系统数据同步方法,包括:获取交易请求,所述交易请求中包含交易作用的数据库表、操作类型、筛选条件和执行参数;
查询所述交易作用的数据库表当前的处理状态,所述处理状态包括已处理或未处理;
基于所述处理状态根据所述交易请求对所述数据库表进行处理,获取数据库处理结果;
将所述数据库处理结果返回给第一交易处理,在确定所述第一交易处理成功后调用第二交易,以使开放系统与主机系统保持数据同步,其中,所述第一交易属于所述开放系统,所述第二交易属于所述主机系统,并且所述第一交易与所述第二交易具备相同的功能。
根据本发明的另一方面,提供了一种分布式系统数据同步装置,包括:交易请求获取模块,用于获取交易请求,其中,所述交易请求中包含交易作用的数据库表、操作类型、筛选条件和执行参数;
处理状态查询模块,用于查询所述交易作用的数据库表当前的处理状态,其中,所述处理状态包括已处理或未处理;
数据库处理结果获取模块,用于基于所述处理状态根据所述交易请求对所述数据库表进行处理,获取数据库处理结果;
数据同步模块,用于将所述数据库处理结果返回给第一交易处理,在确定所述第一交易处理成功后调用第二交易,以使开放系统与主机系统保持数据同步,其中,所述第一交易属于所述开放系统,所述第二交易属于所述主机系统,并且所述第一交易与所述第二交易具备相同的功能。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的分布式系统数据同步装置。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的分布式系统数据同步装置。
本发明实施例的技术方案,通过查询交易作用的数据库表的当前处理状态为已处理或未处理的不同状态,对数据库表进行处理,并将数据库处理结果返回给开放系统的第一交易处理,处理成功的情况下调用主机系统中具备相同功能的第二交易,从而可以实现交易的无限次重复提交,即使在单边数据情况下,通过重复提交实现两边数据的一致,兼顾了分布式系统整体的一致性和可用性要求。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是根据本发明实施例一提供的一种分布式系统数据同步方法的流程图;
图1B是根据本发明实施例二提供的一种分布式系统数据同步方法的应用场景示意图;
图2是是根据本发明实施例一提供的一种分布式系统数据同步方法的流程图;
图3是根据本发明实施例三提供的一种分布式系统数据同步装置的结构示意图;
图4是实现本发明实施例分布式系统数据同步方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1A为本发明实施例一提供的一种分布式系统数据同步方法的流程图,本实施例可适用于开放系统和主机系统数据同步的情况,该方法可以由本发明实施例的分布式系统数据同步装置来执行,该装置可以采用硬件和/或软件的形式实现。如图1A所示,该方法包括:
步骤S110、获取交易请求,交易请求中包含交易作用的数据库表、操作类型、筛选条件和执行参数。
可选的,获取交易请求,包括:在预设时间内未接收到主机系统的协同处理响应时,生成联机补偿指示;将联机补偿指示在前端交易界面进行展示;获取用户基于联机补偿指示所发送的交易请求。
具体的说,如图1B所示为本实施方式的应用场景示意图,开放系统和主机系统通过网络相互连接传递消息与通信,并构成一个分布式系统,在分布式系统中通过相互协同,共同提供服务,在物理结构上分散,在逻辑上统一,在分布式系统中一组独立的设备展现给用户的是一个统一的整体。
另外,本实施方式中的交易请求可以是首次提交的也可以是重复提交的,而针对重复提交的具体适用情况是开放系统已经根据历史交易请求获取数据库处理结果,并发送给主机系统,但由于网络延迟、主机交易未启用等原因,造成在预设时间内未接收到主机系统的协同处理响应,此时则会生成联机补偿指示并在开放系统的前端交易界面进行展示,例如,联机补偿指示为“交易异常,请重新提交”,以对操作人员进行提示,操作人员可以在原交易界面完全不做修改或修改原始交易请求中的非主键信息,重新提交交易请求,开放系统则会获取用户基于联机补偿指示所发送的交易请求,从而实现交易幂等处理。并且基于数据库级的判断机制实现应用级的联机补偿,判断逻辑不依赖交易日志或结果标识,在断电、网络故障、系统故障等交易中断的突发情况下,交易判断和补偿的准确性高。
其中,本实施方式中具体可以是开放系统接收从客户端或关联系统所发起的交易请求,在开放系统中执行交易TR1,在交易TR1处理完成后通过开放调用主机系统的同步交易,实现主机系统执行交易TR2,TR1和TR2交易实现相同的功能,TR1产生的数据R1存放到开放系统数据库中,TR2产生的数据R2存放到主机系统数据库中,数据R1被开放应用消费,存在查询及修改数据需求,数据R2被主机应用消费,仅支持查询需求,并且数据R1和数据R2需保持一致。
需要说明的是,开放系统所接收到交易请求中包含交易作用的数据库表、操作类型、筛选条件和执行参数,其中,操作类型具体包括插入insert操作、更新update操作、删除delete操作或选择select操作,并且本实施方式中所包含的数据库表可以为多个,并且针对每一个数据库都有对应的操作类型、筛选条件和执行参数,本实施方式中并不限定数据库表的具体数量。
步骤S120、查询交易作用的数据库表当前的处理状态,处理状态包括已处理或未处理。
可选的,查询交易作用的数据库表当前的处理状态,可以包括:从开放系统数据库中查询数据库表的修改记录;根据操作类型对修改记录进行校验,获取数据库表当前的处理状态。
其中,针对交易作用的每张数据库表,开放系统会查询该数据库表的处理状态,具体是根据数据表的表名从开放系统中查询该数据库的修改记录,根据操作类型对修改记录进行校验,获取数据库表当前的处理状态,具体为:当操作类型为插入insert操作时,判断针对数据库表的修改记录的查询结果是否为空,若是,则确定处理状态为未处理,否则为已处理;当操作类型为更新update操作时,判断针对数据库表的修改记录的查询结果是否和执行参数相同,若是,则确定处理状态为已处理,否则为未处理;当操作类型为删除delete操作时,判断针对数据库表的修改记录的查询结果是否为空,若是,则确定处理状态为已处理,否则为未处理;当操作类型为选择select操作时,则直接确定数据库表当前的处理状态为未处理。因此本实施方式中的开放系统针对交易作用的每个数据库表,将请求数据与表记录进行对比,确定数据库表当前的处理状态,根据当前的处理状态可以确定本次的交易请求是首次提交还是重复提交,从而针对不同的提交情况,开放系统和主机系统会做相应的补偿处理,从而实现交易的幂等。
需要说明的是,幂等操作的特点是其任何多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。本实施方式中对于同一请求数据,可以实现开放协同主机交易的无限次重复提交,即使在单边数据情况下,通过重复提交实现两边数据的一致,兼顾了分布式系统整体的一致性和可用性要求。
步骤S130、基于处理状态根据交易请求对数据库表进行处理,获取数据库处理结果。
可选的,基于处理状态根据交易请求对数据库表进行处理,获取数据库处理结果,包括:当处理状态为未处理时,则根据操作类型、筛选条件和执行参数对数据库进行插入insert操作、更新update操作、删除delete操作或选择select操作,获取数据库处理结果;将数据库处理结果保存到开放系统数据库。
可选的,基于处理状态根据交易请求对数据库表进行处理,获取数据库处理结果,包括:当处理状态为已处理,并且操作类型为插入insert操作时,判断执行参数与数据库表的修改记录是否一致,若否,则按照执行参数对数据库表进行更新,否则直接跳过并将数据库表当前数据作为数据库处理结果;当处理状态为已处理,并且操作类型为更新update操作时,判断执行参数与数据库表的修改记录是否一致,若否,则按照执行参数对数据库表进行更新,否则直接跳过并将数据库表当前数据作为数据库处理结果;当处理状态为已处理,并且操作类型为删除delete操作或选择select操作时,直接跳过并将数据库表当前数据作为数据库处理结果。
具体的说,本实施方式中在获取到数据库表当前的处理状态之后,由于处理状态会包括未处理和已处理两种状态,因此会基于不同的处理状态根据交易请求对数据库表进行对应的处理。在确定处理状态为未处理时,说明开放系统是首次接收到针对数据库表的交易请求,此时则会根据操作类型、筛选条件和执行参数按照交易规则对数据库表正常进行操作。例如,当确定操作类型为更新update操作,数据库表为table1,筛选条件为row1,colmn2,执行参数为1,即表示在数据库表table1中,对第一行和第二列所确定的数据更新为1,并根据更新结果获取数据库处理结果,并将数据库处理结果保存到开放系统数据库中。当然,本实施方式中仅是举例说明,对于其它操作类型的参数与此大致方式大致相同,因此本实施方式中不再进行赘述。并且针对处理状态为未处理,记录操作结果为成功或失败。
另外,在确定处理状态为已处理时,说明开放系统是重复而非首次接收到针对数据库表的交易请求,此时则会根据不同的操作类型执行不同的动作,例如,针对插入insert操作和更新update操作两种操作类型,会首先判断执行参数,具体可以是非主键与数据库表的修改记录是否一致,如果不一致,说明操作人员通过在原交易界面修改了请求数据中的非主键信息,则按照非主键对数据库表进行更新;如果一致,说明操作人员在原交易界面完全不做修改,因此直接跳而不做处理,并直接将数据库表的修改记录作为数据库处理结果。并且针对处理状态为已处理,记录操作结果为成功或失败,而对于跳过不处理的流程,结果记为成功。
需要说明的是,部分操作采取跳过不处理机制,实现了对开放和主机数据维护操作的最小化,减少了系统对数据库操作的开销,降低了频繁修改数据库导致的死锁和性能风险。并且在基于处理状态根据交易请求对数据库表进行处理之后,会将数据库表的表名、操作类型、筛选条件以及操作结果,统一记入结果数据组,以供交易后续处理使用。
步骤S140、将数据库处理结果返回给第一交易处理,在确定第一交易处理成功后调用第二交易,以使开放系统与主机系统保持数据同步。
其中,第一交易属于开放系统,第二交易属于主机系统,并且第一交易与第二交易具备相同的功能以及相同的入参。本实施方式中的开放系统将数据库处理结果返回给第一交易处理,例如TR1,第一交易TR1根据返回的数据库处理结果完成交易后续逻辑及交易状态的处理,如果开放交易处理成功,则会调用主机系统的第二交易,例如,TR2,第二交易TR2进行逻辑处理,与主机数据库进行交互,主机系统将主机数据库处理结果返回给第二交易TR2,第二交易TR2根据返回的主机数据库处理完成交易后续逻辑及交易状态的处理,由于第一交易和第二交易具备相同的功能和入参,从而保证开放系统与主机系统的数据同步。
需要说明的是,本实施方式还可以是通过主机系统获取交易请求,并将数据库处理结果同步到与主机系统所关联的开放系统,而关于主机系统获取针对TR2数据库处理结果的方式与开放系统获取TR1的数据库处理结果的原理大致相同,因此本实施方式中不再进行赘述。
本申请实施方式,通过查询交易作用的数据库表的当前处理状态为已处理或未处理的不同状态,对数据库表进行处理,并将数据库处理结果返回给开放系统的第一交易处理,处理成功的情况下调用主机系统中具备相同功能的第二交易,从而可以实现交易的无限次重复提交,即使在单边数据情况下,通过重复提交实现两边数据的一致,兼顾了分布式系统整体的一致性和可用性要求。
实施例二
图2是本发明实施例二提供的一种分布式系统数据同步方法的流程图,本实施例以上述实施例为基础,在将数据库处理结果返回给第一交易处理,在确定第一交易处理成功后调用第二交易,以使开放系统与主机系统保持数据同步之后,还包括:接收主机系统的协同响应;根据协同响应生成交易完成指示。如图2所示,该方法包括:
步骤S210、获取交易请求,交易请求中包含交易作用的数据库表、操作类型、筛选条件和执行参数。
可选的,获取交易请求,包括:在预设时间内未接收到主机系统的协同处理响应时,生成联机补偿指示;将联机补偿指示在前端交易界面进行展示;获取用户基于联机补偿指示所发送的交易请求。
步骤S220、查询交易作用的数据库表当前的处理状态,处理状态包括已处理或未处理。
可选的,查询交易作用的数据库表当前的处理状态,可以包括:从开放系统数据库中查询数据库表的修改记录;根据操作类型对修改记录进行校验,获取数据库表当前的处理状态。
步骤S230、基于处理状态根据交易请求对数据库表进行处理,获取数据库处理结果。
可选的,基于处理状态根据交易请求对数据库表进行处理,获取数据库处理结果,包括:当处理状态为未处理时,则根据操作类型、筛选条件和执行参数对数据库进行插入insert操作、更新update操作、删除delete操作或选择select操作,获取数据库处理结果;将数据库处理结果保存到开放系统数据库。
可选的,基于处理状态根据交易请求对数据库表进行处理,获取数据库处理结果,包括:当处理状态为已处理,并且操作类型为插入insert操作时,判断执行参数与数据库表的修改记录是否一致,若否,则按照执行参数对数据库表进行更新,否则直接跳过并将数据库表当前数据作为数据库处理结果;当处理状态为已处理,并且操作类型为更新update操作时,判断执行参数与数据库表的修改记录是否一致,若否,则按照执行参数对数据库表进行更新,否则直接跳过并将数据库表当前数据作为数据库处理结果;当处理状态为已处理,并且操作类型为删除delete操作或选择select操作时,直接跳过并将数据库表当前数据作为数据库处理结果。
步骤S240、将数据库处理结果返回给第一交易处理,在确定第一交易处理成功后调用第二交易,以使开放系统与主机系统保持数据同步。
其中,第一交易属于开放系统,第二交易属于主机系统,并且第一交易与第二交易具备相同的功能以及相同的入参。
步骤S250,接收主机系统的协同响应,根据协同响应生成交易完成指示。
具体的说,本实施方式中的开放系统将数据库处理结果返回给第一交易处理,在确定第一交易处理成功后调用第二交易之后,主机系统在TR2交易处理完成之后,如果处理成功会向开放系统发送协同响应,而开放系统则会根据协同响应生成交易完成指示。从而便于用户及时了主机系统的数据同步情况,以便于根据响应结果执行响应的检测,以进一步保证分布式系统内数据同步的安全性。
本申请实施方式,通过查询交易作用的数据库表的当前处理状态为已处理或未处理的不同状态,对数据库表进行处理,并将数据库处理结果返回给开放系统的第一交易处理,处理成功的情况下调用主机系统中具备相同功能的第二交易,从而可以实现交易的无限次重复提交,即使在单边数据情况下,通过重复提交实现两边数据的一致,兼顾了分布式系统整体的一致性和可用性要求。通过接收主机系统的协同响应,根据协同响应生成交易完成指示,从而便于用户及时了主机系统的数据同步情况,以便于根据响应结果执行响应的检测,以进一步保证分布式系统内数据同步的安全性。
实施例三
图3为本发明实施例三提供的一种分布式系统数据同步装置的结构示意图。如图3所示,该装置包括:交易请求获取模块310、处理状态查询模块320、数据库处理结果获取模块330和数据同步模块340。
交易请求获取模块310,用于获取交易请求,其中,交易请求中包含交易作用的数据库表、操作类型、筛选条件和执行参数;
处理状态查询模块320,用于查询交易作用的数据库表当前的处理状态,其中,处理状态包括已处理或未处理;
数据库处理结果获取模块330,用于基于处理状态根据交易请求对数据库表进行处理,获取数据库处理结果;
数据同步模块340,用于将所述数据库处理结果返回给第一交易处理,在确定所述第一交易处理成功后调用第二交易,以使开放系统与主机系统保持数据同步,其中,所述第一交易属于所述开放系统,所述第二交易属于所述主机系统,并且所述第一交易与所述第二交易具备相同的功能。
可选的,交易请求获取模块,具体用于在预设时间内未接收到主机系统的协同处理响应时,生成联机补偿指示;
将联机补偿指示在前端交易界面进行展示;
获取用户基于联机补偿指示所发送的交易请求。
可选的,处理状态查询模块,包括:
修改记录查询子模块,用于从开放系统数据库中查询数据库表的修改记录;
处理状态查询子模块,用于根据操作类型对修改记录进行校验,获取数据库表当前的处理状态。
可选的,操作类型包括插入insert操作、更新update操作、删除delete操作或选择select操作;
可选的,处理状态查询子模块,用于当操作类型为插入insert操作时,判断针对数据库表的修改记录的查询结果是否为空,若是,则确定处理状态为未处理,否则为已处理;
当操作类型为更新update操作时,判断针对数据库表的修改记录的查询结果是否和执行参数相同,若是,则确定处理状态为已处理,否则为未处理;
当操作类型为删除delete操作时,判断针对数据库表的修改记录的查询结果是否为空,若是,则确定处理状态为已处理,否则为未处理;
当操作类型为选择select操作时,则直接确定数据库表当前的处理状态为未处理。
可选的,数据库处理结果获取模块,用于当处理状态为未处理时,则根据操作类型、筛选条件和执行参数对数据库进行插入insert操作、更新update操作、删除delete操作或选择select操作,获取数据库处理结果;
将数据库处理结果保存到开放系统数据库。
可选的,数据库处理结果获取模块,用于当处理状态为已处理,并且操作类型为插入insert操作时,判断执行参数与数据库表的修改记录是否一致,若否,则按照执行参数对数据库表进行更新,否则直接跳过并将数据库表当前数据作为数据库处理结果;
当处理状态为已处理,并且操作类型为更新update操作时,判断执行参数与数据库表的修改记录是否一致,若否,则按照执行参数对数据库表进行更新,否则直接跳过并将数据库表当前数据作为数据库处理结果;
当处理状态为已处理,并且操作类型为删除delete操作或选择select操作时,直接跳过并将数据库表当前数据作为数据库处理结果。
可选的,装置还包括响应模块,用于接收主机系统的协同响应;
根据协同响应生成交易完成指示。
本发明实施例所提供的分布式系统数据同步装置可执行本发明任意实施例所提供的分布式系统数据同步方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如分布式系统数据同步方法。
在一些实施例中,分布式系统数据同步方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的分布式系统数据同步方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行分布式系统数据同步方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种分布式系统数据同步方法,其特征在于,包括:
获取交易请求,所述交易请求中包含交易作用的数据库表、操作类型、筛选条件和执行参数;
查询所述交易作用的数据库表当前的处理状态,所述处理状态包括已处理或未处理;
基于所述处理状态根据所述交易请求对所述数据库表进行处理,获取数据库处理结果;
将所述数据库处理结果返回给第一交易处理,在确定所述第一交易处理成功后调用第二交易,以使开放系统与主机系统保持数据同步,
其中,所述第一交易属于所述开放系统,所述第二交易属于所述主机系统,并且所述第一交易与所述第二交易具备相同的功能。
2.根据权利要求1所述的方法,其特征在于,所述获取交易请求,包括:
在预设时间内未接收到所述主机系统的协同处理响应时,生成联机补偿指示;
将所述联机补偿指示在前端交易界面进行展示;
获取用户基于所述联机补偿指示所发送的所述交易请求。
3.根据权利要求1所述的方法,其特征在于,所述查询所述交易作用的数据库表当前的处理状态,包括:
从开放系统数据库中查询所述数据库表的修改记录;
根据所述操作类型对所述修改记录进行校验,获取所述数据库表当前的处理状态。
4.根据权利要求3所述的方法,其特征在于,所述操作类型包括插入insert操作、更新update操作、删除delete操作或选择select操作;
所述根据所述操作类型对所述修改记录进行校验,获取所述数据库表当前的处理状态,包括:
当所述操作类型为插入insert操作时,判断针对所述数据库表的修改记录的查询结果是否为空,若是,则确定处理状态为未处理,否则为已处理;
当所述操作类型为更新update操作时,判断针对所述数据库表的修改记录的查询结果是否和执行参数相同,若是,则确定处理状态为已处理,否则为未处理;
当所述操作类型为删除delete操作时,判断针对所述数据库表的修改记录的查询结果是否为空,若是,则确定处理状态为已处理,否则为未处理;
当所述操作类型为选择select操作时,则直接确定所述数据库表当前的处理状态为未处理。
5.根据权利要求4所述的方法,其特征在于,所述基于所述处理状态根据所述交易请求对所述数据库表进行处理,获取数据库处理结果,包括:
当所述处理状态为未处理时,则根据所述操作类型、筛选条件和执行参数对所述数据库进行插入insert操作、更新update操作、删除delete操作或选择select操作,获取所述数据库处理结果;
将所述数据库处理结果保存到所述开放系统数据库。
6.根据权利要求4所述的方法,其特征在于,所述基于所述处理状态根据所述交易请求对所述数据库表进行处理,获取数据库处理结果,包括:
当所述处理状态为已处理,并且所述操作类型为插入insert操作时,判断所述执行参数与所述数据库表的修改记录是否一致,若否,则按照所述执行参数对所述数据库表进行更新,否则直接跳过并将所述数据库表当前数据作为所述数据库处理结果;
当所述处理状态为已处理,并且所述操作类型为更新update操作时,判断所述执行参数与所述数据库表的修改记录是否一致,若否,则按照所述执行参数对所述数据库表进行更新,否则直接跳过并将所述数据库表当前数据作为所述数据库处理结果;
当所述处理状态为已处理,并且所述操作类型为删除delete操作或选择select操作时,直接跳过并将所述数据库表当前数据作为所述数据库处理结果。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述将所述数据库处理结果返回给第一交易处理,在确定所述第一交易处理成功后调用第二交易之后,还包括:
接收所述主机系统的协同响应;
根据所述协同响应生成交易完成指示。
8.一种分布式系统数据同步装置,其特征在于,包括:
交易请求获取模块,用于获取交易请求,其中,所述交易请求中包含交易作用的数据库表、操作类型、筛选条件和执行参数;
处理状态查询模块,用于查询所述交易作用的数据库表当前的处理状态,其中,所述处理状态包括已处理或未处理;
数据库处理结果获取模块,用于基于所述处理状态根据所述交易请求对所述数据库表进行处理,获取数据库处理结果;
数据同步模块,用于将所述数据库处理结果返回给第一交易处理,在确定所述第一交易处理成功后调用第二交易,以使开放系统与主机系统保持数据同步,
其中,所述第一交易属于所述开放系统,所述第二交易属于所述主机系统,并且所述第一交易与所述第二交易具备相同的功能。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的数据同步方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210113501.5A CN114443773A (zh) | 2022-01-30 | 2022-01-30 | 一种分布式系统数据同步方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210113501.5A CN114443773A (zh) | 2022-01-30 | 2022-01-30 | 一种分布式系统数据同步方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114443773A true CN114443773A (zh) | 2022-05-06 |
Family
ID=81371958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210113501.5A Pending CN114443773A (zh) | 2022-01-30 | 2022-01-30 | 一种分布式系统数据同步方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443773A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130066949A1 (en) * | 2011-09-09 | 2013-03-14 | Oracle International Corporation | Idempotence for database transactions |
CN105338093A (zh) * | 2015-11-16 | 2016-02-17 | 中国建设银行股份有限公司 | 一种数据同步方法和系统 |
CN106777026A (zh) * | 2016-12-08 | 2017-05-31 | 用友网络科技股份有限公司 | 支持微服务架构事务最终一致性的方法、装置及系统 |
CN107391635A (zh) * | 2017-06-30 | 2017-11-24 | 北京奇虎科技有限公司 | 数据同步系统及方法 |
CN110400214A (zh) * | 2019-07-31 | 2019-11-01 | 中国工商银行股份有限公司 | 跨平台协同交易数据处理方法及相关系统 |
CN110471688A (zh) * | 2019-08-21 | 2019-11-19 | 深圳蓝贝科技有限公司 | 业务系统处理方法、装置、设备及存储介质 |
CN111061740A (zh) * | 2019-12-17 | 2020-04-24 | 北京软通智慧城市科技有限公司 | 一种数据同步方法、设备和存储介质 |
CN112579620A (zh) * | 2020-12-23 | 2021-03-30 | 上海上实龙创智能科技股份有限公司 | 一种基于消息队列的分布式系统数据最终一致性方法 |
CN113094362A (zh) * | 2021-04-30 | 2021-07-09 | 中国银行股份有限公司 | 一种异步消息可靠投递和处理的方法和装置 |
CN113486109A (zh) * | 2021-06-01 | 2021-10-08 | 中国人民财产保险股份有限公司 | 异构数据库的数据同步方法、装置及电子设备 |
US20220276998A1 (en) * | 2020-06-10 | 2022-09-01 | Tencent Technology (Shenzhen) Company Limited | Database transaction processing method and apparatus, server, and storage medium |
-
2022
- 2022-01-30 CN CN202210113501.5A patent/CN114443773A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130066949A1 (en) * | 2011-09-09 | 2013-03-14 | Oracle International Corporation | Idempotence for database transactions |
CN105338093A (zh) * | 2015-11-16 | 2016-02-17 | 中国建设银行股份有限公司 | 一种数据同步方法和系统 |
CN106777026A (zh) * | 2016-12-08 | 2017-05-31 | 用友网络科技股份有限公司 | 支持微服务架构事务最终一致性的方法、装置及系统 |
CN107391635A (zh) * | 2017-06-30 | 2017-11-24 | 北京奇虎科技有限公司 | 数据同步系统及方法 |
CN110400214A (zh) * | 2019-07-31 | 2019-11-01 | 中国工商银行股份有限公司 | 跨平台协同交易数据处理方法及相关系统 |
CN110471688A (zh) * | 2019-08-21 | 2019-11-19 | 深圳蓝贝科技有限公司 | 业务系统处理方法、装置、设备及存储介质 |
CN111061740A (zh) * | 2019-12-17 | 2020-04-24 | 北京软通智慧城市科技有限公司 | 一种数据同步方法、设备和存储介质 |
US20220276998A1 (en) * | 2020-06-10 | 2022-09-01 | Tencent Technology (Shenzhen) Company Limited | Database transaction processing method and apparatus, server, and storage medium |
CN112579620A (zh) * | 2020-12-23 | 2021-03-30 | 上海上实龙创智能科技股份有限公司 | 一种基于消息队列的分布式系统数据最终一致性方法 |
CN113094362A (zh) * | 2021-04-30 | 2021-07-09 | 中国银行股份有限公司 | 一种异步消息可靠投递和处理的方法和装置 |
CN113486109A (zh) * | 2021-06-01 | 2021-10-08 | 中国人民财产保险股份有限公司 | 异构数据库的数据同步方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115495473A (zh) | 数据库查询方法、装置、电子设备和存储介质 | |
CN115544044A (zh) | 一种数据一致性保持方法、装置、设备和存储介质 | |
CN115964153A (zh) | 一种异步任务处理方法、装置、设备以及存储介质 | |
CN114443773A (zh) | 一种分布式系统数据同步方法、装置、设备和存储介质 | |
CN114691781A (zh) | 一种数据同步方法、系统、装置、设备及介质 | |
CN116383207A (zh) | 一种数据标签管理方法、装置、电子设备和存储介质 | |
CN115982273A (zh) | 一种数据同步方法、系统、电子设备和存储介质 | |
CN115934742A (zh) | 一种故障处理方法、装置、设备及存储介质 | |
CN115525666A (zh) | 一种实时数据更新方法、装置、电子设备及存储介质 | |
CN116303524A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN113656239A (zh) | 针对中间件的监控方法、装置及计算机程序产品 | |
CN115174447B (zh) | 一种网络通信方法、装置、系统、设备及存储介质 | |
CN115269128A (zh) | 分布式事务的处理方法、装置、设备及存储介质 | |
CN117609194A (zh) | 云数据库的处理方法、装置、电子设备及存储介质 | |
CN116455968A (zh) | 一种消息中间件管理方法及相关设备 | |
CN115237968A (zh) | 数据库系统中的节点管理方法、装置、设备及存储介质 | |
CN115687244A (zh) | 文件处理监控方法、装置、设备及介质 | |
CN117971872A (zh) | 一种数据库查询方法、装置、设备及存储介质 | |
CN115687529A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN115525659A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN114638935A (zh) | 维度监控任务的生成及数据质量的监控方法和装置 | |
CN115168760A (zh) | 数据查询方法、装置及存储介质 | |
CN115794555A (zh) | 一种业务日志处理方法、装置、设备及存储介质 | |
CN115904701A (zh) | 一种参数刷新方法、装置、设备及存储介质 | |
CN117112695A (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 |