CN113051044A - 一种基于无服务架构的分布式事务处理方法及装置 - Google Patents
一种基于无服务架构的分布式事务处理方法及装置 Download PDFInfo
- Publication number
- CN113051044A CN113051044A CN202110423860.6A CN202110423860A CN113051044A CN 113051044 A CN113051044 A CN 113051044A CN 202110423860 A CN202110423860 A CN 202110423860A CN 113051044 A CN113051044 A CN 113051044A
- Authority
- CN
- China
- Prior art keywords
- transaction
- sub
- execution
- state
- main
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims abstract description 60
- 230000004044 response Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 230000004069 differentiation Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 239000002253 acid Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 230000002688 persistence Effects 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/466—Transaction processing
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种基于无服务架构的分布式事务处理方法及装置,方法包括:接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;响应于所述事件处理请求,并向平台端发送查询状态请求以查询主事务执行状态;接收所述平台端根据所述查询状态请求发送的第一反馈信息;所述第一反馈信息包括:主事务标识信息以及主事务执行状态;当所述第一反馈信息中主事务执行状态为成功状态时执行子事务;所述子事务从属于所述主事务。本发明上述实施例所述的方法通过对事件内部的事务按照逻辑进行从属区分,且通过顺序执行的传递方法保证事件内部数据有序处理,该方法实施成本低,能够有效解决数据一致性问题。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种基于无服务架构的分布式事务处理方法及装置。
背景技术
随着IT技术的更新迭代,云计算技术也在逐步且迅速地发展。在云计算领域,出现了无服务Serverless的概念。无服务架构下提供了一种更加“代码碎片化”的软件架构规范,即FaaS(Function as a Services),它提供的是相比微服务更加细小的程序单元,倡导一种让用户仅需关注业务和所需的资源而不需要关注业务运行所需要的CPU、内存、网络情况。
无服务架构下事务管理的特点:1.无服务架构下各节点间无法进行数据访问;2.不同的节点之间使用的数据源类型可能完全不同,甚至使用了NoSQL之类不支持事务的数据库;3.无服务架构下各节点被划分为更小的粒度,即函数,节点事务内部的各个函数之间的数据一致性首先就需要保证。
所以基于上述无服务架构的特点,无服务架构下事务间不同函数使用的数据源类型可能完全不同,传统的分布式事务处理方法已经无法满足该架构下的事务管理需求,那么在无服务Serverless下的事务管理就需要新的方法解决分步式事务数据的一致性问题。
发明内容
鉴于上述传统分布式事务处理方法无法满足无服务架构下的事务管理需求的问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于无服务架构的分布式事务处理方法及装置。
依据本发明的一个方面,提供一种基于无服务架构的分布式事务处理方法,包括:
接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;
响应于所述事件处理请求,并向平台端发送查询状态请求以查询主事务执行状态;
接收所述平台端根据所述查询状态请求发送的第一反馈信息;所述第一反馈信息包括:主事务标识信息以及主事务执行状态;
当所述第一反馈信息中主事务执行状态为成功状态时执行子事务;所述子事务从属于所述主事务。
优选的,所述方法还包括:
当所述子事务执行完毕后,向所述平台端发送第一执行结果;所述第一执行结果用于所述平台端在子事务执行状态为失败状态时向所述主事务和/或其他子事务发送第二反馈信息以通知所述主事务和/或其他子事务执行回滚;所述第一执行结果包括:主事务标识信息、该子事务的子事务标识信息以及子事务执行状态,所述第二反馈信息包括:该子事务的子事务标识信息以及子事务执行状态。
优选的,所述方法还包括:
所述第一执行结果还用于令所述平台端在所述子事务执行状态为成功状态时检查所述第一事件内的主事务及从属于所述主事务的全部子事务的处理结果是否为闭环状态,以及若为闭环状态时结束处理主事务及从属于所述主事务的全部子事务;所述闭环状态表征所述主事务及从属于所述主事务的全部子事务的执行状态均为成功状态。
优选的,所述方法还包括:
当所述主事务执行状态为失败状态时,等待执行或暂停执行所述子事务;以及,
当所述主事务执行状态为开始状态时,等待执行所述子事务。
依据本发明的另一个方面,提供一种基于无服务架构的分布式事务处理方法,所述方法包括:
接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;
响应于所述事件处理请求,并向所述平台端发送启动执行通知并执行主事务,所述启动执行通知包括:主事务标识信息以及主事务执行状态;其中,所述启动执行通知中的主事务执行状态为开始状态;
当所述主事务执行完毕后,向所述平台端发送第二执行结果,所述第二执行结果用于当平台端接收子事务发送的查询状态请求时,由所述平台端根据所述第二执行结果向所述子事务发送第一反馈信息,以及当第一反馈信息中的主事务执行状态为成功状态时执行子事务;其中,所述子事务从属于所述主事务;所述第二执行结果包括:主事务标识信息及主事务执行状态。
优选的,所述方法还包括:
接收所述平台端根据第一执行结果发送的第二反馈信息;所述第一执行结果包括:主事务标识信息、子事务标识信息以及子事务执行状态;所述第二反馈信息包括:子事务标识信以及子事务执行状态,所述第二反馈信息中的子事务执行状态为失败状态;
响应于所述第二反馈信息以执行回滚,并向所述平台端发送第三执行结果,所述第三执行结果包括:主事务标识信息及主事务执行状态,所述第三执行结果中的主事务执行状态为回滚状态。
依据本发明的另一个方面,提供一种基于无服务架构的分布式事务处理方法,所述方法包括:
接收用户端发送的触发事件请求;
响应于所述触发事件请求,分别向主事务以及子事务发送事件处理请求;所述子事务从属于所述主事务;
接收所述主事务发送的第二执行结果,所述第二执行结果为所述主事务根据所述触发事件请求执行主事务结束后发送的通知,所述第二执行结果包括:主事务标识信息及主事务执行状态;
接收所述子事务根据所述触发事件请求发送的查询状态请求;所述查询状态请求为所述子事务执行前发送的查询主事务执行状态的请求;
响应于所述查询状态请求,向所述子事务发送第一反馈信息,所述第一反馈信息用于向所述子事务反馈主事务执行状态;所述第一反馈信息包括:主事务标识信息以及主事务执行状态。
优选的,所述方法包括:
接收所述子事务发送的第一执行结果,所述第一执行结果包括:主事务标识信息、子事务标识信息以及子事务执行状态;
当所述第一执行结果中的子事务执行状态为失败状态时,向所述主事务和/或其他子事务发送第二反馈信息,所述第二反馈信息用于通知所述主事务和/或其他子事务执行回滚;所述第二反馈信息包括:该子事务的子事务标识信息以及子事务执行状态,所述第二反馈信息中的子事务执行状态为失败状态;
接收所述主事务和/或其他子事务发送的第三执行结果,所述第三执行结果包括:主事务标识信息及主事务执行状态和/或其他子事务标识信息及子事务执行状态,所述第三执行结果中的主事务执行状态和/或子事务执行状态为回滚状态。
优选的,所述方法还包括:
当所述第一执行结果中的子事务执行状态为成功状态时,检查所述第一事件内的主事务及从属于所述主事务的全部子事务的处理结果是否为闭环状态;所述闭环状态表征所述主事务及从属于所述主事务的全部子事务的执行状态均为成功状态;
若是,则结束处理主事务及从属于所述主事务的全部子事务。
依据本发明的另一个方面,提供一种基于无服务架构的分布式事务处理装置,所述装置包括:
第一接收模块,用于接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;
第一响应模块,用于响应于所述事件处理请求,并向平台端发送查询状态请求以查询主事务执行状态;
第二接收模块,用于接收所述平台端根据所述查询状态请求发送的第一反馈信息;所述第一反馈信息包括:主事务标识信息以及主事务执行状态;
第一执行模块,用于当所述第一反馈信息中主事务执行状态为成功状态时执行子事务;所述子事务从属于所述主事务。
依据本发明的另一个方面,提供一种基于无服务架构的分布式事务处理装置,所述装置包括:
第三接收模块,用于接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;
第二响应模块,用于响应于所述事件处理请求,并向所述平台端发送启动执行通知并执行主事务,所述启动执行通知包括:主事务标识信息以及主事务执行状态;其中,所述启动执行通知中的主事务执行状态为开始状态;
第一反馈模块,用于当所述主事务执行完毕后,向所述平台端发送第二执行结果,所述第二执行结果用于当平台端接收子事务发送的查询状态请求时,由所述平台端根据所述第二执行结果向所述子事务发送第一反馈信息,以及当第一反馈信息中的主事务执行状态为成功状态时执行子事务;其中,所述子事务从属于所述主事务;所述第二执行结果包括:主事务标识信息及主事务执行状态。
依据本发明的另一个方面,提供一种基于无服务架构的分布式事务处理装置,所述装置包括:
第四接收模块,用于接收用户端发送的触发事件请求;
第三响应模块,用于响应于所述触发事件请求,分别向主事务以及子事务发送事件处理请求所述子事务从属于所述主事务;
第五接收模块,用于接收所述主事务发送的第二执行结果,所述第二执行结果为所述主事务根据所述触发事件请求执行主事务结束后发送的通知,所述第二执行结果包括:主事务标识信息及主事务执行状态;
第六接收模块,用于接收所述子事务根据所述触发时间请求发送的查询状态请求;所述查询状态请求为所述子事务执行前发送的查询主事务执行状态的请求;
第四响应模块,用于响应于所述查询状态请求,向所述子事务发送第一反馈信息,所述第一反馈信息用于向所述子事务反馈最新的主事务执行状态;所述第一反馈信息包括:主事务标识信息以及主事务执行状态。
依据本发明的另一个方面,提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上任一项所述的处理方法。
依据本发明的另一个方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的处理方法。
上述方法通过对事件内部的事务按照逻辑进行从属区分,且通过顺序执行的传递方法保证事件内部数据有序处理,该方法实施成本低,能够有效解决数据一致性问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于无服务架构的分布式事务处理方法流程图;
图2为本发明实施例中一种基于无服务架构的分布式事务处理方法流程图;
图3为本发明实施例中一种基于无服务架构的分布式事务处理方法流程图;
图4为本发明实施例中一种基于无服务架构的分布式事务处理装置结构示意图;
图5为本发明实施例中一种基于无服务架构的分布式事务处理装置结构示意图;
图6为本发明实施例中一种基于无服务架构的分布式事务处理装置结构示意图;
图7为本发明实施例中一种基于无服务架构的分布式事务处理方法时序图;
图8为本发明实施例中一种计算设备结构示意图。
【附图标记说明】
401、第一接收模块;
402、第一响应模块;
403、第二接收模块;
404、第一执行模块;
501、第三接收模块;
502、第二响应模块;
503、第一反馈模块;
601、第四接收模块;
602、第三响应模块;
603、第五接收模块;
604、第六接收模块;
605、第四响应模块;
802、计算设备;
804、处理设备;
806、存储资源;
808、驱动机构;
810、输入/输出模块;
812、输入设备;
814、输出设备;
816、呈现设备;
818、图形用户接口;
820、网络接口;
822、通信链路;
824、通信总线。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
术语解释
ACID事务:原子性(Atomicity),原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生;一致性(Consistency),事务前后数据的完整性必须保持一致;隔离性(Isolation),事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离;持久性(Durability),持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响;
BASE理论:BASE理论由eBay的架构师Dan Pritchett提出,BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性,应用应该可以采用合适的方式达到最终一致性。BASE是指基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eventual Consistency);
回滚:事务的逆向操作,即补偿操作或称为回退。
发明构思
传统的分布式事务为ACID事务,即需要满足原子性、一致性、隔离性和持久性。但是基于无服务架构下事务管理的特点,传统的ACID事务已无法满足该架构下的事务管理需求。因此在无服务架构下,事务管理就需要遵循BASE理论,并且需要新的方法解决分步式事务数据的一致性问题。
鉴于此,本发明实施例提供一种基于无服务架构的分布式事务处理方法,在无服务架构下,一个事件可看作一个函数群组,其中一个事件包含一个主事务以及从属于主事务的一个或多个子事务,即主事务和子事务都是该事件内部的函数,每个函数分别成为一个独立的程序单元,意味着主事务和子事务都可以独立运行。但它们的执行要通过平台端触发,平台端可以为云函数平台,所谓云函数平台是一种无服务器执行环境。当用户进行事件操作时,云函数平台会接收到一个触发事件请求,并根据该请求运行代码。在本发明实施例中,既包括主事务端,也包括子事务端,主事务端设置主事务标识信息并用于执行主事务,子事务端设置子事务标识信息并用于执行子事务。主事务端与子事务端之间通过平台端来传递消息。因此本发明实施例可以通过云函数平台实现分布式事务处理。
如图1所示,该分布式事务处理方法在子事务端执行,所述方法包括:
步骤101,接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的。具体的,所述事件处理请求为请求处理第一事件,该第一事件中既包含有主事务,又包含有从属于主事务的子事务,主事务和子事务均是独立处理的。
步骤102,响应于所述事件处理请求,并向平台端发送查询状态请求以查询主事务执行状态。子事务端接收到事件处理请求后,并不直接处理该第一事件中的子事务,而是先向平台端查询主事务的执行状态并根据主事务的执行状态确定子事务的执行情况。该执行情况包括:执行起始时间、执行方式等。
步骤103,接收所述平台端根据所述查询状态请求发送的第一反馈信息;所述第一反馈信息包括:主事务标识信息以及主事务执行状态。平台端在接收到子事务端的查询状态请求后,会基于最新的主事务执行状态进行反馈。该最新的主事务执行状态可以由主事务端在执行主事务过程中主动发送,也可以由平台端发起查询请求并由主事务端被动反馈。通常情况下,当主事务的执行状态达到某一临界节点时,例如,开始状态、失败状态、成功状态以及回滚状态,主事务端会主动向所述平台端发送其执行状态,以便平台端及时获取主事务最新的执行状态是否变化以及执行结果为失败、成功还是回滚。
步骤104,当所述第一反馈信息中主事务执行状态为成功状态时执行子事务;所述子事务从属于所述主事务。本发明实施例所述的方法,子事务的执行需要基于主事务执行成功的基础上,即当主事务的执行状态为成功状态时,才会开始执行子事务,执行的先后顺序依据一个事件之间所有事务的从属关系进行安排,通常情况下,子事务与子事务之间不存在强关联关系,可以分别独立执行。
本发明上述实施例所述的方法通过对事件内部的事务按照逻辑进行从属区分,且通过顺序执行的传递方法保证事件内部数据有序处理,该方法实施成本低,能够有效解决数据一致性问题。
较佳的实施例中,当第一个事件处理请求所对应的事件尚未处理完毕时,又收到第二个事件处理请求,该第二个事件处理请求会单独执行,实现零管理水平缩放。
本发明实施例所述的一种基于无服务架构的分布式事务处理方法,较佳的,若只有一个子事务从属于主事务时,所述方法还包括:
当所述子事务执行完毕后,向所述平台端发送第一执行结果;所述第一执行结果用于所述平台端在子事务执行状态为失败状态时向所述主事务发送第二反馈信息以通知所述主事务执行回滚;所述第一执行结果包括:主事务标识信息、子事务标识信息以及子事务执行状态,所述第二反馈信息包括:子事务标识信息以及子事务执行状态。具体的实施例中,当从属于主事务的子事务执行失败时,子事务会携带者主事务标识信息以及其自身的子事务标识信息和子事务执行状态上报给平台端,由平台端根据子事务执行失败的执行状态主动向主事务端发送第二反馈信息,反馈子事务执行失败的结果,主事务在接收到其从属的子事务执行失败时执行回滚,以保证主事务与子事务间执行结果的一致性。
另一较佳的实施例中,还包括重试机制。即,当子事务第一次执行失败时,重新执行该子事务;当子事务在预定的重试次数内均失败时,向所述平台端发送第一执行结果,以令平台端通知所述主事务执行回滚。
若一个主事务下从属有至少两个子事务时,所述方法还包括:
当其中一个子事务执行失败时,通过第二反馈信息通知主事务以及其他子事务执行回滚。或者当该子事务在预定的重试次数内均失败时,向所述平台端发送第一执行结果,以令平台端通知所述主事务以及其他子事务执行回滚。
较佳的,当其中一个子事务执行失败时,向所述平台端发送第一执行结果;当平台端接收到所有子事务的执行结果后,再向所述主事务以及其他子事务发送第二反馈信息以通知所述主事务以及其他子事务执行回滚,即要保证包含主事务以及从属的子事务的这一组事务一致。
本发明实施例所述的一种基于无服务架构的分布式事务处理方法,较佳的,所述方法还包括:
所述第一执行结果还用于令所述平台端在所述子事务执行状态为成功状态时检查所述第一事件内的主事务及从属于所述主事务的全部子事务的处理结果是否为闭环状态,以及若为闭环状态时结束处理主事务及从属于所述主事务的全部子事务;所述闭环状态表征所述主事务及从属于所述主事务的全部子事务的执行状态均为成功状态。具体的,当子事务执行成功后,将其执行成功的状态反馈给平台端,由平台端核对主事务以及全部子事务的执行状态是否实现闭环,即是否均执行成功。若为闭环,则表示主事务以及子事务均执行成功,该事件处理完毕。
本发明实施例所述的一种基于无服务架构的分布式事务处理方法,较佳的,所述方法还包括:
具体的,事务状态分为以下几种:开始状态、成功状态、失败状态以及回滚状态。根据主事务的不同状态执行,子事务的执行过程也不同。
当所述主事务执行状态为失败状态时,等待执行或暂停执行所述子事务;即若主事务执行不成功,那么子事务执行的基础条件不满足,因而子事务处于不执行状态,例如,等待执行或暂停执行状态。直到收到主事务执行成功的通知后,再执行子事务。
当所述主事务执行状态为开始状态时,等待执行所述子事务,也就是说主事务开始执行时,尚未确定其是否执行成功,因而暂不执行子事务。
本发明实施例还提供一种基于无服务架构的分布式事务处理方法,应用于主事务端,如图2所示,所述方法包括:
步骤201,接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的。具体的,所述事件处理请求为请求处理第一事件,该第一事件中既包含有主事务,又包含有从属于主事务的子事务,主事务和子事务均是独立处理的。
步骤202,响应于所述事件处理请求,并向所述平台端发送启动执行通知并执行主事务,所述启动执行通知包括:主事务标识信息以及主事务执行状态;其中,所述启动执行通知中的主事务执行状态为开始状态。也就是说,当主事务开始执行时,会通知平台端,由平台端随时记录主事务的执行状态,以便当子事务端查询时,反馈给子事务端。以及当子事务端接收到主事务的执行状态为开始执行时,做好执行子事务的准备。
步骤203,当所述主事务执行完毕后,向所述平台端发送第二执行结果,所述第二执行结果用于当平台端接收子事务发送的查询状态请求时,由所述平台端根据所述第二执行结果向所述子事务发送第一反馈信息,以及当第一反馈信息中的主事务执行状态为成功状态时执行子事务;其中,所述子事务从属于所述主事务;所述第二执行结果包括:主事务标识信息及主事务执行状态。由于主事务是否执行成功是执行子事务的前提条件,因此在本步骤中,当主事务执行完毕后,无论成功与否,都需要将执行结果发送给平台端,以由平台端记录主事务的执行结果。一方面,当子事务端查询主事务的执行状态时,平台端向子事务端反馈主事务的执行结果;另一方面,当全部子事务执行完毕后,由平台端根据主事务的执行结果以及全部子事务的执行结果来判断所有的事务是否均已成功执行,以及根据判断结果闭环或者通知主事务执行回滚。
本发明实施例所述的一种基于无服务架构的分布式事务处理方法,较佳的,所述方法还包括:
接收所述平台端根据第一执行结果发送的第二反馈信息;所述第一执行结果包括:主事务标识信息、子事务标识信息以及子事务执行状态;所述第二反馈信息包括:子事务标识信以及子事务执行状态,所述第二反馈信息中的子事务执行状态为失败状态。在本实施例中,需要保证一组事务的一致性,子事务、子事务对应的主事务,及该主事务从属的其他子事务需要保持一致,因此无论主事务还是子事务,在执行完成后均需反馈执行结果,且子事务反馈执行结果时,还需携带其对应的主事务的标识信息,以便平台端进行后续信息传送。
响应于所述第二反馈信息以执行回滚,并向所述平台端发送第三执行结果,所述第三执行结果包括:主事务标识信息及主事务执行状态,所述第三执行结果中的主事务执行状态为回滚状态。即当如果任一子事务执行失败,那么该组事务中的已执行成功的主事务需要执行回滚,以回到未成功执行的状态,保证事件内部的一致性。
当然,若还存在从属于该主事务的其他子事务,也需要保证全部子事务一致,若其他任一子事务已经执行成功,也需要执行回滚,以便回到未成功执行前的状态。
本发明实施例还提供一种基于无服务架构的分布式事务处理方法,应用于平台端,如图3所示,所述方法包括:
步骤301,接收用户端发送的触发事件请求;该触发事件请求为用户端发送的请求处理第一事件,在本发明实施例中事件的处理必须通过平台端触发。
步骤302,响应于所述触发事件请求,分别向主事务以及子事务发送事件处理请求;所述子事务从属于所述主事务。由于第一事件中包含主事务,以及从属于主事务的一个或多个子事务,而主事务以及子事务均为独立执行的,因此平台端需要将事件处理请求同时发送给一个事件内部的全部事务,即一个主事务和其从属的全部子事务。
步骤303,接收所述主事务发送的第二执行结果,所述第二执行结果为所述主事务根据所述触发事件请求执行主事务结束后发送的通知,所述第二执行结果包括:主事务标识信息及主事务执行状态;由于主事务是否执行成功是执行子事务的前提条件,因此在本步骤中,当主事务执行完毕后,无论成功与否,都需要将执行结果发送给平台端,以由平台端记录主事务的执行结果。
步骤304,接收所述子事务根据所述触发事件请求发送的查询状态请求;所述查询状态请求为所述子事务执行前发送的查询主事务执行状态的请求。由于主事务在接收到事件处理请求后以及开始执行前,会向平台端发送启动执行通知以便平台端记录主事务已经开始执行的开始状态;当主事务执行完毕后,也会发送第二执行结果以反馈主事务的执行结果,当子事务端查询主事务的执行状态时,平台端向子事务端反馈主事务的执行结果。因此平台端根据主事务的执行情况随时记录着主事务的执行进展,子事务可以根据查询状态请求查询到主事务的最新执行情况。
步骤305,响应于所述查询状态请求,向所述子事务发送第一反馈信息,所述第一反馈信息用于向所述子事务反馈主事务执行状态;所述第一反馈信息包括:主事务标识信息以及主事务执行状态。
本发明实施例所述的一种基于无服务架构的分布式事务处理方法,较佳的,所述方法包括:
接收所述子事务发送的第一执行结果,所述第一执行结果包括:主事务标识信息、子事务标识信息以及子事务执行状态;
当所述第一执行结果中的子事务执行状态为失败状态时,向所述主事务和/或其他子事务发送第二反馈信息,所述第二反馈信息用于通知所述主事务和/或其他子事务执行回滚;所述第二反馈信息包括:该子事务标识信以及子事务执行状态,所述第二反馈信息中的子事务执行状态为失败状态。
具体的实施例中,若一个主事务下从属有一个子事务时,当从属于主事务的子事务执行失败时,需要另其对应的主事务执行回滚,以保证事务执行的一致性。
若一个主事务下从属有至少两个子事务时,当其中一个子事务执行失败时,通过第二反馈信息通知主事务和其他子事务执行回滚。或者当该子事务在预定的重试次数内均失败时,向所述平台端发送第一执行结果,以令平台端通知所述主事务和其他子事务执行回滚。
较佳的实施例中,平台端接收全部子事务的执行结果后,根据主事务的执行结果以及全部子事务的执行结果来判断所有的事务是否均已成功执行,当有任一子事务执行失败时,通知主事务及其他子事务执行回滚。
接收所述主事务和/或其他子事务发送的第三执行结果,所述第三执行结果包括:主事务标识信息及主事务执行状态和/或子事务标识信息及子事务执行状态,所述第三执行结果中的主事务执行状态和/或子事务执行状态为回滚状态。
本发明实施例所述的一种基于无服务架构的分布式事务处理方法,较佳的,所述方法还包括:
当所述第一执行结果中的子事务执行状态为成功状态时,检查所述第一事件内的主事务及从属于所述主事务的全部子事务的处理结果是否为闭环状态;所述闭环状态表征所述主事务及从属于所述主事务的全部子事务的执行状态均为成功状态;
若是,则结束处理主事务及从属于所述主事务的全部子事务。
本发明实施例还提供一种基于无服务架构的分布式事务处理装置,如图4所示,所述装置包括:
第一接收模块401,用于接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;
第一响应模块402,用于响应于所述事件处理请求,并向平台端发送查询状态请求以查询主事务执行状态;
第二接收模块403,用于接收所述平台端根据所述查询状态请求发送的第一反馈信息;所述第一反馈信息包括:主事务标识信息以及主事务执行状态;
第一执行模块404,用于当所述第一反馈信息中主事务执行状态为成功状态时执行子事务;所述子事务从属于所述主事务。
较佳的实施例中,所述装置还包括:
第二反馈模块,用于当所述子事务执行完毕后,向所述平台端发送第一执行结果;所述第一执行结果用于所述平台端在子事务执行状态为失败状态时向所述主事务和/或其他子事务发送第二反馈信息以通知所述主事务和/或其他子事务执行回滚;所述第一执行结果包括:主事务标识信息、该子事务的子事务标识信息以及子事务执行状态,所述第二反馈信息包括:该子事务的子事务标识信息以及子事务执行状态。
较佳的,所述第一执行结果还用于令所述平台端在所述子事务执行状态为成功状态时检查所述第一事件内的主事务及从属于所述主事务的全部子事务的处理结果是否为闭环状态,以及若为闭环状态时结束处理主事务及从属于所述主事务的全部子事务;所述闭环状态表征所述主事务及从属于所述主事务的全部子事务的执行状态均为成功状态。
本发明实施例还提供一种基于无服务架构的分布式事务处理装置,如图5所示,所述装置包括:
第三接收模块501,用于接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;
第二响应模块502,用于响应于所述事件处理请求,并向所述平台端发送启动执行通知并执行主事务,所述启动执行通知包括:主事务标识信息以及主事务执行状态;其中,所述启动执行通知中的主事务执行状态为开始状态;
第一反馈模块503,用于当所述主事务执行完毕后,向所述平台端发送第二执行结果,所述第二执行结果用于当平台端接收子事务发送的查询状态请求时,由所述平台端根据所述第二执行结果向所述子事务发送第一反馈信息,以及当第一反馈信息中的主事务执行状态为成功状态时执行子事务;其中,所述子事务从属于所述主事务;所述第二执行结果包括:主事务标识信息及主事务执行状态。
较佳的实施例中,所述装置还包括:
第七接收模块,用于接收所述平台端根据第一执行结果发送的第二反馈信息;所述第一执行结果包括:主事务标识信息、子事务标识信息以及子事务执行状态;所述第二反馈信息包括:子事务标识信以及子事务执行状态,所述第二反馈信息中的子事务执行状态为失败状态;
第三反馈模块,用于响应于所述第二反馈信息以执行回滚,并向所述平台端发送第三执行结果,所述第三执行结果包括:主事务标识信息及主事务执行状态,所述第三执行结果中的主事务执行状态为回滚状态。
本发明实施例还提供一种基于无服务架构的分布式事务处理装置,如图6所示,所述装置包括:
第四接收模块601,用于接收用户端发送的触发事件请求;
第三响应模块602,用于响应于所述触发事件请求,分别向主事务以及子事务发送事件处理请求所述子事务从属于所述主事务;
第五接收模块603,用于接收所述主事务发送的第二执行结果,所述第二执行结果为所述主事务根据所述触发事件请求执行主事务结束后发送的通知,所述第二执行结果包括:主事务标识信息及主事务执行状态;
第六接收模块604,用于接收所述子事务根据所述触发时间请求发送的查询状态请求;所述查询状态请求为所述子事务执行前发送的查询主事务执行状态的请求;
第四响应模块605,用于响应于所述查询状态请求,向所述子事务发送第一反馈信息,所述第一反馈信息用于向所述子事务反馈最新的主事务执行状态;所述第一反馈信息包括:主事务标识信息以及主事务执行状态。
较佳的,所述装置还包括:
第八接收模块,用于接收所述子事务发送的第一执行结果,所述第一执行结果包括:主事务标识信息、子事务标识信息以及子事务执行状态;
第四反馈模块,用于当所述第一执行结果中的子事务执行状态为失败状态时,向所述主事务和/或其他子事务发送第二反馈信息,所述第二反馈信息用于通知所述主事务和/或其他子事务执行回滚;所述第二反馈信息包括:该子事务的子事务标识信息以及子事务执行状态,所述第二反馈信息中的子事务执行状态为失败状态;
第九接收模块,用于接收所述主事务和/或其他子事务发送的第三执行结果,所述第三执行结果包括:主事务标识信息及主事务执行状态和/或其他子事务标识信息及子事务执行状态,所述第三执行结果中的主事务执行状态和/或子事务执行状态为回滚状态。
较佳的,所述装置还包括:
检查模块,用于当所述第一执行结果中的子事务执行状态为成功状态时,检查所述第一事件内的主事务及从属于所述主事务的全部子事务的处理结果是否为闭环状态;所述闭环状态表征所述主事务及从属于所述主事务的全部子事务的执行状态均为成功状态;
结束模块,用于若是,则结束处理主事务及从属于所述主事务的全部子事务。
下面以一具体的实施例对本发明的实现过程进行详细的描述。请参见图7所示的时序图,图7中,主事务A即为本发明中处理主事务A的主事务端,子事务B即为本发明中处理子事务B的子事务端,其相互之间通过云函数平台实现消息传递,最终保证数据一致性。其中,主事务A的任何操作和执行结果均记录到数据库A中,子事务B的任何操作和执行结果也记录在数据库B中。当主事务A开始执行时:
步骤1:主事务A开始执行并在数据库A中记录操作;
步骤2:将主事务A的主事务标识信息以及主事务执行状态反馈给云函数平台,由云函数平台进行记录;
步骤3:主事务A执行结束后将执行结果反馈给数据库A以记录;
步骤4:主事务A向云函数平台发送第二执行结果,即主事务标识信息以及主事务执行状态;
步骤5:子事务B通过云函数平台查询对应主事务A的执行状态,若查询到主事务A的执行状态为成功,则子事务B可以开始执行;
步骤6:子事务B开始执行并在数据库B中进行记录;
步骤7:子事务B执行结束后将其执行结果记录在数据库B;
步骤8:子事务B通过第一执行结果将主事务标识信息、子事务表示信息和子事务执行状态上传至云函数平台;
步骤9:云函数平台核对主事务A和子事务B的状态是否均为成功,若都是成功则闭环,若子事务B失败则通知主事务A;
步骤10:子事务B失败则通知主事务A执行回滚;
步骤11:主事务A执行回滚并在数据库A将状态改为回滚状态。
下面将以具体案例对本案的其中一实施例进行详细的展示。
案例背景:学生选课系统,学生选定课程后需要支付课程费用才能选课成功。
场景转化:选课系统选课和支付可以看做两个服务,即订单服务和课程服务。用户支付完成后,系统会将支付状态和订单状态保存在订单数据库中,由订单服务去维护订单数据库;而学生选课信息在课程数据库中,由课程服务去维护课程中心的数据。
为了保证两个分布式服务(订单服务和课程服务)共同完成一件事件即订单支付成功自动添加学生选课的需求,保证两个服务事务的一致性,可以使用本方案实现。
无服务架构下两个分布式事务需要在云函数平台运行,订单服务为主事务,课程服务为子事务;
订单服务端设置主事务ID,课程服务端设置子事务ID并记录订单服务的主事务ID;
订单服务开始执行,将主事务ID和开始状态上传至云函数平台;
待创建订单成功后,将订单状态写入数据库中,待用户支付订单后,将支付状态同步写入数据库中,同时将主事务ID和主事务执行状态上传云函数平台;
课程服务执行前先在云函数平台查询对应主事务的执行状态,若成功则执行;
课程服务将课程信息入库,执行后将主事务ID、子事务ID和子事务执行状态上传至云函数平台;
云函数平台核对主事务执行状态和子事务执行状态,若都为成功则闭环,完成课程选课;
若子事务执行状态为失败状态则通知主事务执行回滚,销毁订单并退款。
本发明上述实施例所述的方法和装置通过对事件内部的事务按照逻辑进行从属区分,且通过顺序执行的传递方法保证事件内部数据有序处理,该方法实施成本低,能够有效解决数据一致性问题。
本发明实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上任一项所述的处理方法。
如图8所示为本文实施例计算设备的结构示意图,计算设备802可以包括一个或多个处理设备804,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。计算设备802还可以包括任何存储资源806,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储资源806可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储资源都可以使用任何技术来存储信息。进一步地,任何存储资源可以提供信息的易失性或非易失性保留。进一步地,任何存储资源可以表示计算设备802的固定或可移除部件。在一种情况下,当处理设备804执行被存储在任何存储资源或存储资源的组合中的相关联的指令时,计算设备802可以执行相关联指令的任一操作。计算设备802还包括用于与任何存储资源交互的一个或多个驱动机构808,诸如硬盘驱动机构、光盘驱动机构等。
计算设备802还可以包括输入/输出模块810(I/O),其用于接收各种输入(经由输入设备812)和用于提供各种输出(经由输出设备814))。一个具体输出设备可以包括呈现设备816和相关联的图形用户接口(GUI)818。在其他实施例中,还可以不包括输入/输出模块810(I/O)、输入设备812以及输出设备814,仅作为网络中的一台计算设备。计算设备802还可以包括一个或多个网络接口820,其用于经由一个或多个通信链路822与其他设备交换数据。一个或多个通信总线824将上文所描述的部件耦合在一起。
通信链路822可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路822可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的处理方法。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
还应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种基于无服务架构的分布式事务处理方法,其特征在于,包括:
接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;
响应于所述事件处理请求,并向平台端发送查询状态请求以查询主事务执行状态;
接收所述平台端根据所述查询状态请求发送的第一反馈信息;所述第一反馈信息包括:主事务标识信息以及主事务执行状态;
当所述第一反馈信息中主事务执行状态为成功状态时执行子事务;所述子事务从属于所述主事务。
2.根据权利要求1所述的一种基于无服务架构的分布式事务处理方法,其特征在于,所述方法还包括:
当所述子事务执行完毕后,向所述平台端发送第一执行结果;所述第一执行结果用于所述平台端在子事务执行状态为失败状态时向所述主事务和/或其他子事务发送第二反馈信息以通知所述主事务和/或其他子事务执行回滚;所述第一执行结果包括:主事务标识信息、该子事务的子事务标识信息以及子事务执行状态,所述第二反馈信息包括:该子事务的子事务标识信息以及子事务执行状态。
3.根据权利要求2所述的一种基于无服务架构的分布式事务处理方法,其特征在于,所述方法还包括:
所述第一执行结果还用于令所述平台端在所述子事务执行状态为成功状态时检查第一事件内的主事务及从属于所述主事务的全部子事务的处理结果是否为闭环状态,以及若为闭环状态时结束处理主事务及从属于所述主事务的全部子事务;所述闭环状态表征所述主事务及从属于所述主事务的全部子事务的执行状态均为成功状态。
4.根据权利要求1所述的一种基于无服务架构的分布式事务处理方法,其特征在于,所述方法还包括:
当所述主事务执行状态为失败状态时,等待执行或暂停执行所述子事务;以及,
当所述主事务执行状态为开始状态时,等待执行所述子事务。
5.一种基于无服务架构的分布式事务处理方法,其特征在于,所述方法包括:
接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;
响应于所述事件处理请求,并向所述平台端发送启动执行通知并执行主事务,所述启动执行通知包括:主事务标识信息以及主事务执行状态;其中,所述启动执行通知中的主事务执行状态为开始状态;
当所述主事务执行完毕后,向所述平台端发送第二执行结果,所述第二执行结果用于当平台端接收子事务发送的查询状态请求时,由所述平台端根据所述第二执行结果向所述子事务发送第一反馈信息,以及当第一反馈信息中的主事务执行状态为成功状态时执行子事务;其中,所述子事务从属于所述主事务;所述第二执行结果包括:主事务标识信息及主事务执行状态。
6.根据权利要求5所述的一种基于无服务架构的分布式事务处理方法,其特征在于,所述方法还包括:
接收所述平台端根据第一执行结果发送的第二反馈信息;所述第一执行结果包括:主事务标识信息、子事务标识信息以及子事务执行状态;所述第二反馈信息包括:子事务标识信以及子事务执行状态,所述第二反馈信息中的子事务执行状态为失败状态;
响应于所述第二反馈信息以执行回滚,并向所述平台端发送第三执行结果,所述第三执行结果包括:主事务标识信息及主事务执行状态,所述第三执行结果中的主事务执行状态为回滚状态。
7.一种基于无服务架构的分布式事务处理方法,其特征在于,所述方法包括:
接收用户端发送的触发事件请求;
响应于所述触发事件请求,分别向主事务以及子事务发送事件处理请求;所述子事务从属于所述主事务;
接收所述主事务发送的第二执行结果,所述第二执行结果为所述主事务根据所述触发事件请求执行主事务结束后发送的通知,所述第二执行结果包括:主事务标识信息及主事务执行状态;
接收所述子事务根据所述触发事件请求发送的查询状态请求;所述查询状态请求为所述子事务执行前发送的查询主事务执行状态的请求;
响应于所述查询状态请求,向所述子事务发送第一反馈信息,所述第一反馈信息用于向所述子事务反馈主事务执行状态;所述第一反馈信息包括:主事务标识信息以及主事务执行状态。
8.根据权利要求7所述的一种基于无服务架构的分布式事务处理方法,其特征在于,所述方法包括:
接收所述子事务发送的第一执行结果,所述第一执行结果包括:主事务标识信息、子事务标识信息以及子事务执行状态;
当所述第一执行结果中的子事务执行状态为失败状态时,向所述主事务和/或其他子事务发送第二反馈信息,所述第二反馈信息用于通知所述主事务和/或其他子事务执行回滚;所述第二反馈信息包括:该子事务的子事务标识信息以及子事务执行状态,所述第二反馈信息中的子事务执行状态为失败状态;
接收所述主事务和/或其他子事务发送的第三执行结果,所述第三执行结果包括:主事务标识信息及主事务执行状态和/或其他子事务标识信息及子事务执行状态,所述第三执行结果中的主事务执行状态和/或子事务执行状态为回滚状态。
9.根据权利要求8所述的一种基于无服务架构的分布式事务处理方法,其特征在于,所述方法还包括:
当所述第一执行结果中的子事务执行状态为成功状态时,检查第一事件内的主事务及从属于所述主事务的全部子事务的处理结果是否为闭环状态;所述闭环状态表征所述主事务及从属于所述主事务的全部子事务的执行状态均为成功状态;
若是,则结束处理主事务及从属于所述主事务的全部子事务。
10.一种基于无服务架构的分布式事务处理装置,其特征在于,所述装置包括:
第一接收模块,用于接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;
第一响应模块,用于响应于所述事件处理请求,并向平台端发送查询状态请求以查询主事务执行状态;
第二接收模块,用于接收所述平台端根据所述查询状态请求发送的第一反馈信息;所述第一反馈信息包括:主事务标识信息以及主事务执行状态;
第一执行模块,用于当所述第一反馈信息中主事务执行状态为成功状态时执行子事务;所述子事务从属于所述主事务。
11.一种基于无服务架构的分布式事务处理装置,其特征在于,所述装置包括:
第三接收模块,用于接收平台端发送的事件处理请求;所述事件处理请求为平台端基于用户端发送的触发事件请求而生成的;
第二响应模块,用于响应于所述事件处理请求,并向所述平台端发送启动执行通知并执行主事务,所述启动执行通知包括:主事务标识信息以及主事务执行状态;其中,所述启动执行通知中的主事务执行状态为开始状态;
第一反馈模块,用于当所述主事务执行完毕后,向所述平台端发送第二执行结果,所述第二执行结果用于当平台端接收子事务发送的查询状态请求时,由所述平台端根据所述第二执行结果向所述子事务发送第一反馈信息,以及当第一反馈信息中的主事务执行状态为成功状态时执行子事务;其中,所述子事务从属于所述主事务;所述第二执行结果包括:主事务标识信息及主事务执行状态。
12.一种基于无服务架构的分布式事务处理装置,其特征在于,所述装置包括:
第四接收模块,用于接收用户端发送的触发事件请求;
第三响应模块,用于响应于所述触发事件请求,分别向主事务以及子事务发送事件处理请求所述子事务从属于所述主事务;
第五接收模块,用于接收所述主事务发送的第二执行结果,所述第二执行结果为所述主事务根据所述触发事件请求执行主事务结束后发送的通知,所述第二执行结果包括:主事务标识信息及主事务执行状态;
第六接收模块,用于接收所述子事务根据触发时间请求发送的查询状态请求;所述查询状态请求为所述子事务执行前发送的查询主事务执行状态的请求;
第四响应模块,用于响应于所述查询状态请求,向所述子事务发送第一反馈信息,所述第一反馈信息用于向所述子事务反馈最新的主事务执行状态;所述第一反馈信息包括:主事务标识信息以及主事务执行状态。
13.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的处理方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110423860.6A CN113051044A (zh) | 2021-04-20 | 2021-04-20 | 一种基于无服务架构的分布式事务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110423860.6A CN113051044A (zh) | 2021-04-20 | 2021-04-20 | 一种基于无服务架构的分布式事务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113051044A true CN113051044A (zh) | 2021-06-29 |
Family
ID=76519763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110423860.6A Pending CN113051044A (zh) | 2021-04-20 | 2021-04-20 | 一种基于无服务架构的分布式事务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051044A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495205A (zh) * | 2022-11-01 | 2022-12-20 | 武汉大数据产业发展有限公司 | 一种基于分布式事务锁实现数据一致性的方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459919A (zh) * | 2018-03-29 | 2018-08-28 | 中信百信银行股份有限公司 | 一种分布式事务处理方法及装置 |
CN108845878A (zh) * | 2018-05-08 | 2018-11-20 | 南京理工大学 | 基于无服务器计算的大数据处理方法及装置 |
CN109885382A (zh) * | 2019-01-16 | 2019-06-14 | 深圳壹账通智能科技有限公司 | 跨系统分布式事务处理方法和分布式事务处理的系统 |
CN110058950A (zh) * | 2019-04-17 | 2019-07-26 | 上海沄界信息科技有限公司 | 基于无服务器架构的分布式云计算方法及设备 |
CN110383764A (zh) * | 2016-12-16 | 2019-10-25 | 华为技术有限公司 | 无服务器系统中使用历史数据处理事件的系统和方法 |
CN111543037A (zh) * | 2017-12-29 | 2020-08-14 | 华为技术有限公司 | 事件驱动的无服务器函数编排 |
CN112134918A (zh) * | 2020-08-04 | 2020-12-25 | 杭州未名信科科技有限公司 | 云服务中函数与触发器匹配状态的检测及处理方法 |
-
2021
- 2021-04-20 CN CN202110423860.6A patent/CN113051044A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110383764A (zh) * | 2016-12-16 | 2019-10-25 | 华为技术有限公司 | 无服务器系统中使用历史数据处理事件的系统和方法 |
CN111543037A (zh) * | 2017-12-29 | 2020-08-14 | 华为技术有限公司 | 事件驱动的无服务器函数编排 |
CN108459919A (zh) * | 2018-03-29 | 2018-08-28 | 中信百信银行股份有限公司 | 一种分布式事务处理方法及装置 |
CN108845878A (zh) * | 2018-05-08 | 2018-11-20 | 南京理工大学 | 基于无服务器计算的大数据处理方法及装置 |
CN109885382A (zh) * | 2019-01-16 | 2019-06-14 | 深圳壹账通智能科技有限公司 | 跨系统分布式事务处理方法和分布式事务处理的系统 |
CN110058950A (zh) * | 2019-04-17 | 2019-07-26 | 上海沄界信息科技有限公司 | 基于无服务器架构的分布式云计算方法及设备 |
CN112134918A (zh) * | 2020-08-04 | 2020-12-25 | 杭州未名信科科技有限公司 | 云服务中函数与触发器匹配状态的检测及处理方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495205A (zh) * | 2022-11-01 | 2022-12-20 | 武汉大数据产业发展有限公司 | 一种基于分布式事务锁实现数据一致性的方法和装置 |
CN115495205B (zh) * | 2022-11-01 | 2023-03-14 | 武汉大数据产业发展有限公司 | 一种基于分布式事务锁实现数据一致性的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101863398B1 (ko) | 다중-서버 예약 시스템 상의 동기화 메커니즘 시스템 및 방법 | |
WO2018103318A1 (zh) | 分布式事务处理方法和系统 | |
US6769003B2 (en) | Parallel logging method for transaction processing system | |
US6513056B1 (en) | System and method for efficiently synchronizing cache and persistant data in an object oriented transaction processing system | |
CN110990182A (zh) | 事务处理方法、装置、设备及存储介质 | |
CN104685852A (zh) | 用于使用请求的小批处理的系统和方法 | |
CN101420391A (zh) | 由触发器子系统提供专用及基于标准触发器的系统和方法 | |
CN112039970B (zh) | 一种分布式业务锁服务方法、服务端、系统及存储介质 | |
CN109144748B (zh) | 一种服务器、分布式服务器集群及其状态驱动方法 | |
CN110888718A (zh) | 分布式事务的实现方法及装置 | |
WO2023082992A1 (zh) | 数据处理方法以及系统 | |
CN101917394A (zh) | 在手机设备上进行数据共享的中间件系统及工作方法 | |
US6138169A (en) | System and method for creating an object oriented transaction service that achieves interoperability with encina procedural transactions | |
CN113051044A (zh) | 一种基于无服务架构的分布式事务处理方法及装置 | |
WO2004010284A2 (en) | Asynchronous messaging in storage area network | |
WO2023186154A1 (zh) | 数据传输系统以及方法 | |
CN111143041A (zh) | 一种数据一致性方法、分布式协调器及中央协调器 | |
JPH0778775B2 (ja) | アプリケーション・プログラム間における情報交換システム及び方法 | |
JP2007265043A (ja) | スケジューラプログラム、サーバシステム、スケジューラ装置 | |
CN109901933B (zh) | 业务系统的操作方法及装置、存储介质、电子装置 | |
CN113191901A (zh) | 一种交易业务处理方法、装置、设备和存储介质 | |
CN117478504B (zh) | 信息传输方法、装置、终端设备以及存储介质 | |
CN112596801B (zh) | 事务处理方法、装置、设备、存储介质、数据库 | |
CN112650561A (zh) | 事务管理方法、系统、网络设备和可读存储介质 | |
CN101488134A (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 |