CN111984388A - 云环境分布式事务下数据一致性的协调方法及装置、介质 - Google Patents
云环境分布式事务下数据一致性的协调方法及装置、介质 Download PDFInfo
- Publication number
- CN111984388A CN111984388A CN202010880477.9A CN202010880477A CN111984388A CN 111984388 A CN111984388 A CN 111984388A CN 202010880477 A CN202010880477 A CN 202010880477A CN 111984388 A CN111984388 A CN 111984388A
- Authority
- CN
- China
- Prior art keywords
- target database
- request
- state
- return information
- local transaction
- 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 66
- 230000004044 response Effects 0.000 claims abstract description 22
- 230000008569 process Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012958 reprocessing Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Abstract
本发明公开了云环境分布式事务下数据一致性的协调方法及装置、介质。该方法包括:将本地事务请求拆分为多个操作请求,以调用各个目标数据库,在调用成功的情况下控制目标数据库进入临时状态或在失败的情况下保持原状态,接收来自目标数据库的状态返回信息,在各个目标数据库发出的状态返回信息均用于表征临时状态时向各个目标数据库分别发出业务运行指令,否则进行回退,以使各个目标数据库对于本地事务请求生成一致的响应结果数据。该装置包括本地事务拆分模块、目标数据调用模块、返回信息接收模块、数据一致控制模块。本发明能够保证微服务架构下完全不同的数据库提供一致的响应结果,特别在发生异常的情况下保证数据的最终一致性。
Description
技术领域
本发明涉及云计算技术领域,更为具体来说,本发明涉及云环境分布式事务下数据一致性的协调方法及装置、介质。
背景技术
随着云计算技术的兴起,在线支付、账号注册等功能实现越来越便捷。目前,在云环境分布式软件环境下的微服务变得越来越细致,为满足更多的服务化需求,往往将单体系统(例如在某位置的一组服务器)拆分成多个服务,各服务通过各自的数据库实现。在微服务场景下,一个事务请求往往需要跨越多个完全不同的数据库才能够实现,这导致了对数据库中数据的访问过程变得复杂,现有技术难以保证不同的数据库提供一致的响应结果数据。
因此,在微服务架构下如何保证实现当前事务请求的多个数据库提供一致的响应结果数据,成为了本领域技术人员亟待解决的技术问题和始终研究的重点。
发明内容
为了解决现有微服务架构下的不同数据库难以提供一致的响应结果数据的问题,本发明创新地提供了一种云环境分布式事务下数据一致性的协调方法及装置、介质,采用了全新的控制逻辑,从而实现当前事务请求的各数据库提供一致的响应。
为实现上述的技术目的,本发明公开了一种云环境分布式事务下数据一致性的协调方法,该方法可包括但不限于如下步骤。
将本地事务请求拆分为多个操作请求,利用各个操作请求分别对应地调用各个目标数据库;在调用成功的情况下控制目标数据库进入临时状态或在调用失败的情况下使目标数据库保持在原状态,接收来自目标数据库的状态返回信息,其中,所述状态返回信息用于表征所述临时状态或所述原状态,在所述各个目标数据库发出的状态返回信息均用于表征临时状态时向所述各个目标数据库分别发出业务运行指令,否则进行回退操作,从而使所述各个目标数据库对于所述本地事务请求生成一致的响应结果数据。所述临时状态为所述目标数据库具备处理当前请求的资源的状态。
进一步地,所述回退操作完成后重新处理所述本地事务请求前还包括:
收到用于表征临时状态的新的状态返回信息,则确定当前调用成功的目标数据库和所有当前实现调用成功的操作请求;所述当前实现调用成功的操作请求用于在重新处理所述本地事务请求时默认已完成调用目标数据库。
进一步地,所述回退操作过程包括:
记录用于表征临时状态的状态返回信息,以确定调用成功的目标数据库和实现调用成功的操作请求;所述实现调用成功的操作请求用于在重新处理所述本地事务请求时默认已完成调用目标数据库。
进一步地,所述重新处理所述本地事务请求的过程包括:
利用当前未完成调用目标数据库的操作请求对应地调用目标数据库,接收当前被调用的目标数据库的状态返回信息,在所述当前被调用的目标数据库发出的状态返回信息全部用于表征临时状态时向所述各个目标数据库分别发出业务运行指令,否则进行回退操作后再重新处理所述本地事务请求。
进一步地,控制目标数据库进入临时状态的过程可包括:预留或锁定当前目标数据库中用于运行业务请求的业务资源。
进一步地,所述本地事务请求可为支付请求或注册请求或下单请求。
为实现上述的技术目的,本发明还能够提供一种云环境分布式事务下数据一致性的协调装置。
云环境分布式事务下数据一致性的协调装置包括但不限于本地事务拆分模块、目标数据调用模块、返回信息接收模块、数据一致控制模块及分支事务记录模块。
本地事务拆分模块,用于将本地事务请求拆分为多个操作请求。
目标数据调用模块,用于利用各个操作请求分别对应地调用各个目标数据库,以在调用成功的情况下控制目标数据库进入临时状态或在调用失败的情况下使目标数据库保持在原状态。所述临时状态为所述目标数据库具备处理当前请求的资源的状态。
返回信息接收模块,用于接收来自目标数据库的状态返回信息。其中,所述状态返回信息用于表征所述临时状态或所述原状态。
数据一致控制模块,用于在所述各个目标数据库发出的状态返回信息均用于表征临时状态时向所述各个目标数据库分别发出业务运行指令,或发出回退操作指令,以使所述各个目标数据库对于所述本地事务请求生成一致的响应结果数据。
分支事务记录模块,用于在回退操作完成后重新处理所述本地事务请求前记录用于表征临时状态的新的状态返回信息,并用于确定当前调用成功的目标数据库和所有当前实现调用成功的操作请求。所述当前实现调用成功的操作请求用于在重新处理所述本地事务时默认已完成调用目标数据库。
所述分支事务记录模块,还用于在回退操作过程中记录用于表征临时状态的状态返回信息,并用于确定调用成功的目标数据库和实现调用成功的操作请求。所述实现调用成功的操作请求用于在重新处理所述本地事务请求时默认已完成调用目标数据库。
为实现上述的技术目的,本发明还可提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明任一实施例的云环境分布式事务下数据一致性的协调方法。
为实现上述的技术目的,本发明还可提供一种电子设备,包括处理器、存储器、通信接口,存储器中存储有计算机程序,计算机程序被配置由处理器执行,以执行如本发明任一实施例的方法中的步骤。
本发明的有益效果为:
与现有技术相比,本发明能够保证微服务架构下完全不同的数据库提供一致的响应结果(成功或失败),保证数据最终一致性,特别在发生异常的情况下(例如网络延迟等),本发明能够保证事务请求的正常处理。
本发明还具有工作流程复杂度低、事务处理效率较高、灵活性较好及用户体验较好等优点,可广泛地应用于下单、支付、注册等复杂场景中,适用范围较广,能够进行大面积应用。
附图说明
图1示出了本发明一种云环境分布式事务下数据一致性的协调方法的流程示意图。
图2示出了将本发明应用于具体微服务场景的同步调用和异步调用的工作状态示意图。
图3示出了以两个数据库为例的本发明数据一致性协调逻辑的详细工作原理示意图。
图4示出了利用事务型消息优化异步操作的工作流程示意图。
图5示出了电子设备的硬件架构示意图。
具体实施方式
下面结合说明书附图对本发明提供的一种云环境分布式事务下数据一致性的协调方法及装置、介质进行详细的解释和说明。
实施例一:
如图1所示,本实施例能够提供一种云环境分布式事务下数据一致性的协调方法,可用于解决现有技术在微服务架构下难以保证不同的数据库提供一致的响应结果数据的问题,该协调方法可包括但不限于如下步骤。
首先,如图2所示,可根据实际微服务架构设计将本地事务请求拆分为多个操作请求。其中,每个操作请求可交由一个远程数据库执行,本地事务请求可以为支付请求或注册请求或下单请求等具体应用场景的相关请求。具体实施时,图2中操作请求1、操作请求2、操作请求n-1用于代表n-1种服务,可通过同步调用方式实现这n-1种服务;请求操作n可用于代表第n种服务,可采用异步消息通知完成,当然,异步调用过程也可以涉及多种服务。本实施例中的调用可以是远程过程调用(Remote Procedure Call,RPC)或者本地调用;每个调用分支分别使用至少一个数据库(如图2中的运程数据库),或者多个调用分支共享使用一个数据库,上述的调用方式和使用方式均应在本发明的保护范围之内。
其次,如图3所示,本实施例采用二段式提交策略,第一段提交用于实现判断流程,第二段提交用于实现执行流程。在第一段提交中,可通过调用设定的尝试接口实现,以利用各个操作请求分别对应地调用各个目标数据库,并在调用成功的情况下控制目标数据库进入临时状态或者在调用失败的情况下使目标数据库保持在原状态。本实施例控制目标数据库进入临时状态的过程可包括:预留或锁定当前目标数据库中用于运行业务请求的业务资源,预留业务资源是指令当前目标数据库中始终能够使用大于或等于满足当前业务请求的业务资源,锁定业务资源是指在当前目标数据库中划分出只用于当前业务请求的专用部分资源。所以本实施例的临时状态是指令目标数据库必然空闲出处理当前业务请求的资源,原状态是指目标数据库不一定具有处理当前业务请求的能力(即可能有能够处理当前业务请求的空闲资源或可能没有处理当前业务请求的资源)。
再次,一个目标数据库成功收到第一段提交的操作请求后发出状态返回信息,本地端(例如可以是智能手机或者电脑等终端)接收来自目标数据库的状态返回信息。其中,状态返回信息用于表征临时状态或原状态。
最后,本地端在成功收到状态返回信息后,判断所有与本地事务请求相关的目标数据库是否全部处于临时状态。
如图3所示,在第二段提交中根据判断结果执行。在各个目标数据库发出的状态返回信息均用于表征临时状态时,说明各个目标数据库均可以正常实现服务,则向各个目标数据库分别发出业务运行指令(即第一阶段提交过程均判断成功后开始提交业务,可通过调用确认接口实现),否则进行回退操作(即第一阶段提交过程至少有一个失败则进行回退操作,可通过调用回退接口实现)。如图2所示,在微服务架构分布式环境下,本实施例能够实现向n个远程数据库同时发出业务运行指令或者回退指令,一切正常情况下确保这些操作全部成功,若存在异常情况下则可确保这些操作全部失败,从而使各个目标数据库对于本地事务请求生成完全一致的响应结果数据,一致的响应结果数据为全部成功或全部失败,可见本发明确实能够保证不同的远程服务器处理结果的一致性。
在本实施例具体实施中,如果至少一个目标数据库发出的状态返回信息用于表征原状态,即对应的目标数据库此时不具备实现服务的条件,则需进行回退操作。为了提高本发明执行效率,本实施例在重新处理本地事务请求时能够减少第一段提交处理的操作请求数量;具体地,回退操作过程可以包括但不限于如下过程:记录用于表征临时状态的状态返回信息,以确定调用成功的目标数据库和实现调用成功的操作请求。实现调用成功的操作请求用于在重新处理本地事务请求时默认已完成调用目标数据库。
在回退操作完成后,本实施例一般会重新执行第一段提交过程,例如重新调用目标数据库甚至可以从拆分本地事务请求再次开始(相当于重新处理本地事务请求)。重新处理本地事务请求的过程包括:利用当前未完成调用目标数据库的操作请求对应地调用目标数据库。接收当前被调用的目标数据库的状态返回信息。在当前被调用的目标数据库发出的状态返回信息全部用于表征临时状态时向各个目标数据库分别发出业务运行指令,否则进行回退操作后再重新处理本地事务请求。
为了解决在网络堵塞或者其他异常情况下导致的调用超时问题(远程过程调用方式更容易发生调用超时问题),例如在回退操作完成后,一个或多个操作请求才到达目标服务器,然后收到目标数据库发出的用于表征临时状态的状态返回信息,对于该问题,本实施例提出如下进一步改进的方案。具体地,在回退操作完成后重新处理本地事务请求前还包括:如果收到用于表征临时状态的新的状态返回信息,则确定当前(回退后)调用成功的目标数据库和所有当前(回退后)实现调用成功的操作请求,具体实施时可设置分支事务记录表记录当前调用成功的目标数据库以及所有当前实现调用成功的操作请求;当前实现调用成功的操作请求用于在重新处理本地事务请求时默认已完成调用目标数据库(即本次回滚后再完成的操作请求,下次重新进行第一段提交时不再执行,本实施例相当于对在前第二段提交执行记录加上分布式锁)。而且回退操作完成后的方案也能够在重新处理本地事务请求时减少第一段提交处理的操作请求数量,从而可进一步地提高本发明执行效率。重新处理本地事务请求的过程可以为多次,在本实施例中,在后的本地事务请求处理过程能够比在前的本地事务请求处理过程要进行第一段提交的操作请求数量更少。
在具有异步处理服务的情况下,由于响应消息并不是实时返回,则在处理的中间过程往往会发生很多意想不到的情况。虽然可以通过重试逻辑或回退逻辑等按需方案解决,例如发送消息失败后即重发、多次重发失败后回退所有操作,但是重发逻辑和回退逻辑可能会导致整体控制逻辑非常复杂,往往会增加成本和事务处理时间,降低用户体验。
鉴于此,本实施例在第一段提交和第二段提交过程中的异步操作过程采用事务型消息,实现对本地端和数据库的有效交互,以较好地解决控制逻辑复杂导致的实施成本高、用户体验差等问题。
如图4所示,本实施例可先通过发送方(可理解为本地端)向服务端(包括数据库)发送半消息,即向服务端发送未被确认的消息;在服务端收到半消息后向发送方返回发送成功的消息,以表示半消息发送成功;并在发送方收到发送成功消息后执行本地事务,以及在本地事务执行成功后向服务端发送相关业务提交的确认消息(即各个目标数据库对于本地事务请求均生成成功的响应结果),或者在本地事务执行失败后向服务端发送回滚的确认消息(即各个目标数据库对于本地事务请求均生成失败的响应结果)。
如图4所示,作为进一步优化的技术方案,本实施例可保证本地事务请求一定被服务端处理。具体地,服务端在未收到业务提交或回滚的确认消息时,可向发送方发出回查消息,以使发送方收到回查消息后检查本地事务执行状态,以及根据本地事务执行状态向服务端发出业务提交或回滚的确认信息:在本地事务执行状态为成功时发出业务提交的确认信息或者在本地事务执行状态为失败时发出回滚的确认信息。
实施例二:
与实施例一基于相同的发明构思,本实施例具体能够提供一种可用于执行实施例一的方法的的云环境分布式事务下数据一致性的装置。
云环境分布式事务下数据一致性的装置包括但不限于本地事务拆分模块、目标数据调用模块、返回信息接收模块、数据一致控制模块及分支事务记录模块。
本地事务拆分模块,用于将本地事务请求拆分为多个操作请求。其中,一个操作请求需至少由一个数据库完成服务,本地事务请求例如可以包括但不限于支付请求、注册请求及下单请求等。
目标数据调用模块,用于利用各个操作请求分别对应地调用各个目标数据库,从而在调用成功的情况下控制目标数据库进入临时状态或在调用失败的情况下使目标数据库保持在原状态。
本实施例控制目标数据库进入临时状态的过程包括:预留或锁定当前目标数据库中用于运行业务请求的业务资源。
返回信息接收模块,用于接收来自目标数据库的状态返回信息。其中,状态返回信息用于表征临时状态或原状态,临时状态下的目标数据库必然能够提供用于处理当前业务请求的资源。
数据一致控制模块,用于根据判断结果发出相应的指令,具体用于在各个目标数据库发出的状态返回信息均用于表征临时状态时向各个目标数据库分别发出业务运行指令(一致的响应结果数据为全部成功),或者发出回退操作指令(一致的响应结果数据为全部失败),从而而使各个目标数据库对于本地事务请求生成一致的响应结果数据。
分支事务记录模块,可具有一个分支事务记录表。分支事务记录模块用于在回退操作完成后重新处理本地事务请求前记录用于表征临时状态的新的状态返回信息,并用于确定当前调用成功的目标数据库和所有当前实现调用成功的操作请求。当前实现调用成功的操作请求用于在重新处理本地事务请求时默认已完成调用目标数据库,在前的本地事务请求的响应结果失败时,重新处理本地事务请求的过程可以为多次。
为了提高本发明执行效率,分支事务记录模块还用于在回退操作过程中记录用于表征临时状态的状态返回信息,以及用于确定调用成功的目标数据库和实现调用成功的操作请求。实现调用成功的操作请求用于在重新处理本地事务请求时默认已完成调用目标数据库,以在重新处理本地事务请求时能够减少第一段提交处理的操作请求数量。
与实施例一基于相同的构思,本实施例重新处理本地事务请求的过程包括:利用当前未完成调用目标数据库的操作请求对应地调用目标数据库,接收当前被调用的目标数据库的状态返回信息,在当前被调用的目标数据库发出的状态返回信息全部用于表征临时状态时向各个目标数据库分别发出业务运行指令,否则进行回退操作后再重新处理本地事务请求。
实施例三:
如图5所示,与实施例一或实施例二基于相同的发明构思,本实施例能够提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现本发明任一实施例的云环境分布式事务下数据一致性的协调方法或者本发明任一实施例的云环境分布式事务下数据一致性的协调装置。
实施例四:
与实施例一或实施例二基于相同的发明构思,本实施例能够提供一种计算机程序产品,当计算机程序产品中的指令由处理器执行时,执行如本发明任一实施例中的云环境分布式事务下数据一致性的协调方法。
实施例五:
如图5所示,本实施例能够提供一种电子设备,该电子设备包括处理器、存储器和通信接口,存储器中存储有计算机程序,计算机程序被配置由处理器执行,以执行如本发明任一实施例的方法中的步骤。电子设备可以为PC,还可以为如PAD、平板电脑、手提电脑这种便携电子设备、还可以为如手机这种智能移动终端,不限于这里的描述;电子设备还可以通过服务器实现,服务器可以是通过集群系统构成的,为实现各单元功能而合并为一或各单元功能分体设置的电子设备。程序的执行包含以下步骤的指令:将本地事务请求拆分为多个操作请求,利用各个操作请求分别对应地调用各个目标数据库;在调用成功的情况下控制目标数据库进入临时状态或在调用失败的情况下使目标数据库保持在原状态,接收来自目标数据库的状态返回信息,其中,状态返回信息用于表征临时状态或原状态,在各个目标数据库发出的状态返回信息均用于表征临时状态时向各个目标数据库分别发出业务运行指令,否则进行回退操作,从而使各个目标数据库对于本地事务请求生成一致的响应结果数据。临时状态为目标数据库具备处理当前请求的资源的状态。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读存储介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。所述计算机可读存储介质可以是非易失性,也可以是易失性的。计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM,Random Access Memory),只读存储器(ROM,Read-Only Memory),可擦除可编辑只读存储器(EPROM,ErasableProgrammable Read-Only Memory,或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM,Compact Disc Read-Only Memory)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA,Programmable Gate Array),现场可编程门阵列(FPGA,Field Programmable Gate Array)等。
在本说明书的描述中,参考术语“本实施例”、“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种云环境分布式事务下数据一致性的协调方法,其特征在于,包括:
将本地事务请求拆分为多个操作请求;
利用各个操作请求分别对应地调用各个目标数据库;
在调用成功的情况下控制目标数据库进入临时状态或在调用失败的情况下使目标数据库保持在原状态;所述临时状态为所述目标数据库具备处理当前请求的资源的状态;
接收来自目标数据库的状态返回信息;其中,所述状态返回信息用于表征所述临时状态或所述原状态;
在所述各个目标数据库发出的状态返回信息均用于表征临时状态时向所述各个目标数据库分别发出业务运行指令,否则进行回退操作,从而使所述各个目标数据库对于所述本地事务请求生成一致的响应结果数据。
2.根据权利要求1所述的云环境分布式事务下数据一致性的协调方法,其特征在于,回退操作完成后重新处理所述本地事务请求前还包括:
收到用于表征临时状态的新的状态返回信息,则确定当前调用成功的目标数据库和所有当前实现调用成功的操作请求;所述当前实现调用成功的操作请求用于在重新处理所述本地事务请求时默认已完成调用目标数据库。
3.根据权利要求2所述的云环境分布式事务下数据一致性的协调方法,其特征在于,回退操作过程包括:
记录用于表征临时状态的状态返回信息,以确定调用成功的目标数据库和实现调用成功的操作请求;所述实现调用成功的操作请求用于在重新处理所述本地事务请求时默认已完成调用目标数据库。
4.根据权利要求2或3所述的云环境分布式事务下数据一致性的协调方法,其特征在于,重新处理所述本地事务请求的过程包括:
利用当前未完成调用目标数据库的操作请求对应地调用目标数据库;
接收当前被调用的目标数据库的状态返回信息;
在所述当前被调用的目标数据库发出的状态返回信息全部用于表征临时状态时向所述各个目标数据库分别发出业务运行指令,否则进行回退操作后再重新处理所述本地事务请求。
5.根据权利要求1所述的云环境分布式事务下数据一致性的协调方法,其特征在于,控制目标数据库进入临时状态的过程包括:
预留或锁定当前目标数据库中用于运行业务请求的业务资源。
6.根据权利要求1所述的云环境分布式事务下数据一致性的协调方法,其特征在于,
所述本地事务请求为支付请求或注册请求或下单请求。
7.一种云环境分布式事务下数据一致性的协调装置,其特征在于,包括:
本地事务拆分模块,用于将本地事务请求拆分为多个操作请求;
目标数据调用模块,用于利用各个操作请求分别对应地调用各个目标数据库,以在调用成功的情况下控制目标数据库进入临时状态或者在调用失败的情况下使目标数据库保持在原状态;所述临时状态为所述目标数据库具备处理当前请求的资源的状态;
返回信息接收模块,用于接收来自目标数据库的状态返回信息;其中,所述状态返回信息用于表征所述临时状态或所述原状态;
数据一致控制模块,用于在所述各个目标数据库发出的状态返回信息均用于表征临时状态时向所述各个目标数据库分别发出业务运行指令,或用于发出回退操作指令,以使所述各个目标数据库对于所述本地事务请求生成一致的响应结果数据。
8.根据权利要求7所述的云环境分布式事务下数据一致性的协调装置,其特征在于,还包括:
分支事务记录模块,用于在回退操作完成后重新处理所述本地事务请求前记录用于表征临时状态的新的状态返回信息,并用于确定当前调用成功的目标数据库和所有当前实现调用成功的操作请求;所述当前实现调用成功的操作请求用于在重新处理所述本地事务请求时默认已完成调用目标数据库。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一权利要求所述的云环境分布式事务下数据一致性的协调方法。
10.一种电子设备,其特征在于,包括处理器、存储器、通信接口,所述存储器中存储有计算机程序,所述计算机程序被配置由所述处理器执行,以执行如权利要求1-6任一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010880477.9A CN111984388A (zh) | 2020-08-27 | 2020-08-27 | 云环境分布式事务下数据一致性的协调方法及装置、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010880477.9A CN111984388A (zh) | 2020-08-27 | 2020-08-27 | 云环境分布式事务下数据一致性的协调方法及装置、介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111984388A true CN111984388A (zh) | 2020-11-24 |
Family
ID=73440960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010880477.9A Pending CN111984388A (zh) | 2020-08-27 | 2020-08-27 | 云环境分布式事务下数据一致性的协调方法及装置、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984388A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177085A (zh) * | 2021-05-25 | 2021-07-27 | 上海安畅网络科技股份有限公司 | 一种接口幂等调用的方法、装置、设备及存储介质 |
CN114510495A (zh) * | 2022-04-21 | 2022-05-17 | 北京安华金和科技有限公司 | 一种数据库业务数据一致性处理方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831156A (zh) * | 2012-06-29 | 2012-12-19 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
CN106502769A (zh) * | 2016-09-30 | 2017-03-15 | 华为技术有限公司 | 分布式事务处理方法、装置及系统 |
CN111475583A (zh) * | 2020-06-19 | 2020-07-31 | 阿里云计算有限公司 | 事务处理方法及装置 |
-
2020
- 2020-08-27 CN CN202010880477.9A patent/CN111984388A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831156A (zh) * | 2012-06-29 | 2012-12-19 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
CN106502769A (zh) * | 2016-09-30 | 2017-03-15 | 华为技术有限公司 | 分布式事务处理方法、装置及系统 |
CN111475583A (zh) * | 2020-06-19 | 2020-07-31 | 阿里云计算有限公司 | 事务处理方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177085A (zh) * | 2021-05-25 | 2021-07-27 | 上海安畅网络科技股份有限公司 | 一种接口幂等调用的方法、装置、设备及存储介质 |
CN114510495A (zh) * | 2022-04-21 | 2022-05-17 | 北京安华金和科技有限公司 | 一种数据库业务数据一致性处理方法和系统 |
CN114510495B (zh) * | 2022-04-21 | 2022-07-08 | 北京安华金和科技有限公司 | 一种数据库业务数据一致性处理方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6769003B2 (en) | Parallel logging method for transaction processing system | |
CN110888893A (zh) | 一种基于微服务电商系统的订单处理方法 | |
CN111784329B (zh) | 业务数据的处理方法和装置、存储介质、电子装置 | |
CN111711697A (zh) | 消息推送方法、装置、设备及存储介质 | |
CN111277639A (zh) | 一种保持数据一致性的方法和装置 | |
CN111984388A (zh) | 云环境分布式事务下数据一致性的协调方法及装置、介质 | |
CN112422497B (zh) | 消息传递方法、装置及计算机设备 | |
US20080172473A1 (en) | System for ensuring client access to messages from a server | |
CN109684048B (zh) | 事务提交系统中处理事务的方法及装置 | |
KR100403659B1 (ko) | 서버 프로세스 장치 및 서버 프로세스 방법 및 컴퓨터 판독가능한 기록 매체 | |
CA2213213A1 (en) | Method and apparatus for performing efficient corba transactions | |
CN112995262A (zh) | 分布式事务提交方法、系统及计算设备 | |
CN113760924A (zh) | 一种分布式事务的处理方法和装置 | |
CN110347659B (zh) | 数据处理方法和装置、交易数据处理方法和装置 | |
WO2019201111A1 (zh) | 信息处理方法、装置、设备及计算机可读存储介质 | |
CN111625323A (zh) | 分布式任务处理方法、装置、设备及计算机可读存储介质 | |
US6836470B1 (en) | Method for reliable message delivery in a network of mobile computers | |
CN111901380B (zh) | 一种请求处理方法、装置、设备及存储介质 | |
CN117407125B (zh) | Pod高可用实现方法、装置、设备及可读存储介质 | |
CN112835728B (zh) | 消息处理方法、装置、计算机设备和存储介质 | |
CN117478504B (zh) | 信息传输方法、装置、终端设备以及存储介质 | |
CN116431367B (zh) | 一种修改票证信息的方法、系统及计算机可读存储介质 | |
CN114765596B (zh) | 社交关系的构建方法、装置、服务器及存储介质 | |
US11943316B1 (en) | Database connection multiplexing for prepared statements | |
CN116775227A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201124 |
|
RJ01 | Rejection of invention patent application after publication |