CN113971075A - 事务和消息的一致性实现方法、装置、设备及存储介质 - Google Patents
事务和消息的一致性实现方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113971075A CN113971075A CN202111268278.3A CN202111268278A CN113971075A CN 113971075 A CN113971075 A CN 113971075A CN 202111268278 A CN202111268278 A CN 202111268278A CN 113971075 A CN113971075 A CN 113971075A
- Authority
- CN
- China
- Prior art keywords
- transaction
- execution
- order data
- rollback
- message
- 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
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- 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/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及大数据技术领域,公开了一种事务和消息的一致性实现方法、装置、设备及存储介质。本方法包括:根据接收的交易订单数据生成事务消息表,将事务消息表写入消息中间件的预设节点中存储;调取本地事务执行脚本执行从节点中提取出的订单数据,生成本地事务日志;解析本地事务日志中记录的交易订单数据的第一执行状态和本地事务执行脚本的第二执行状态;若第一执行状态异常且对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;将事务日志发送至事务展示页面进行展示。解决了本地事务和消息的最终一致性问题。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种本地事务和消息一致性的实现方法、装置、设备及存储介质。
背景技术
微服务架构中常常涉及到本地服务和消息的最终一致性问题,既保证本地事务执行成功,同时又保证消息发送成功;或本地事务执行不成功时,同时保证消息分送不成功。
现在主要流行的两中解决方案:自己代码手动实现本地事务和消息的最终一致性。即代码执行本地事务后,保存发送的消息入数据库,通过定时任务手动发送,同时还要保证不多发不漏发以及幂等操作,可支持多消息的事务。主要缺点是要手动将消息入库,定时任务锁表锁行去主动发送消息,代码量大,逻辑比较复杂。定时任务频繁查找更新表,影响一定性能;业内支持事务消息的RocketMQ,相当于二次提交的解决方案。然而该方案不符合常规代码设计规范,RocketMQ是先发送消息,消息发送成功后,在回调中执行本地事务,与常规逻辑不符。其次,RocketMQ支持一本地事务,一消息组合逻辑。无法支持一本地事务多消息模式。因此如何通过简化代码,解决本地事务和消息的最终一致性问题成了本领域技术人员需要解决的问题。
发明内容
本发明的主要目的在于通过简化代码,解决本地事务和消息的最终一致性的技术问题。
本发明第一方面提供了一种事务和消息的一致性实现方法,包括:接收交易订单数据,根据所述交易订单数据生成事务消息表;将所述事务消息表写入预设消息中间件,并将所述消息中间件发送至对应的节点中存储;从所述节点中提取出所述交易订单数据,调取本地事务执行脚本执行所述交易订单数据,生成本地事务日志;解析所述本地事务日志中记录的执行所述交易订单数据的第一执行状态和执行所述本地事务执行脚本的第二执行状态;若所述第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据所述回滚逻辑对所述交易订单数据执行回滚操作;若所述第二执行状态为执行成功,则确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;在所述交易订单数据执行结束后,将所述事务日志发送至事务展示页面进行展示。
可选地,在本发明第一方面的第一种实现方式中,所述将所述事务消息表写入预设消息中间件,并将所述消息中间件发送至对应的节点中存储包括:定时扫描所述事务消息表,若所述事务消息表中包含所述交易订单数据,则将所述交易订单数据写入所述消息中间件中。
可选地,在本发明第一方面的第二种实现方式中,在所述从所述节点中提取出所述交易订单数据,调取本地事务执行脚本执行所述交易订单数据,生成本地事务日志之前,还包括:确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;接收所述事务指令和所述事务执行内容,调取事务执行脚本。
可选地,在本发明第一方面的第三种实现方式中,所述确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***包括:通过事务输入页面接收用户的事务处理请求,获取用户输入的事务,其中,所述事务包括事务指令、事务执行内容;筛选所述事务中的关键词;基于预设资源管理***数据库对所述关键词进行搜索,得到关键词搜索结果。
可选地,在本发明第一方面的第四种实现方式中,所述若所述第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据所述回滚逻辑对所述交易订单数据执行回滚操作包括:接收所述交易订单对应执行请求,启动与所述交易订单对应执行请求对应的分布式的工作流引擎;根据所述执行请求对应的信息,执行所述工作流引擎中各个服务单元对应的工作流,并对所述服务单元对应的执行状态进行检测;若所述执行状态为异常状态,且处于所述异常状态的服务单元存在回滚逻辑,则根据所述回滚逻辑执行回滚操作,以重新根据所述订单执行请求对应信息执行处于所述异常状态的服务单元对应的工作流。
可选地,在本发明第一方面的第五种实现方式中,所述根据所述回滚逻辑执行回滚操作,以重新根据所述订单执行请求对应信息执行处于所述异常状态的服务单元对应的工作流包括:若所述执行状态为异常状态,且处于所述异常状态的服务单元存在回滚逻辑,则根据所述回滚逻辑执行回滚操作,以重新根据所述订单执行请求对应信息执行处于所述异常状态的服务单元对应的工作流;若确定所述回滚逻辑的回滚类型为第一类型,则根据所述回滚逻辑回滚到所述工作流引擎的第一个服务单元中,以根据所述交易订单执行请求对应信息重新执行处于所述异常状态的服务单元对应的工作流;若确定所述回滚逻辑的回滚类型为第二类型,则根据所述回滚逻辑确定所述工作流引擎中的执行服务单元,并回滚到所述执行服务单元中,以根据所述交易订单执行请求对应信息重新执行处于所述异常状态的服务单元对应的工作流。
可选地,在本发明第一方面的第六种实现方式中,所述将所述本地事务的事务执行成功结果反馈至预设资源管理***包括:调取预设分布式应用协调程序,通过所述分布式应用协调程序与所述分布式发布订阅消息***建立连接;所述资源管理***将所述事务日志发送至预设分布式发布订阅消息***;基于所述分布式发布订阅消息***调取超文本预处理脚本,并根据所述超文本预处理脚本从所述事务日志中获取事务处理返回值,当获取的所述返回值为1时,判断为所述事务执行成功,将执行成功的结果反馈至预设资源管理***。
本发明第二方面提供了一种事务和消息的一致性实现装置,包括:接收模块,用于接收交易订单数据,根据所述交易订单数据生成事务消息表;写入模块,用于将所述事务消息表写入预设消息中间件,并将所述消息中间件发送至对应的节点中存储;生成模块,用于从所述节点中提取出所述交易订单数据,调取本地事务执行脚本执行所述交易订单数据,生成本地事务日志;解析模块,用于解析所述本地事务日志中记录的执行所述交易订单数据的第一执行状态和执行所述本地事务执行脚本的第二执行状态;回滚模块,用于若所述第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据所述回滚逻辑对所述交易订单数据执行回滚操作;反馈模块,用于若所述第二执行状态为执行成功,则确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;发送模块,用于在所述交易订单数据执行结束后,将所述事务日志发送至事务展示页面进行展示。
可选地,在本发明第二方面的第一种实现方式中,所述写入模块具体用于:定时扫描所述事务消息表,若所述事务消息表中包含所述交易订单数据,则将所述交易订单数据写入所述消息中间件中。
可选地,在本发明第二方面的第二种实现方式中,所述事务和消息的一致性实现装置还包括:确定模块,用于确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;调取模块,用于接收所述事务指令和所述事务执行内容,调取事务执行脚本。
可选地,在本发明第二方面的第三种实现方式中,所述确定模块具体用于:通过事务输入页面接收用户的事务处理请求,获取用户输入的事务,其中,所述事务包括事务指令、事务执行内容;筛选所述事务中的关键词;基于预设资源管理***数据库对所述关键词进行搜索,得到关键词搜索结果。
可选地,在本发明第二方面的第四种实现方式中,所述回滚模块包括:接收单元,用于接收所述交易订单对应执行请求,启动与所述交易订单对应执行请求对应的分布式的工作流引擎;检测单元,用于根据所述执行请求对应的信息,执行所述工作流引擎中各个服务单元对应的工作流,并对所述服务单元对应的执行状态进行检测;回滚单元,用于若所述执行状态为异常状态,且处于所述异常状态的服务单元存在回滚逻辑,则根据所述回滚逻辑执行回滚操作,以重新根据所述订单执行请求对应信息执行处于所述异常状态的服务单元对应的工作流。
可选地,在本发明第二方面的第五种实现方式中,所述回滚单元具体用于:若所述执行状态为异常状态,且处于所述异常状态的服务单元存在回滚逻辑,则根据所述回滚逻辑执行回滚操作,以重新根据所述订单执行请求对应信息执行处于所述异常状态的服务单元对应的工作流;若确定所述回滚逻辑的回滚类型为第一类型,则根据所述回滚逻辑回滚到所述工作流引擎的第一个服务单元中,以根据所述交易订单执行请求对应信息重新执行处于所述异常状态的服务单元对应的工作流;若确定所述回滚逻辑的回滚类型为第二类型,则根据所述回滚逻辑确定所述工作流引擎中的执行服务单元,并回滚到所述执行服务单元中,以根据所述交易订单执行请求对应信息重新执行处于所述异常状态的服务单元对应的工作流。
可选地,在本发明第二方面的第六种实现方式中,所述反馈模块具体用于:调取预设分布式应用协调程序,通过所述分布式应用协调程序与所述分布式发布订阅消息***建立连接;所述资源管理***将所述事务日志发送至预设分布式发布订阅消息***;基于所述分布式发布订阅消息***调取超文本预处理脚本,并根据所述超文本预处理脚本从所述事务日志中获取事务处理返回值,当获取的所述返回值为1时,判断为所述事务执行成功,将执行成功的结果反馈至预设资源管理***。
本发明第三方面提供了一种事务和消息的一致性实现设备,包括:存储器和至少一个处理器,所述存储器中存储有计算机程序,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述计算机程序,以使得所述事务和消息的一致性实现设备执行上述的事务和消息的一致性实现方法的步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述的事务和消息的一致性实现方法的步骤。
本发明提供的技术方案中,通过根据接收的交易订单数据生成事务消息表,将事务消息表写入消息中间件的预设节点中存储;调取本地事务执行脚本执行从节点中提取出的交易订单数据,生成本地事务日志;解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。本发明通过对本地事务执行状态的逻辑回滚,解决了本地事务和消息的最终一致性问题。
附图说明
图1为本发明事务和消息的一致性实现方法的第一个实施例示意图;
图2为本发明事务和消息的一致性实现方法的第二个实施例示意图;
图3为本发明事务和消息的一致性实现方法的第三个实施例示意图;
图4为本发明事务和消息的一致性实现方法的第四个实施例示意图;
图5为本发明事务和消息的一致性实现方法的第五个实施例示意图;
图6为本发明事务和消息的一致性实现装置的第一个实施例示意图;
图7为本发明事务和消息的一致性实现装置的第二个实施例示意图;
图8为本发明事务和消息的一致性实现设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种事务和消息的一致性实现方法、装置、设备及存储介质,先通过根据接收的交易订单数据生成事务消息表,将事务消息表写入消息中间件的预设节点中存储;调取本地事务执行脚本执行从节点中提取出的交易订单数据,生成本地事务日志;解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。解决了本地事务和消息的最终一致性问题。
本发明的说明书和权利要求书及上述附中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中事务和消息的一致性实现方法的第一个实施例包括:
101、接收交易订单数据,根据交易订单数据生成事务消息表;
本实施例中,用户在电子商务网站下单后,线上销售平台会向数据库发送用户下单的订单数据,数据库***在接收到来自一个或多个线上销售平台发送的订单数据后,将订单数据写入事务消息表中,事务消息表中的订单数据的顺序可以按照订单数据中的下单时间排列,从而便于依据事务消息表处理库存。
102、将事务消息表写入预设消息中间件,并将消息中间件发送至对应的节点中存储;
本实施例中,消息中间件(Message Oriented Middleware,MOM,也称为面向消息的中间件)技术,提供了以松散耦合的灵活方式进行消息传递的一种中间件机制。MOM能够实现在不同平台之间的通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同。目前主流的消息中间件产品包括国际商业机器公司(InternationalBusiness MachinesCorporation,IBM)的MQ Series,东亚银行(Bank of East Asia,BEA)的MessageQ和太阳公司(Sun)的Java消息服务(Java Message Service,JMS)等。MOM包括基于存储和转发的应用之间的异步消息传递或同步消息传递。本申请中的消息中间件可以包括异步消息传递。在异步消息传递中,各应用***之间彼此不直接通信,而是与作为中介的消息中间件服务器通信。
本发明中可以采用消息中间件MQ,将事务消息表中的订单数据写入消息中间件MQ中,以便消息中间件MQ向相关***中转发消息。
进一步地,通过消息中间件MQ向与订单数据相关的至少一个节点中发送订单数据,订单数据中通常包含多种数据,以订单数据中包含下单商品、下单商品数量、预计使用的优惠券、需支付的金额等,若想保证用户下单的商品一定能够按照订单数据中的需支付的金额购买到,那么在用户下单后需要至少保证以下两点:第一,库存***中能够预留对应数量的商品;第二,优惠券***中能够预留预计使用的优惠券,只有满足了以上两点,才能保证用户能够买到足够数量的商品,且支付的金额与订单数据中对应的金额相符。因此,在消息中间件向订单数据相关的至少一个节点发送订单数据后,这里的至少一个节点可以包括库存***和优惠券***,该节点需根据订单数据执行本地事务,例如预留对应数量的商品库存、预留相应的优惠券,并且在至少一个节点执行本地事务成功后会向消息中间件反馈执行成功回执信息。
103、从节点中提取出交易订单数据,调取本地事务执行脚本执行交易订单数据,生成本地事务日志;
本实施例中,根据交易订单数据和预设事务执行脚本执行本地事务,通过执行脚本执行事务,将执行结果生成事务日志,记录事务处理的详细情况。通过生成事务日志,详细记录事务处理的过程,避免了事务处理出现问题时无法追溯的情况,便于追寻,保障了事务信息的安全。
104、解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;
本实施例中,在启动订单执行请求对应的工作流引擎后,获取订单执行请求对应的信息,并根据订单执行请求对应的信息执行工作流引擎中各个服务单元对应的工作流。在执行工作流引擎中各个服务单元对应的工作流后,检测各个服务单元对应的执行状态。订单执行请求对应的信息根据订单执行请求类型不同而不同,如当订单执行请求为在网络中购买商品时,对应的信息为所购买商品的商品名称、购买时间、商品金额、用户账户和商家账户等。
105、若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;
本实施例中,执行状态分别为运行状态、成功状态、等待状态和异常状态,每一种执行状态都存在对应的状态标识,因此,通过状态标识即可确定各个服务单元对应的执行状态。需要说明的是,当正在执行某个服务单元对应的工作流,该服务单元对应的执行状态为运行状态;当某个服务单元的工作流成功执行后,该服务单元对应的执行状态为成功状态;当某个服务单元正在等待其它服务单元发送执行消息时,该服务单元对应的执行状态为等待状态,其中,其它服务单元可为同一个工作流引擎中的服务单元,也可为不同工作流引擎中的服务单元;当某个服务单元的工作流执行失败后,该服务单元对应的执行状态为异常状态。
需要说明的是,在工作流引擎中,每个服务单元都存在对应的执行ID,以及存在工作流引擎中的排列序号,根据该排列序号可确定该服务单元在工作流引擎中排列的先后顺序。在执行工作流引擎服务单元对应的工作流后,会在存储器中存储该服务单元工作流的执行信息,以及该订单执行请求对应订单信息。其中,执行信息包括但不限于状态标识、执行ID、该服务单元在工作流引擎中的排列序号、执行日期和执行时长。订单信息包括但不限于该订单执行请求对应订单的来源渠道、接收该订单执行请求的接收日期、该订单的交易日期、交易时间、业务类型和订单对应的产品编码。
本实施例中,回滚操作是指对没有提交的事务而又写入数据文件而言的,把没有提交的数据进行回滚。如果回滚段不存在没有提交的数据则会根据redo log的内容在前滚阶段生成回滚段。
106、若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
超文本预处理脚本是一种通用开源脚本语言,主要适用于网页开发领域。本步骤主要是通过返回值判断事务处理成功情况下如何将执行成功结果反馈至资源管理***进行记录。
本实施例采用分布式发布订阅消息***,具备实时获取消息并进行处理的功能,可以有效完成事务信息的反馈和处理;采用分布式应用协调程序简单易用,接口和性能高效、功能稳定;采用超文本预处理脚本,执行效率高,同时可以加密和优化,代码运行速度快且安全高效。
107、在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。
本实施例中,判断事务结束:事务发送***调用事务日志,当事务日志中包括事务执行成功结果或不可执行原因时,判断事务执行结束。首先,展示事务日志:事务发送***将所述事务日志发送至事务展示页面进行展示,保障所述目标事务的最终一致性。
本步骤是在事务已经结束的情况下将事务展示,用于参考,便于后续采取相关措施或分析事务处理过程。
本实施例中,将事务日志有效展示处理,为用户判断事务和分析事务执行过程提供了依据,便于提升、优化后续事务处理的效率。
本发明实施例中,通过根据接收的交易订单数据生成事务消息表,将事务消息表写入消息中间件的预设节点中存储;调取本地事务执行脚本执行从节点中提取出的交易订单数据,生成本地事务日志;解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。解决了本地事务和消息的最终一致性问题。
请参阅图2,本发明实施例中事务和消息的一致性实现方法的第二个实施例包括:
201、接收交易订单数据,根据交易订单数据生成事务消息表;
202、定时扫描所述事务消息表,若事务消息表中包含交易订单数据,则将交易订单数据写入消息中间件中;
本实施例中,定时扫描事务消息表,如果事务消息表中存在订单数据,则将订单数据写入消息中间件MQ中,以便通过消息中间件MQ向其他***中传输,通过定时扫描的方式可以保证消息发送的可靠性。
203、确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
本实施例中,通过获取用户的事务处理请求,将用户输入的事务进行匹配,完成事务处理与资源管理***的匹配,并将匹配后事务发送至对应资源管理***。
本步骤采用关键词提取算法,获取事务中的关键词,具体可选用基于语义的统计语言模型、基于朴素贝叶斯模型的关键词提取算法。其中,基于语义的统计语言模型是一种能够在全面把握所有文本的中心思想的基础上,提取出若干个代表文本语义内容的词汇或短语,相关结果可用于精化阅读、语义查询和快速匹配等;基于朴素贝叶斯模型的关键词提取算法是通过训练过程获得朴素贝叶斯模型中的各个参数,然后以之为基础,在测试过程完成关键词提取。
本实施例采用提取关键词将事务对应事务管理***,完成事务与资源管理***的匹配,避免资源利用的混乱,合理利用资源,同时采用的关键词提取算法相对于传统的提取算法,提取更为准确,而且可灵活地增加表征词语重要性的特征项,具有更好的可扩展性。
204、接收事务指令和事务执行内容,调取事务执行脚本;
本实施例中,依据所述事务指令执行所述事务执行内容,所述资源管理***将所述事务执行脚本执行得到的执行结果生成事务日志。本步骤主要是通过执行脚本执行事务,将执行结果生成事务日志,记录事务处理的详细情况。
本实施例通过生成事务日志,详细记录事务处理的过程,避免了事务处理出现问题时无法追溯的情况,便于追寻,保障了事务信息的安全。
205、从节点中提取出交易订单数据,调取本地事务执行脚本执行交易订单数据,生成本地事务日志;
206、解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;
207、若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;
208、若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
209、在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。
本实施例中步骤201、205-209与第一实施例中的步骤101、103-107类似,此处不再赘述。
本发明实施例中,通过根据接收的交易订单数据生成事务消息表,将事务消息表写入消息中间件的预设节点中存储;调取本地事务执行脚本执行从节点中提取出的交易订单数据,生成本地事务日志;解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。解决了本地事务和消息的最终一致性问题。
请参阅图3,本发明实施例中事务和消息的一致性实现方法的第三个实施例包括:
301、接收交易订单数据,根据交易订单数据生成事务消息表;
302、将事务消息表写入预设消息中间件,并将消息中间件发送至对应的节点中存储;
303、通过事务输入页面接收用户的事务处理请求,获取用户输入的事务,其中,事务包括事务指令、事务执行内容;
本实施例中,通过获取用户的事务处理请求,将用户输入的事务进行匹配,完成事务处理与资源管理***的匹配,并将匹配后事务发送至对应资源管理***。
304、筛选事务中的关键词;
本实施例中,关键词提取算法,获取事务中的关键词,具体可选用基于语义的统计语言模型、基于朴素贝叶斯模型的关键词提取算法。
305、确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
本实施例中,采用提取关键词将事务对应事务管理***,完成事务与资源管理***的匹配,避免资源利用的混乱,合理利用资源,同时采用的关键词提取算法相对于传统的提取算法,提取更为准确,而且可灵活地增加表征词语重要性的特征项,具有更好的可扩展性。
306、接收事务指令和事务执行内容,调取事务执行脚本;
307、从节点中提取出交易订单数据,调取本地事务执行脚本执行交易订单数据,生成本地事务日志;
308、解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;
309、若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;
310、若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
311、在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。
本实施例中步骤301-302、307-311与第一实施例中的步骤101-102、103-107类似,此处不再赘述。
本发明实施例中,通过根据接收的交易订单数据生成事务消息表,将事务消息表写入消息中间件的预设节点中存储;调取本地事务执行脚本执行从节点中提取出的交易订单数据,生成本地事务日志;解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。解决了本地事务和消息的最终一致性问题。
请参阅图4,本发明实施例中事务和消息的一致性实现方法的第四个实施例包括:
401、接收交易订单数据,根据交易订单数据生成事务消息表;
402、将事务消息表写入预设消息中间件,并将消息中间件发送至对应的节点中存储;
403、从节点中提取出交易订单数据,调取本地事务执行脚本执行交易订单数据,生成本地事务日志;
404、接收交易订单对应执行请求,启动与交易订单对应执行请求对应的分布式的工作流引擎;
本实施例中,接收交易订单对应执行请求,启动与交易订单对应执行请求对应的分布式的工作流引擎。
405、根据执行请求对应的信息,执行工作流引擎中各个服务单元对应的工作流,并对服务单元对应的执行状态进行检测;
本实施例中,具体地,在根据订单执行请求对应的信息执行工作流引擎中各个服务单元对应的工作流过程中,检测各个服务单元是否存在对应的预设条件。如若某个订单执行请求对应的工作流引擎中,存在扣款服务单元,则对应的执行条件可设置为用户账户余额应大于或者等于所扣款金额。在根据订单执行请求对应的信息执行工作流引擎中各个服务单元对应的工作流后,得到执行结果。需要说明的是,不同的服务单元对应的预设条件可能不一样。
若检测到服务单元存在对应的预设条件,则判断订单执行请求对应的信息是否满足预设条件。如检测订单执行请求中用户账户余额是否大于或者等于所扣款金额。若检测到订单执行请求对应的信息未满足预设条件,则确定服务单元对应的执行状态为异常状态。
若检测到订单执行请求对应的信息满足预设条件或服务单元未存在对应的预设条件,则根据执行结果确定服务单元对应的执行状态。具体地,若执行结果为成功执行对应服务单元的工作流,则对应的执行状态为成功状态;若执行结果为未能成功执行对应服务单元的工作流,则对应执行状态为异常状态;若执行结果为正在执行对应服务单元的工作流,则对应的执行状态为运行状态;若执行结果为等待执行消息,则对应的执行状态为等待状态。
406、当执行状态为异常状态,且处于异常状态的服务单元存在回滚逻辑时,根据回滚逻辑执行回滚操作,以重新根据订单执行请求对应信息执行处于异常状态的服务单元对应的工作流;
本实施例中,若检测到服务单元的执行状态为异常状态,且检测到处于异常状态的服务单元存在回滚逻辑,则确定回滚逻辑的回滚类型。在本实施例中,存在两种类型的回滚逻辑。不同类型的回滚逻辑的类型标识不一样,如当回滚标识为a时,第一类型的回滚逻辑对应的标识为“a1”,第二类型的回滚逻辑对应的标识为“a2”。
407、当确定回滚逻辑的回滚类型为第一类型时,根据回滚逻辑回滚到工作流引擎的第一个服务单元中,以根据交易订单执行请求对应信息重新执行处于异常状态的服务单元对应的工作流;
本实施例中,若根据回滚逻辑对应的标识确定回滚逻辑的回滚类型为第一类型,则根据回滚逻辑回滚到工作流引擎的第一个服务单元中,根据订单执行请求对应的信息在工作流引擎的第一服务单元中重头开始执行对应的工作流,以重新根据订单执行请求对应的信息执行异常服务单元对应的工作流。
408、当确定回滚逻辑的回滚类型为第二类型时,根据回滚逻辑确定工作流引擎中的执行服务单元,并回滚到执行服务单元中,以根据交易订单执行请求对应信息重新执行处于异常状态的服务单元对应的工作流;
本实施例中,若根据回滚逻辑对应的标识确定回滚逻辑的回滚类型为第二类型,则根据回滚逻辑确定工作流引擎中的执行服务单元,并回滚到执行服务单元中,以从执行服务单元开始,重新根据订单执行请求对应的信息执行对应的工作流,以重新根据订单执行请求对应的信息执行处于异常状态的服务单元对应的工作流。需要说明的是,在工作流引擎中,执行服务单元在处于异常状态的服务单元之前。
进一步地,当某个服务单元处于异常状态会影响用户的利益时,表明该服务单元,以及在该服务单元后面的服务单元都存在对应的回滚逻辑;当某个服务单元处于异常状态不会影响用户的利益时,表明该服务单元不存在对应的回滚逻辑。如在购买理财产品的工作流引擎中,若只有扣款对应的服务单元会影响用户的利益,且是扣款对应服务单元的下一服务单元处于异常状态时,此时执行回滚操作,可只回滚到扣款对应的服务单元即可。需要说明的是,当回滚到扣款对应的服务单元,所扣的金额会返回至用户账户中。
409、若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;
410、若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
411、在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。
本实施例中步骤401-403、409-411与第一实施例中的步骤101-103、105-106类似,此处不再赘述。
在本发明实施例中,通过根据接收的交易订单数据生成事务消息表,将事务消息表写入消息中间件的预设节点中存储;调取本地事务执行脚本执行从节点中提取出的交易订单数据,生成本地事务日志;解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。解决了本地事务和消息的最终一致性问题。
请参阅图5,本发明实施例中事务和消息的一致性实现方法的第五个实施例包括:
501、接收交易订单数据,根据交易订单数据生成事务消息表;
502、将事务消息表写入预设消息中间件,并将消息中间件发送至对应的节点中存储;
503、从节点中提取出交易订单数据,调取本地事务执行脚本执行交易订单数据,生成本地事务日志;
504、解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;
505、调取预设分布式应用协调程序,通过分布式应用协调程序与分布式发布订阅消息***建立连接;
本实施例中,超文本预处理脚本是一种通用开源脚本语言,主要适用于网页开发领域。其中,分布式应用协调程序是一个为分布式应用提供一致***的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
506、资源管理***将事务日志发送至预设分布式发布订阅消息***;
本实施例中,资源管理***将事务日志发送至预设分布式发布订阅消息***。
507、基于分布式发布订阅消息***调取超文本预处理脚本,并根据超文本预处理脚本从事务日志中获取事务处理返回值,当获取的返回值为1时,判断为事务执行成功,将执行成功的结果反馈至预设资源管理***;
本实施例中,采用分布式发布订阅消息***,具备实时获取消息并进行处理的功能,可以有效完成事务信息的反馈和处理;采用分布式应用协调程序简单易用,接口和性能高效、功能稳定;采用超文本预处理脚本,执行效率高,同时可以加密和优化,代码运行速度快且安全高效。本步骤主要是通过返回值判断事务处理成功情况下如何将执行成功结果反馈至资源管理***进行记录。
508、若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
509、在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。
本实施例中步骤501-504、508-509与第一实施例中的步骤101-104、106-107类似,此处不再赘述。
本发明实施例中,通过根据接收的交易订单数据生成事务消息表,将事务消息表写入消息中间件的预设节点中存储;调取本地事务执行脚本执行从节点中提取出的交易订单数据,生成本地事务日志;解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。解决了本地事务和消息的最终一致性问题。
上面对本发明实施例中事务和消息的一致性实现方法进行了描述,下面对本发明实施例中事务和消息的一致性实现装置进行描述,请参阅图6,本发明实施例中事务和消息的一致性实现装置的第一个实施例包括:
接收模块601,用于接收交易订单数据,根据所述交易订单数据生成事务消息表;
写入模块602,用于将所述事务消息表写入预设消息中间件,并将所述消息中间件发送至对应的节点中存储;
生成模块603,用于从所述节点中提取出所述交易订单数据,调取本地事务执行脚本执行所述交易订单数据,生成本地事务日志;
回滚模块604,用于若所述第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据所述回滚逻辑对所述交易订单数据执行回滚操作;
解析模块605,用于解析所述本地事务日志中记录的执行所述交易订单数据的第一执行状态和执行所述本地事务执行脚本的第二执行状态
反馈模块606,用于若所述第二执行状态为执行成功,则确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
发送模块607,用于在所述交易订单数据执行结束后,将所述事务日志发送至事务展示页面进行展示。
本发明实施例中,通过根据接收的交易订单数据生成事务消息表,将事务消息表写入消息中间件的预设节点中存储;调取本地事务执行脚本执行从节点中提取出的交易订单数据,生成本地事务日志;解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。解决了本地事务和消息的最终一致性问题。
请参阅图7,本发明实施例中事务和消息的一致性实现装置的第二个实施例,该事务和消息的一致性实现装置具体包括:
接收模块601,用于接收交易订单数据,根据所述交易订单数据生成事务消息表;
写入模块602,用于将所述事务消息表写入预设消息中间件,并将所述消息中间件发送至对应的节点中存储;
生成模块603,用于从所述节点中提取出所述交易订单数据,调取本地事务执行脚本执行所述交易订单数据,生成本地事务日志;
回滚模块604,用于若所述第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据所述回滚逻辑对所述交易订单数据执行回滚操作;
解析模块605,用于解析所述本地事务日志中记录的执行所述交易订单数据的第一执行状态和执行所述本地事务执行脚本的第二执行状态
反馈模块606,用于若所述第二执行状态为执行成功,则确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
发送模块607,用于在所述交易订单数据执行结束后,将所述事务日志发送至事务展示页面进行展示。
在本实施例中,所述写入模块602具体用于:
定时扫描所述事务消息表,若所述事务消息表中包含所述交易订单数据,则将所述交易订单数据写入所述消息中间件中。
在本实施例中,所述事务和消息的一致性实现装置还包括:
确定模块608,用于确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
调取模块609,用于接收所述事务指令和所述事务执行内容,调取事务执行脚本。
在本实施例中,所述确定模块607具体用于:
通过事务输入页面接收用户的事务处理请求,获取用户输入的事务,其中,所述事务包括事务指令、事务执行内容;
筛选所述事务中的关键词;
基于预设资源管理***数据库对所述关键词进行搜索,得到关键词搜索结果。
在本实施例中,所述回滚模块604包括:
接收单元6041,用于接收所述交易订单对应执行请求,启动与所述交易订单对应执行请求对应的分布式的工作流引擎;
检测单元6042,用于根据所述执行请求对应的信息,执行所述工作流引擎中各个服务单元对应的工作流,并对所述服务单元对应的执行状态进行检测;
回滚单元6043,用于若所述执行状态为异常状态,且处于所述异常状态的服务单元存在回滚逻辑,则根据所述回滚逻辑执行回滚操作,以重新根据所述订单执行请求对应信息执行处于所述异常状态的服务单元对应的工作流。
本实施例中,所述回滚单元6043具体用于:
若所述执行状态为异常状态,且处于所述异常状态的服务单元存在回滚逻辑,则根据所述回滚逻辑执行回滚操作,以重新根据所述订单执行请求对应信息执行处于所述异常状态的服务单元对应的工作流;
若确定所述回滚逻辑的回滚类型为第一类型,则根据所述回滚逻辑回滚到所述工作流引擎的第一个服务单元中,以根据所述交易订单执行请求对应信息重新执行处于所述异常状态的服务单元对应的工作流;
若确定所述回滚逻辑的回滚类型为第二类型,则根据所述回滚逻辑确定所述工作流引擎中的执行服务单元,并回滚到所述执行服务单元中,以根据所述交易订单执行请求对应信息重新执行处于所述异常状态的服务单元对应的工作流。
本实施例中,所述反馈模块606具体用于:
调取预设分布式应用协调程序,通过所述分布式应用协调程序与所述分布式发布订阅消息***建立连接;
所述资源管理***将所述事务日志发送至预设分布式发布订阅消息***;
基于所述分布式发布订阅消息***调取超文本预处理脚本,并根据所述超文本预处理脚本从所述事务日志中获取事务处理返回值,当获取的所述返回值为1时,判断为所述事务执行成功,将执行成功的结果反馈至预设资源管理***。
本发明实施例中,通过根据接收的交易订单数据生成事务消息表,将事务消息表写入消息中间件的预设节点中存储;调取本地事务执行脚本执行从节点中提取出的交易订单数据,生成本地事务日志;解析本地事务日志中记录的执行交易订单数据的第一执行状态和执行本地事务执行脚本的第二执行状态;若第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据回滚逻辑对交易订单数据执行回滚操作;若第二执行状态为执行成功,则确定交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;在交易订单数据执行结束后,将事务日志发送至事务展示页面进行展示。解决了本地事务和消息的最终一致性问题。
上面图6和图7从模块化功能实体的角度对本发明实施例中的事务和消息的一致性实现装置进行详细描述,下面从硬件处理的角度对本发明实施例中事务和消息的一致性实现设备进行详细描述。
图8是本发明实施例提供的一种事务和消息的一致性实现设备的结构示意图,该事务和消息的一致性实现设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)810(例如,一个或一个以上处理器)和存储器820,一个或一个以上存储应用程序833或数据832的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器820和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对事务和消息的一致性实现设备800中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质830通信,在事务和消息的一致性实现设备800上执行存储介质830中的一系列指令操作,以实现上述各方法实施例提供的事务和消息的一致性实现方法的步骤。
事务和消息的一致性实现设备800还可以包括一个或一个以上电源840,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口860,和/或,一个或一个以上操作***831,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图8示出的事务和消息的一致性实现设备结构并不构成对本申请提供的事务和消息的一致性实现设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得计算机执行上述事务和消息的一致性实现方法的步骤。
所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种事务和消息的一致性实现方法,其特征在于,所述事务和消息的一致性实现方法包括:
接收交易订单数据,根据所述交易订单数据生成事务消息表;
将所述事务消息表写入预设消息中间件,并将所述消息中间件发送至对应的节点中存储;
从所述节点中提取出所述交易订单数据,调取本地事务执行脚本执行所述交易订单数据,生成本地事务日志;
解析所述本地事务日志中记录的执行所述交易订单数据的第一执行状态和执行所述本地事务执行脚本的第二执行状态;
若所述第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据所述回滚逻辑对所述交易订单数据执行回滚操作;
若所述第二执行状态为执行成功,则确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
在所述交易订单数据执行结束后,将所述事务日志发送至事务展示页面进行展示。
2.根据权利要求1所述的事务和消息的一致性实现方法,其特征在于,所述将所述事务消息表写入预设消息中间件,并将所述消息中间件发送至对应的节点中存储包括:
定时扫描所述事务消息表,若所述事务消息表中包含所述交易订单数据,则将所述交易订单数据写入所述消息中间件中。
3.根据权利要求1所述的事务和消息的一致性实现方法,其特征在于,在所述从所述节点中提取出所述交易订单数据,调取本地事务执行脚本执行所述交易订单数据,生成本地事务日志之前,还包括:
确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
接收所述事务指令和所述事务执行内容,调取事务执行脚本。
4.根据权利要求3所述的事务和消息的一致性实现方法,其特征在于,所述确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***包括:
通过事务输入页面接收用户的事务处理请求,获取用户输入的事务,其中,所述事务包括事务指令、事务执行内容;
筛选所述事务中的关键词;
基于预设资源管理***数据库对所述关键词进行搜索,得到关键词搜索结果。
5.根据权利要求1所述的事务和消息的一致性实现方法,其特征在于,所述若所述第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据所述回滚逻辑对所述交易订单数据执行回滚操作包括:
接收所述交易订单对应执行请求,启动与所述交易订单对应执行请求对应的分布式的工作流引擎;
根据所述执行请求对应的信息,执行所述工作流引擎中各个服务单元对应的工作流,并对所述服务单元对应的执行状态进行检测;
若所述执行状态为异常状态,且处于所述异常状态的服务单元存在回滚逻辑,则根据所述回滚逻辑执行回滚操作,以重新根据所述订单执行请求对应信息执行处于所述异常状态的服务单元对应的工作流。
6.根据权利要求5所述的事务和消息的一致性实现方法,其特征在于,所述根据所述回滚逻辑执行回滚操作,以重新根据所述订单执行请求对应信息执行处于所述异常状态的服务单元对应的工作流包括:
若所述执行状态为异常状态,且处于所述异常状态的服务单元存在回滚逻辑,则根据所述回滚逻辑执行回滚操作,以重新根据所述订单执行请求对应信息执行处于所述异常状态的服务单元对应的工作流;
若确定所述回滚逻辑的回滚类型为第一类型,则根据所述回滚逻辑回滚到所述工作流引擎的第一个服务单元中,以根据所述交易订单执行请求对应信息重新执行处于所述异常状态的服务单元对应的工作流;
若确定所述回滚逻辑的回滚类型为第二类型,则根据所述回滚逻辑确定所述工作流引擎中的执行服务单元,并回滚到所述执行服务单元中,以根据所述交易订单执行请求对应信息重新执行处于所述异常状态的服务单元对应的工作流。
7.根据权利要求1所述的事务和消息的一致性实现方法,其特征在于,所述确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***包括:
调取预设分布式应用协调程序,通过所述分布式应用协调程序与所述分布式发布订阅消息***建立连接;
所述资源管理***将所述事务日志发送至预设分布式发布订阅消息***;
基于所述分布式发布订阅消息***调取超文本预处理脚本,并根据所述超文本预处理脚本从所述事务日志中获取事务处理返回值,当获取的所述返回值为1时,判断为所述事务执行成功,将执行成功的结果反馈至预设资源管理***。
8.一种事务和消息的一致性实现装置,其特征在于,所述事务和消息的一致性实现装置包括:
接收模块,用于接收交易订单数据,根据所述交易订单数据生成事务消息表;
写入模块,用于将所述事务消息表写入预设消息中间件,并将所述消息中间件发送至对应的节点中存储;
生成模块,用于从所述节点中提取出所述交易订单数据,调取本地事务执行脚本执行所述交易订单数据,生成本地事务日志;
解析模块,用于解析所述本地事务日志中记录的执行所述交易订单数据的第一执行状态和执行所述本地事务执行脚本的第二执行状态;
回滚模块,用于若所述第一执行状态为异常且处于对应的服务单元存在回滚逻辑,则根据所述回滚逻辑对所述交易订单数据执行回滚操作;
反馈模块,用于若所述第二执行状态为执行成功,则确定所述交易订单数据执行成功,并将执行成功的结果反馈至预设资源管理***;
发送模块,用于在所述交易订单数据执行结束后,将所述事务日志发送至事务展示页面进行展示。
9.一种事务和消息的一致性实现设备,其特征在于,所述事务和消息的一致性实现设备包括:存储器和至少一个处理器,所述存储器中存储有计算机程序,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述计算机程序,以使得所述事务和消息的一致性实现设备执行如权利要求1-7中任一项所述的事务和消息的一致性实现方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的事务和消息的一致性实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111268278.3A CN113971075A (zh) | 2021-10-29 | 2021-10-29 | 事务和消息的一致性实现方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111268278.3A CN113971075A (zh) | 2021-10-29 | 2021-10-29 | 事务和消息的一致性实现方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113971075A true CN113971075A (zh) | 2022-01-25 |
Family
ID=79589100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111268278.3A Pending CN113971075A (zh) | 2021-10-29 | 2021-10-29 | 事务和消息的一致性实现方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113971075A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723525A (zh) * | 2022-04-08 | 2022-07-08 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种订单id处理方法及装置、存储介质及电子设备 |
CN114780177A (zh) * | 2022-04-14 | 2022-07-22 | 青岛易来智能科技股份有限公司 | 事务执行方法及装置、存储介质及电子装置 |
CN115309536A (zh) * | 2022-10-12 | 2022-11-08 | 青岛民航凯亚***集成有限公司 | 高并发的彩票交易场景下数据一致性方法 |
-
2021
- 2021-10-29 CN CN202111268278.3A patent/CN113971075A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723525A (zh) * | 2022-04-08 | 2022-07-08 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种订单id处理方法及装置、存储介质及电子设备 |
CN114780177A (zh) * | 2022-04-14 | 2022-07-22 | 青岛易来智能科技股份有限公司 | 事务执行方法及装置、存储介质及电子装置 |
CN115309536A (zh) * | 2022-10-12 | 2022-11-08 | 青岛民航凯亚***集成有限公司 | 高并发的彩票交易场景下数据一致性方法 |
CN115309536B (zh) * | 2022-10-12 | 2023-01-24 | 青岛民航凯亚***集成有限公司 | 高并发的彩票交易场景下数据一致性方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113971075A (zh) | 事务和消息的一致性实现方法、装置、设备及存储介质 | |
US7627544B2 (en) | Recognizing event patterns from event streams | |
CN107818431B (zh) | 一种提供订单轨迹数据的方法和*** | |
US12026471B2 (en) | Automated generation of chatbot | |
CN115129304B (zh) | 一种基于零代码平台的可视化业务服务编排方法及装置 | |
WO2000041095A2 (en) | Method and apparatus for performing supplemental searches over a network | |
CN111400011B (zh) | 一种实时任务调度方法、***、设备及可读存储介质 | |
CN112882699A (zh) | 基于流程配置引擎的业务处理方法、装置、设备及介质 | |
CN108897729B (zh) | 一种交易模板共享方法、装置、电子设备及存储介质 | |
CN101989294A (zh) | 分布式文件解析方法和解析*** | |
CA3051919C (en) | Machine learning (ml) based expansion of a data set | |
CN111144804A (zh) | 一种订单处理方法、装置及*** | |
US20090067013A1 (en) | Systems and methods to associate invoice data with a corresponding original invoice copy in a stack of invoices | |
CN109725987A (zh) | 一种分布式事务一致性解决方法及相关设备 | |
Pooput et al. | Finding impact factors for rejection of pull requests on github | |
US20230110127A1 (en) | Intelligent creation of customized responses to customer feedback | |
CN112507725B (zh) | 金融信息的静态发布方法、装置、设备及存储介质 | |
CN112053137B (zh) | 流程预测方法、电子设备和服务器集群 | |
US11734299B2 (en) | Message templatization for log analytics | |
US8484624B1 (en) | Test integration tool | |
US10817661B2 (en) | System architecture framework | |
CN114281792A (zh) | 一种事务处理方法、装置、设备及存储介质 | |
CN111966347A (zh) | 前端驱动后端服务的方法、装置、设备和存储介质 | |
CN117972096B (zh) | 一种社交平台互动消息的处理方法及*** | |
US11960560B1 (en) | Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof |
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 |