CN107766080B - 事务消息处理方法、装置、设备及系统 - Google Patents

事务消息处理方法、装置、设备及系统 Download PDF

Info

Publication number
CN107766080B
CN107766080B CN201610709666.3A CN201610709666A CN107766080B CN 107766080 B CN107766080 B CN 107766080B CN 201610709666 A CN201610709666 A CN 201610709666A CN 107766080 B CN107766080 B CN 107766080B
Authority
CN
China
Prior art keywords
transaction
message
rollback
transaction message
indication information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610709666.3A
Other languages
English (en)
Other versions
CN107766080A (zh
Inventor
姜宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610709666.3A priority Critical patent/CN107766080B/zh
Publication of CN107766080A publication Critical patent/CN107766080A/zh
Application granted granted Critical
Publication of CN107766080B publication Critical patent/CN107766080B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供一种事务消息处理方法、装置、设备及系统。本申请的事务消息处理系统包括客户端设备和事务协调器所在节点设备;客户端设备确定业务消息对应的事务消息,判断事务消息否包括回滚指示信息;若事务消息包括回滚指示信息,记录回滚指示信息;事务协调器所在节点设备接收客户端设备发送的事务消息对应的事务的处理结果;根据处理结果确定事务消息对应的事务是否处理成功;若事务消息对应的事务存在未处理成功的事务,则向客户端设备发送事务回滚请求消息;客户端设备还根据记录的回滚指示信息对事务消息对应的事务进行回滚。本申请可提高分布式事务系统的吞吐量,提高事务处理效率。

Description

事务消息处理方法、装置、设备及系统
技术领域
本申请涉及互联网技术,尤其涉及一种事务消息处理方法、装置、设备及系统。
背景技术
随着网络技术的发展,网络中业务系统间的数据操作越来越频繁,处于业务系统间的不同数据库中数据的一致性。不同数据库中数据的一致性则需使得对不同数据库的数据操作具有原子性、一致性、隔离性以及持久性(Atomicity Consistency IsolationDurability,简称ACID),即要求进行分布式事务处理,且,事务处理需在多个事务资源间实现。事务作为数据库的最小操作单元,所有的操作要么都成功,要么都失败。
在分布式事务系统中,为解决不同事务并发处理同一数据而发生冲突的问题,可在针对一个事务对数据进行处理的过程中,对该数据进行锁定,以不允许其他事务对该数据进行处理,而在该一个事务处理完成后对该一个数据放锁,继而针对另一事务对该数据进行处理。
然而,锁定数据进行事务处理,可使得分布式事务系统的吞吐量受到限制,从而使得事务处理效率受到限制。
发明内容
本申请提供一种事务消息处理方法、装置、设备及系统,以提高事务处理效率。
第一方面,本申请提供一种事务消息处理系统,包括:客户端设备和事务协调器所在节点设备;客户端设备与事务协调器所在节点设备连接;
客户端设备,用于确定业务消息对应的事务消息;判断事务消息否包括回滚指示信息;若事务消息包括回滚指示信息,记录回滚指示信息;回滚指示信息用以对事务消息对应的事务进行回滚;
事务协调器所在节点设备,用于接收客户端设备发送的事务消息对应的事务的处理结果;根据处理结果确定事务消息对应的事务是否处理成功;若事务消息对应的事务存在未处理成功的事务,则向客户端设备发送事务回滚请求消息;
客户端设备,还用于根据记录的回滚指示信息对事务消息对应的事务进行回滚。
该事务消息处理系统中客户端设备在接收到事务协调器所在节点设备发送的事务回滚请求消息后,可根据记录的回滚指示信息进行回滚,无需等待其他事务消息处理完成,也无需进行数据锁定,可使得针对同一数据的事务处理可并行进行,提高分布式事务系统的吞吐量,提高事务处理效率。
第二方面,本申请提供一种事务消息处理方法,包括:
确定业务消息对应的事务消息;
判断事务消息否包括回滚指示信息;
若事务消息包括回滚指示信息,记录回滚指示信息;回滚指示信息用以对事务消息对应的事务进行回滚。
该方法中,可记录事务消息包括的用以进行回滚的回滚指示信息,因而对事务消息对应的事务进行处理时,无需等待其他事务消息处理完成,也无需进行数据锁定,可使得针对同一数据的事务处理可并行进行,提高分布式事务系统的吞吐量,提高事务处理效率。
同时,该方法可针对同一数据的事务处理并行进行,突破针对热点数据的事务处理的性能瓶颈,提高针对热点数据的处理效率。并且,该方法无需记录事务处理前的数据以及处理后的数据,仅需记录该回滚指示信息便可,因而,还可节省记录数据的开销。
在一种可实现方式中,记录回滚指示信息之后,所述方法还包括:
对事务消息对应的事务进行处理;
将事务消息对应的事务的处理结果发送至事务协调器所在节点设备。
在另一种可实现方式中,接收事务协调器所在节点设备发送的事务提交请求消息;事务提交请求消息为事务协调器所在节点设备在确定事务消息对应的事务处理成功后发送的;
对事务消息对应的事务进行提交。
在又一种可实现的方式中,该方法还包括:
删除记录的回滚指示信息。
在再一种可实现方式中,该方法还包括:
接收事务协调器所在节点设备发送的事务回滚请求消息;事务回滚请求消息为事务协调器所在节点设备在确定事务消息对应的事务存在未处理成功的事务后发送的;
根据回滚指示信息对事务消息对应的事务进行回滚。
该方法还可通过事务提交情况下的方法及事务回滚提交情况下的方法,使得事务消息处理方法更好地保证事务的ACID特性,保证事务处理的正常进行,提高事务处理效率。
在再一种可实现方式中,该方法还包括:
删除记录的回滚指示信息。
该方法中还无论是事务提交还是回滚后,删除记录的该回滚指示信息,可避免已记录的回滚指示信息对后续事务消息的事务处理造成干扰,保证事务处理效率,提高用户体验。
在再一种可实现方式中,判断事务消息是否包括回滚指示信息之前,该方法还包括:
将事务消息发送至事务协调器所在节点设备;
接收事务协调器所在节点设备发送的事务消息对应的事务标识;
记录事务消息对应的事务标识。
在再一种可实现方式中,记录回滚指示信息,包括:
记录回滚指示信息,和,回滚指示信息与事务消息对应的事务标识之间的对应关系。
在再一种可实现方式中,该方法还包括:
若事务消息不包括回滚规则指示信息,生成事务消息对应事务的回滚数据;
对事务消息对应的事务进行处理;
生成事务消息对应事务的重做数据;
记录回滚数据和重做数据。
在再一种可实现方式中,事务消息对应的事务包括如下任一:
数据插入、数据更新及数据删除。
第三方面,本申请还提供一种事务消息处理装置,包括:
确定模块,用于确定业务消息对应的事务消息;
判断模块,用于判断事务消息否包括回滚指示信息;
记录模块,用于若事务消息包括回滚指示信息,记录回滚指示信息;回滚指示信息用以对事务消息对应的事务进行回滚。
在一种可实现方式中,该装置还包括:
第一处理模块,用于对事务消息对应的事务进行处理;
第一发送模块,用于将事务消息对应的事务的处理结果发送至事务协调器所在节点设备。
在另一种可实现方式中,该装置还包括:
第一接收模块,用于接收事务协调器所在节点设备发送的事务提交请求消息;事务提交请求消息为事务协调器所在节点设备在确定事务消息对应的事务处理成功后发送的;
提交模块,用于对事务消息对应的事务进行提交。
在又一种可实现方式中,该装置还包括:
第一删除模块,用于删除记录的回滚指示信息。
在再一种可实现方式中,该装置还包括:
第二接收模块,用于接收事务协调器所在节点设备发送的事务回滚请求消息;事务回滚请求消息为事务协调器所在节点设备在确定事务消息对应的事务存在未处理成功的事务后发送的;
回滚模块,用于根据回滚指示信息对事务消息对应的事务进行回滚。
在再一种可实现方式中,该装置还包括:
第二删除模块,用于删除记录的回滚指示信息。
在再一种可实现方式中,该装置还包括:
第二发送模块,用于将事务消息发送至事务协调器所在节点设备;
第三接收模块,用于接收事务协调器所在节点设备发送的事务消息对应的事务标识;
记录模块,用于记录事务消息对应的事务标识。
在再一种可实现方式中,记录模块,具体用于记录回滚指示信息,和,回滚指示信息与事务消息对应的事务标识之间的对应关系。
在再一种可实现方式中,该装置还包括:
生成模块,用于若事务消息不包括该回滚规则指示信息,生成该事务消息对应事务的回滚数据;
第二处理模块,用于对该事务消息对应的事务进行处理;
该生成模块,还用于生成该事务消息对应事务的重做数据;
该记录模块,还用于记录该回滚数据和该重做数据。
第四方面,本申请还提供一种客户端设备,包括:处理器和存储器;
处理器,与存储器耦合,用于确定业务消息对应的事务消息;判断事务消息否包括回滚指示信息;若事务消息包括所述回滚指示信息,控制存储器记录回滚指示信息;回滚指示信息用以对事务消息对应的事务进行回滚。
第五方面,本申请还提供一种事务消息处理方法,包括:
接收客户端设备发送的事务消息对应的事务的处理结果;事务消息对应的事务的处理结果为客户端设备对事务消息对应的事务进行处理的结果;
根据处理结果确定事务消息对应的事务是否处理成功;
若事务消息对应的事务存在未处理成功的事务,则向客户端设备发送事务回滚请求消息;事务回滚请求消息用于使得客户端设备根据记录的回滚指示信息对事务消息对应的事务进行回滚。
在一种可实现方式中,方法还包括:
若事务消息对应的事务处理成功,则向客户端设备事务提交请求消息;事务提交请求消息用于使得客户端设备对事务消息对应的事务进行提交。
在另一种可实现方式中,方法还包括:
接收客户端设备发送的事务消息;
根据事务消息确定事务消息对应的事务标识。
在又一种可实现方式中,方法还包括:
将事务消息对应的事务标识发送至客户端设备,事务消息对应的事务标识用于使得客户端设备记录回滚指示信息,和,回滚指示信息与事务消息对应的事务标识之间的对应关系。
再又一种可实现方式中,方法还包括:
记录事务标识,和,事务消息对应的事务的处理结果。
第六方面,本申请还提供一种事务消息处理装置,包括:
接收模块,用于接收客户端设备发送的事务消息对应的事务的处理结果;事务消息对应的事务的处理结果为客户端设备对事务消息对应的事务进行处理的结果;客户端设备记录有事务消息包括的回滚指示信息,回滚指示信息用以对事务消息对应的事务进行回滚。
确定模块,用于根据处理结果确定事务消息对应的事务是否处理成功;
发送模块,用于若事务消息对应的事务存在未处理成功的事务,则向客户端设备发送事务回滚请求消息;事务回滚请求消息用于使得客户端设备根据存储的回滚指示信息对事务消息对应的事务进行回滚。
第七方面,本申请还提供一种事务协调器所在节点设备,包括:接收器、处理器和发送器;其中,接收器、处理器和发送器通过通信总线连接;
接收器,用于接收客户端设备发送的事务消息对应的事务的处理结果;事务消息对应的事务的处理结果为客户端设备对事务消息对应的事务进行处理的结果;客户端设备记录有事务消息包括的回滚指示信息,回滚指示信息用以对事务消息对应的事务进行回滚;
处理器,用于根据处理结果确定事务消息对应的事务是否处理成功;
发送器,用于若事务消息对应的事务存在未处理成功的事务,则向客户端设备发送事务回滚请求消息;事务回滚请求消息用于使得客户端设备根据存储的回滚指示信息对事务消息对应的事务进行回滚。
本申请提供的事务消息处理方法、装置、设备及系统,客户端设备可确定业务消息对应的事务消息,判断该事务消息否包括回滚指示信息,若该事务消息包括该回滚指示信息,记录该回滚指示信息;该回滚指示信息用以对该事务消息对应的事务进行回滚。由于记录事务消息包括用以进行回滚的回滚指示信息,因而对事务消息对应的事务进行处理时,无需等待其他事务消息处理完成,也无需进行数据锁定,可使得针对同一数据的事务处理可并行进行,提高分布式事务系统的吞吐量,提高事务处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的一种可选的分布式事务系统的网络结构图;
图2为本申请实施例一提供的事务消息处理方法的流程图;
图3为本申请实施例二提供的一种事务消息处理方法的流程图;
图4为本申请实施例三提供的一种事务消息处理方法的流程图;
图5为本申请实施例四提供的一种事务消息处理方法的流程图;
图6为本申请实施例五提供的一种事务消息处理装置的结构示意图;
图7为本申请实施例六提供的一种客户端设备的结构示意图;
图8为本申请实施例七提供的一种事务消息处理装置的结构示意图;
图9为本申请实施例八提供的一种事务协调器所在节点设备的结构示意图;
图10为本发明实施例九提供的一种事务消息处理系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本申请提供的事务消息处理方法、装置及设备,可适用于分布式事务系统。图1为本申请的一种可选的分布式事务系统的网络结构图。如图1所示,本申请的分布式事务系统中可包括:客户端设备101及至少一个节点设备102。客户端设备101可包括:应用程序103以及资源管理器104。客户端设备101中的应用程序103可通过本地接口控制资源管理器104,从而操作该资源管理器104所管理的数据资源。每个节点设备102可包括事务协调器105。每个节点设备102可以为服务端的节点设备,如服务器。客户端设备101中的应用程序103可通过事务协调器105控制事务,事务协调器105可通过XA接口注册管理客户端设备101上的资源管理器104。本申请提供的事务消息处理方法可提高分布式事务系统的吞吐量,提高事务处理效率。
本申请实施例一提供一种事务消息处理方法。本申请提供实施例一提供的事务消息处理方法可由客户端设备执行。图2为本申请实施例一提供的事务消息处理方法的流程图。如图2所示,该事务消息处理方法可包括如下:
S201、确定业务消息对应的事务消息。
具体地,客户端设备可以是接收用户输入的业务消息,并从业务库中查找该业务消息对应的业务,确定该业务消息对应的业务处理所包括的事务,继而根据确定该事务对应的事务消息为该业务消息对应的事务消息。该业务消息可以为用户针对该客户端设备中的应用程序所输入的业务消息。该业务库可包括至少一个业务消息,以及,每个业务消息对应的业务。具体来说,该业务消息对应的业务可包括创建订单业务、更新商品库存业务、付款业务,则该业务消息对应的业务处理所包括的事务可包括:数据插入(insert)、数据更新(update)等。需要说明的是,本申请中该业务消息对应的事务消息可包括至少一个事务消息。也就是说,该业务消息对应的业务处理包括至少一个事务,每个事务对应一个事务消息。在分布式事务系统中,该至少一个事务对应的事务资源可位于不同的节点设备上。本申请所提及的事务可以为全局事务也可以为本地事务。
S202、判断该事务消息是否包括回滚指示信息。
具体地,该事务消息包括的回滚指示信息可以是根据该事务消息对应的事务所预先配置的信息。其中,该回滚指示(hint)信息可以包括回滚规则,该回滚规则可以是根据该事务消息对应的事务确定的。该回滚规则可以为根据该事务消息对应的事务的数据修改的反过程确定的。S202中可以是通过解析该事务消息,并判断该解析后的事务消息是否包括回滚指示信息。该回滚指示信息也可称为中间件规则。该回滚指示信息可通过预设的回滚指示标识。
举例来说,若该事务消息对应的事务为对数据进行加一操作,则该回滚规则为对数据进行减一操作。
该事务消息例如可以为结构化查询语言(Structured Query Language,简称SQL)语句,若该事务消息的事务处理信息为:更新商品数目=商品数目-1,则该回滚指示信息例如可以为:商品数目=商品数目+1。
该S202中可以是解析该事务消息的SQL语句,确定该解析后的该事务消息中是否包括回滚指示信息对应的字符串,若该解析后的该事务消息中包括回滚指示信息对应的字符串,则确定该事务消息包括回滚指示信息。
S203、若该事务消息包括该回滚指示信息,记录该回滚指示信息;该回滚指示信息用以对该事务消息对应的事务进行回滚。
具体地,若该事务消息包括该回滚指示信息,则从该事务消息中提取该回滚指示信息,并记录该回滚指示信息。该方法中可以是将该回滚指示信息插入回滚指示日志表(hint log)中,实现该回滚指示信息的记录。其中,记录该回滚指示信息可以是记录该回滚指示信息包括的回滚规则。该回滚指示信息所包括的回滚规则用以在事务消息对应的事务处理失败的情况下,对该事务消息对应的事务进行回滚。
本申请实施例一提供的事务消息处理方法,可确定业务消息对应的事务消息,判断该事务消息否包括回滚指示信息,若该事务消息包括该回滚指示信息,记录该回滚指示信息;该回滚指示信息用以对该事务消息对应的事务进行回滚。由于该方法中,可记录事务消息包括的用以进行回滚的回滚指示信息,因而对事务消息对应的事务进行处理时,无需等待其他事务消息处理完成,也无需进行数据锁定,可使得针对同一数据的事务处理可并行进行,提高分布式事务系统的吞吐量,提高事务处理效率。
同时,该方法可针对同一数据的事务处理并行进行,突破针对热点数据的事务处理的性能瓶颈,提高针对热点数据的处理效率。其中,热点数据例如可以是事务处理较多的数据,如商品特卖期,该商品的库存数据的等。
并且,该方法无需记录事务处理前的数据以及处理后的数据,仅需记录该回滚指示信息便可,因而,还可节省记录数据的开销。
本申请实施例二还可提供一种事务消息处理方法。图3为本申请实施例二提供的一种事务消息处理方法的流程图。如图3所示,在上述实施例所述的S203中若该事务消息包括该回滚指示信息,记录该回滚指示信息之后,该方法还可包括:
S301、对该事务消息对应的事务进行处理。
具体地,如该事务消息包括至少一个事务消息,则该S201中可以是对该至少一个事务消息中每个事务消息对应的事务进行处理。其中,对该事务消息对应的事务进行处理,可以是根据该事务消息中该回滚指示信息外的事务处理信息,对该事务消息对应的事务进行处理。举例来说,该事务消息的事务处理信息例如可以为:更新商品数目=商品数目-1。
对该事务消息对应的事务进行处理可以是根据该事务消息中的事务处理信息确定该事务消息对应的事务的数据资源及数据操作,继而根据该事务消息对应的事务的数据操作,对该数据资源进行处理。
S302、将该事务消息对应的事务处理的结果发送至事务协调器所在节点设备。
具体地,如该事务消息包括至少一个事务消息,则该S302中可以是将每个事务消息对应的事务的处理结果均发送至事务协调器所在节点设备。
本申请的事务消息处理方法适用的分布式事务系统例如可以为XA协议对应的分布式事务系统。上述事务消息处理方法中,S301和S302可以是在该分布式事务系统的第一阶段,也称准备阶段执行。
可选的,该方法还可包括:
S303、接收该事务协调器所在节点设备发送的事务提交请求消息;该事务提交请求消息为该事务协调器所在节点设备在确定该事务消息对应的事务处理成功后发送的。
具体地,该事务提交请求消息可以为该事务协调器所在节点设备在确定每个事务消息对应的事务均处理成功后发送的。
S304、对该事务消息对应的事务进行提交。
如上所述的S301中对该事务消息对应的事务进行处理,可以是在内存中根据该事务消息对应的事务的数据操作,对该数据资源进行处理,然而,该数据资源所在节点侧该数据资源实际并未修改。该S304中可以是向数据资源所在节点设备发送该事务消息对应的事务的数据操作指令,以使得该数资源所在节点设备对该数据资源进行修改,实现该事务消息对应的事务进行提交,即实现数据在客户端设备侧和数据资源所在节点设备侧均修改。该数据资源例如可以包括:数据库、数据表、消息队列等至少一个。需要说明的是,在客户端设备的内存中根据该事务消息对应的事务的数据操作,对该数据资源进行处理,是可撤销的,但是,在数据资源所在节点设备侧对数据资源的处理是不可逆的,不可撤销的。其中,客户端设备例如可以是通过资源管理器向该数据资源所在节点设备发送指令。
上述S303和S304例如可以是在分布式事务系统的第二阶段,也就是提交阶段执行的。
可选的,该方法还可包括:
删除记录的该回滚指示信息。
可替代地,该方法还可包括:
S305、接收该事务协调器所在节点设备发送的事务回滚请求消息;该事务回滚请求消息为该事务协调器所在节点设备在确定该事务消息对应的事务存在未处理成功的事务后发送的。
对于该业务消息对应的业务的所有事务的处理要么都成功,要么都失败。因而,如该事务消息对应的事务存在未处理成功的事务则,该事务消息对应的事务均需进行事务回滚。
S306、根据该回滚指示信息对该事务消息对应的事务进行回滚。
具体地,可以是根据该回滚指示信息中回滚规则,对该事务消息对应的事务进行回滚。
如上所述的S301中对该事务消息对应的事务进行处理,可以是在内存中根据该事务消息对应的事务的数据操作,对该数据资源进行处理,然而,该数据资源所在节点侧该数据资源实际并未修改。由于在客户端设备的内存中根据该事务消息对应的事务的数据操作,对该数据资源进行处理,是可撤销的。该S306中可以是基于该回滚指示信息的回滚规则,对该内存中对该数据资源的处理进行事务回滚,实现该事务消息对应的事务的回滚。
上述S305和S306也可以是在分布式事务系统的第二阶段,也就是提交阶段执行的。
可选的,该方法还可包括:
删除记录的该回滚指示信息。
无论是事务提交还是回滚,该事务消息对应的事务已处理完成,而该回滚指示信息用以对该事务消息对应的事务进行回滚,当事务处理完成后,该回滚指示信息便不会被启用,为避免已记录的回滚指示信息对后续事务消息的事务处理造成干扰,该方法可删除该记录该回滚指示信息,以保证事务处理效率,提高用户体验。
可选的,在如上所述的S202中判断该事务消息是否包括回滚指示信息之前,该方法还可包括:
将该事务消息发送至事务协调器所在节点设备,使得该事务协调器所在节点设备对该事务消息对应的事务进行注册;
接收该事务协调器所在节点设备发送的该事务消息对应的事务标识,该事务消息对应的事务标识为该事务协调器所在节点设备对该事务消息对应的事务进行注册所确定的事务标识;
记录该事务消息对应的事务标识。
具体地,该方法中可以是通过向事务协调器所在节点设备发送事务注册请求,事务注册请求包括该事务消息,使得该事务协调器所在节点设备对该事务消息对应的事务进行注册,并接收该事务协调器所在节点设备发送的事务注册响应,该事务注册响应可包括该事务消息对应的事务标识。
在接收到该事务协调器所在节点设备发送的事务发送的事务消息对应的事务标识,便可启动该事务消息对应的事务。
可选的,如上所述的记录该回滚指示信息,包括:
记录该回滚指示信息,和,该回滚指示信息与该事务消息对应的事务标识之间的对应关系。
记录该回滚指示信息与该事务消息对应的事务标识之间的对应关系,可使得接收后事务协调器所在节点设备发送的事务提交请求消息或事务回滚提交请求消息后,更准确的确定该回滚指示信息,继而删除该回滚指示信息,或,根据回滚指示信息进行事务回滚等操作。
可选的,该方法还可包括:
若该事务消息不包括所述回滚指示信息,生成该事务消息对应事务的回滚数据;
对该事务消息对应的事务进行处理;
生成该事务消息对应事务的重做数据;
记录该回滚数据和该重做数据。
具体地,该回滚数据可以为该事务消息对应事务的前置镜像数据。也就是,该事务消息对应事务处理的源数据。该回滚数据也称为撤销日志(undo log)数据。该重做数据可以为重做日志(redo log)数据,是该事务消息对应事务的后置镜像数据,也就是,该事务消息对应事务处理的目标数据。如上记录该回滚数据和该重做数据,可以是将该回滚数据和该重做数据进行字符串拼接后写入日志表中。
该方法还可包括:向事务协调器所在节点设备发送该事务消息对应事务的处理结果;
接收该事务协调器所在节点设备发送的事务提交请求消息或事务回滚请求消息;
若接收到事务提交请求消息,则对该事务消息对应事务进行提交;
若接收到事务回滚请求消息,则比较该事务消息对应事务的当前数据与该重做数据是否一致;如一致,则根据该回滚数据对该事务消息对应事务进行回滚;如不一致,则对该当前数据进行锁定,对该当前数据进行锁定,直到针对该当前数据的其他事务处理完成后放锁。
可选的,该事务消息对应的事务包括如下任一:数据插入、数据更新及数据删除等。
本申请提供二的各事务消息处理方法,可通过提供事务提交情况下的方法及事务回滚提交情况下的方法,使得事务消息处理方法更好地保证事务的ACID特性,保证事务处理的正常进行,提高事务处理效率;并且,该方法中还无论是事务提交还是回滚后,删除记录的该回滚指示信息,可避免已记录的回滚指示信息对后续事务消息的事务处理造成干扰,保证事务处理效率,提高用户体验。
本申请实施例三还提供一种事务消息处理方法,该实施例三提供的事务消息处理方法可由事务协调器所在节点设备执行。图4为本申请实施例三提供的一种事务消息处理方法的流程图。如图4所示,该方法可包括:
S401、接收客户端设备发送的事务消息对应的事务的处理结果。
该事务消息对应的事务的处理结果为该客户端设备对该事务消息对应的事务进行处理的结果。
具体地,如该事务消息包括至少一个事务消息,事务协调器所在节点设备可以是接收客户端设备发送的每个事务消息对应的事务的处理结果。
S402、根据该处理结果确定该事务消息对应的事务是否处理成功。
事务协调器所在节点设备可以是根据每个事务消息对应的事务的处理结果确定,该每个事务消息对应的事务是否处理成功。
S403、若该事务消息对应的事务存在未处理成功的事务,则向该客户端设备发送事务回滚请求消息;该事务回滚请求消息用于使得该客户端设备根据记录的该回滚指示信息对该事务消息对应的事务进行回滚。
可选的,该方法还可包括:
若该事务消息对应的事务处理成功,则向该客户端设备事务提交请求消息;该事务提交请求消息用于使得该客户端设备对该事务消息对应的事务进行提交。
可选的,该方法还可包括:
接收该客户端设备发送的该事务消息;
根据该事务消息确定该事务消息对应的事务标识。
该方法中可以是事务协调器所在节点设备可以是接收客户端设备发送的事务注册请求,该事务注册请求包括该事务消息,该事务协调器所在节点设备对该事务消息对应的事务进行注册确定该事务消息对应的事务标识。
可选的,方法还包括:
将该事务消息对应的事务标识发送至该客户端设备,该事务消息对应的事务标识用于使得该客户端设备记录该回滚指示信息,和,该回滚指示信息与该事务消息对应的事务标识之间的对应关系。
具体地,事务协调器所在节点设备可以是向客户端设备发送事务注册响应,该事务注册响应可包括该事务消息对应的事务标识。
可选的,该方法还包括:
记录该事务标识,和,该事务消息对应的事务的处理结果。
举例来说,事务协调器所在节点设备可以是根据该处理结果确定该事务消息对应的事务是否处理成功之后,记录处理成功的事务,及处理成功的事务的标识;记录处理失败的事务及处理失败的事务的标识。
本申请实施例三提供的事务消息处理方法,事务协调器所在节点设备可接收客户端设备发送的事务消息对应的事务的处理结果,根据该处理结果确定该事务消息对应的事务是否处理成功,若该事务消息对应的事务存在未处理成功的事务,则向该客户端设备发送事务回滚请求消息,使得客户端设备可根据记录的该回滚指示信息对该事务消息对应的事务进行回滚。由于该方法中,可使得客户端设备根据记录的回滚指示信息进行回滚,无需等待其他事务消息处理完成,也无需进行数据锁定,可使得针对同一数据的事务处理可并行进行,提高分布式事务系统的吞吐量,提高事务处理效率。
本申请实施例四还提供一种事务消息处理方法。该实施例四的该事务消息处理方法可通过具体实例对上述任一所述的事务消息处理方法进行说明。图5为本申请实施例四提供的一种事务消息处理方法的流程图。如图5所示,该方法可包括:
S501、客户端设备确定业务消息对应的至少一个事务消息。
举例来说,以用户A通过客户端设备购买商品B为例进行说明。如客户端设备接收到用户通过应用界面输入的商品B对应的提交订单指令,则可确定得到创建订单的事务消息、更新商品库存的事务消息、更新账户余额的事务消息等事务消息。其中,创建订单的事务消息对应的事务可包括:商品B的订单插入;更新商品库存的事务消息对应的事务可包括:商品B的库存更新;更新账户余额的事务消息对应的事务可包括:用户A的账户余额更新。
S502、客户端设备将该至少一个事务消息发送至事务协调器所在节点设备。
S503、事务协调器所在节点设备对该至少一个事务消息对应的事务进行注册,并确定每个事务消息对应的事务标识。
不同事务消息对应的事务标识不同。
S504、事务协调器所在节点设备向客户端设备发送该每个事务消息对应的事务标识。
S505、客户端设备记录该每个事务消息的标识。
S506、客户端设备确定该每个事务消息中是否包括回滚指示信息。
S507、若所述每个事务消息包括回滚指示信息,则客户端设备记录该回滚指示信息。
举例来说,若该创建订单的事务消息包括:创建订单的事务处理信息,以及,创建订单的回滚指示信息。其中,该创建订单的事务处理信息例如可以为:插入订单;创建订单的回滚指示信息例如可以为:删除订单。
若该更新商品库存的事务消息包括:更新商品库存的事务处理信息,以及,更新商品库存的回滚指示信息。其中,更新商品库存的事务处理信息例如可以为:更新商品库存=商品库存-x;更新商品库存的回滚指示信息例如可以为:商品库存=商品库存+x。其中,x为用户A的购买商品B个数。
若该更新账户余额的事务消息包括:更新账户余额的事务处理信息,以及,更新账户余额的回滚指示信息。其中,更新账户余额的事务处理信息例如可以为:更新余额=余额-z;更新账户余额的回滚指示信息例如可以为:商更新余额=余额+z。其中,z为该创建订单中商品B的价格。
该客户端设备将各事务消息中的回滚指示信息进行记录。
S508、客户端设备对该每个事务消息对应的事务进行处理。
客户端设备例如可以是根据创建订单的事务处理信息插入订单进行事务处理,以插入商品B的创建订单;根据更新商品库存的事务处理信息如更新商品库存=商品库存-x进行事务处理,若事务处理前,商品B的库存为200,那么进行事务处理器将商品B的库存更新为200-x;根据更新账户余额的事务处理信息如更新余额=余额-z进行事务处理,若事务处理前,用户A的账户余额为95,进行事务处理器可将用户A的账户余额更新为95-z。
S509、客户端设备将该每个事务消息对应的事务处理的结果发送至事务协调器所在节点设备。
S510、若该至少一个事务消息对应的事务均处理成功,事务协调器所在节点设备向客户端设备发送事务提交请求消息。
S511、客户端设备对该至少一个事务消息对应的事务进行提交,并删除记录的该每个事务消息的回滚指示信息。
S512、若该至少一个事务消息对应的事务存在未处理成功的事务,事务协调器所在节点设备向客户端设备发送事务回滚请求消息。
如该创建订单的事务消息、更新商品库存的事务消息、更新账户余额的事务消息中任一事务消息对应的事务未处理成功,该事务协调器所在节点设备可向客户端设备发送事务回滚请求消息。
S513、客户端设备根据每个事务消息的回滚指示信息对该每个事务消息对应的事务进行回滚,并删除记录的该每个事务消息的回滚指示信息。
客户端设备在接收到该事务回滚请求消息后,可根据记录的回滚指示信息中,创建订单的回滚指示信息:删除订单,将插入的商品B的创建订单删除;根据更新商品库存的回滚指示信息:商品库存=商品库存+x,对商品B的库存进行回滚;根据更新账户余额的回滚指示信息:余额=余额+z,对用户A的账户余额进行回滚。
举例来说,若用户A创建商品B的订单之前,用户A的余额为95,用户A购买商品B的金额为5,根据更新用户A的余额的事务消息进行事务处理后,用户A的余额可以为90。若用户A还针对商品C进行交易,用户A创建商品C的订单之前,用户A的余额为90,用户A购买商品C的金额为10,根据更新用户A的余额的事务消息进行事务处理后,用户A的余额可以为80。
如针对用户A购买商品B的事务处理失败后,需对商品B的库存进行回滚。由于更新用户A的余额的事务消息可包括:更新用户A的账户余额的回滚指示信息,余额=余额+z,z为商品B的价格,在此z可以为5,那么,根据该更新用户A的账户余额的回滚指示信息中的余额=余额+z,可直接将用户A的余额通过85=80+5,可将用户A的账户余额更新为85。
基于本申请的方法,无需先将用户A基于商品C的事务处理进行回滚,再将用户A基于商品B的事务处理进行回滚,便可直接将用户A基于商品B的事务处理进行回滚,保证了用户A基于商品C的正常交易。
本申请实施例四提供的该事务消息处理方法,通过具体实例对上述的各事务消息处理方法进行说明,有益效果可参见上述,在此不再赘述。
需要说明的是,该实施例四中的各事务消息仅为实例说明,本申请并不依次作为限制。
本申请实施例五还提供一种事务消息处理装置。该实施例五所示的事务消息处理装置可通过软件和/或硬件的方式集成在客户端设备中。图6为本申请实施例五提供的一种事务消息处理装置的结构示意图。如图6所示,该事务消息处理装置600可包括:
确定模块601,用于确定业务消息对应的事务消息。
判断模块602,用于判断该事务消息否包括回滚指示信息。
记录模块603,用于若该事务消息包括该回滚指示信息,记录该回滚指示信息。该回滚指示信息用以对该事务消息对应的事务进行回滚。
可选的,事务消息处理装置600还可包括:
第一处理模块,用于对该事务消息对应的事务进行处理;
第一发送模块,用于将该事务消息对应的事务的处理结果发送至事务协调器所在节点设备。
可选的,事务消息处理装置600还包括:
第一接收模块,用于接收该事务协调器所在节点设备发送的事务提交请求消息;该事务提交请求消息为该事务协调器所在节点设备在确定该事务消息对应的事务处理成功后发送的;
提交模块,用于对该事务消息对应的事务进行提交。
可选的,事务消息处理装置600还包括:
第一删除模块,用于删除记录的该回滚指示信息。
可选的,事务消息处理装置600还可包括:
第二接收模块,用于接收该事务协调器所在节点设备发送的事务回滚请求消息;该事务回滚请求消息为该事务协调器所在节点设备在确定该事务消息对应的事务存在未处理成功的事务后发送的;
回滚模块,用于根据该回滚指示信息对该事务消息对应的事务进行回滚。
可选的,事务消息处理装置600还包括:
第二删除模块,用于删除记录的该回滚指示信息。
可选的,该事务消息处理装置600还包括:
第二发送模块,用于将该事务消息发送至事务协调器所在节点设备;
第三接收模块,用于接收该事务协调器所在节点设备发送的该事务消息对应的事务标识;
记录模块603,还用于记录该事务消息对应的事务标识。
可选的,记录模块603,具体用于记录该回滚指示信息,和,该回滚指示信息与该事务消息对应的事务标识之间的对应关系。
可选的,事务消息处理装置600还可包括:
生成模块,用于若该事务消息不包括该回滚规则指示信息,生成该事务消息对应事务的回滚数据;
第二处理模块,用于对该事务消息对应的事务进行处理;
该生成模块,还用于生成该事务消息对应事务的重做数据;
记录模块603,还用于记录该回滚数据和该重做数据。
本申请实施例五提供的事务消息处理装置可用于执行图2、图3及图5中任一所述的客户端设备执行的事务消息处理方法,其有益效果可参见上述,在此不再赘述。
本申请实施例六还提供一种客户端设备。图7为本申请实施例五提供的一种客户端设备的结构示意图。该客户端设备可以为:智能手机、平板电脑、笔记本计算机、台式计算机等任一。如图7所示,该客户端设备700可包括处理器701和存储器702。
其中,处理器701,可以为中央处理器(Central Processing Unit,简称CPU)。处理器701还可以为其他通用处理器、数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器702,可以包括易失性存储器(volatile memory),例如随机存取存储器(Random-access memory,简称RAM);存储器702也可以包括非易失性存储器(non-volatilememory),例如只读存储器(Read-Only Memory,简称ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,简称HDD)或固态硬盘(Solid-State Drive,简称SSD);存储器702还可以包括上述种类的存储器的组合。
处理器701,与存储器702耦合,用于确定业务消息对应的事务消息;判断该事务消息否包括回滚指示信息;若该事务消息包括该回滚指示信息,控制该存储器记录该回滚指示信息;该回滚指示信息用以对事务消息对应的事务进行回滚。
可选的,处理器701还用于对所述事务消息对应的事务进行处理。
客户端设备700还可包括:
发送器,与处理器701耦合,用于将所述事务消息对应的事务的处理结果发送至事务协调器所在节点设备。
可选的,客户端设备700还可包括:
接收器,与处理器701耦合,用于接收该事务协调器所在节点设备发送的事务提交请求消息;该事务提交请求消息为该事务协调器所在节点设备在确定该事务消息对应的事务处理成功后发送的;
处理器701,还用于对该事务消息对应的事务进行提交。
可选的,处理器701还用于控制存储器702删除记录的该回滚指示信息。
可选的,该接收器,还用于接收该事务协调器所在节点设备发送的事务回滚请求消息;该事务回滚请求消息为该事务协调器所在节点设备在确定该事务消息对应的事务存在未处理成功的事务后发送的。
处理器701,还用于根据该回滚指示信息对该事务消息对应的事务进行回滚。
可选的,处理器701,还用于控制存储器702删除记录的所述回滚指示信息。
可选的,发送器,还用于将该事务消息发送至事务协调器所在节点设备。
接收器,还用于接收事务协调器所在节点设备发送的该事务消息对应的事务标识。
处理器701,还用于控制存储器702记录该事务消息对应的事务标识。
可选的,处理器701,具体用于控制存储器702记录该回滚指示信息,和,该回滚指示信息与该事务消息对应的事务标识之间的对应关系。
可选的,处理器701,还用于若事务消息不包括回滚规则指示信息,生成事务消息对应事务的回滚数据;对事务消息对应的事务进行处理;生成事务消息对应事务的重做数据。
处理器701,还用于控制存储器702记录该回滚数据和该重做数据。
可选的,该事务消息对应的事务包括如下任一:数据插入、数据更新及数据删除。
本申请实施例六还提供一种处理器可读存储介质。该可读存储介质中存储有程序指令,该程序指令用于使处理器701执行:图2、图3及图5中任一所述的客户端设备执行的事务消息处理方法的全部或部分步骤。上述可读存储存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例六提供的客户端设备及可读存储介质可用于执行上述图2、图3及图5中任一所述的客户端设备执行的事务消息处理方法,其有益效果可参见上述,在此不再赘述。
本申请实施例七还提供一种事务消息处理装置。该实施例七所示的事务消息处理装置可通过软件和/或硬件的方式集成在事务协调器所在节点设备中。图8为本申请实施例七提供的一种事务消息处理装置的结构示意图。如图8所示,该事务消息处理装置800可包括:
接收模块801,用于接收客户端设备发送的事务消息对应的事务的处理结果;该事务消息对应的事务的处理结果为该客户端设备对该事务消息对应的事务进行处理的结果;该客户端设备记录有该事务消息包括的回滚指示信息,该回滚指示信息用以对该事务消息对应的事务进行回滚。
确定模块802,用于根据该处理结果确定该事务消息对应的事务是否处理成功。
发送模块803,用于若该事务消息对应的事务存在未处理成功的事务,则向该客户端设备发送事务回滚请求消息;该事务回滚请求消息用于使得该客户端设备根据存储的该回滚指示信息对该事务消息对应的事务进行回滚。
可选的,发送模块803,还用于若该事务消息对应的事务处理成功,则向该客户端设备事务提交请求消息;该事务提交请求消息用于使得该客户端设备对该事务消息对应的事务进行提交。
可选的,接收模块801,还用于接收该客户端设备发送的该事务消息。
确定模块802,还用于根据该事务消息确定该事务消息对应的事务标识。
可选的,发送模块803,还用于将该事务消息对应的事务标识发送至该客户端设备,该事务消息对应的事务标识用于使得该客户端设备记录该回滚指示信息,和,该回滚指示信息与该事务消息对应的事务标识之间的对应关系。
可选的,该事务消息处理装置800还包括:
记录模块,用于记录该事务标识,和,该事务消息对应的事务的处理结果。
本申请实施例七提供的事务消息处理装置可用于执行上述图4或图5中任一所述的事务协调器所在节点设备执行的事务消息处理方法,其有益效果可参见上述,在此不再赘述。
本申请实施例八还提供一种事务协调器所在节点设备。图9为本申请实施例八提供的一种事务协调器所在节点设备的结构示意图。如图9所示,该事务协调器所在节点设备900可包括:接收器901、处理器902和发送器903。其中,接收器901、处理器902和发送器903通过通信总线904连接。
其中,处理器902,可以为CPU。处理器902还可以为其他通用处理器、DSP)、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
接收器901和发送器903可以为接口电路,接收器901用于信号的接收,发送器903用于信号的发送;另外,接收器901和发送器903可通过无线通信与网络和其他设备通信。
通信总线904可以包括数据总线、电源总线、控制总线和信号状态总线等。本实施例中为了清楚说明,在图9中将各种总线都示意为一条直线。
具体地,接收器901,用于接收客户端设备发送的事务消息对应的事务的处理结果,并将该处理结果传输至处理器902;该事务消息对应的事务的处理结果为该客户端设备对该事务消息对应的事务进行处理的结果;该客户端设备记录有该事务消息包括的回滚指示信息,该回滚指示信息用以对该事务消息对应的事务进行回滚。
处理器902,用于根据该处理结果确定该事务消息对应的事务是否处理成功。
发送器903,用于若处理器902确定该事务消息对应的事务存在未处理成功的事务,则向该客户端设备发送事务回滚请求消息;该事务回滚请求消息用于使得该客户端设备根据存储的该回滚指示信息对该事务消息对应的事务进行回滚。
可选的,发送器903,还用于若处理器902该事务消息对应的事务处理成功,则向该客户端设备事务提交请求消息;该事务提交请求消息用于使得该客户端设备对该事务消息对应的事务进行提交。
可选的,接收器901,还用于接收该客户端设备发送的该事务消息,并将该事务消息传输至处理器902。
处理器902,还用于根据该事务消息确定该事务消息对应的事务标识。
可选的,发送器903,还用于将处理器902所确定的该事务消息对应的事务标识发送至该客户端设备,该事务消息对应的事务标识用于使得该客户端设备记录该回滚指示信息,和,该回滚指示信息与该事务消息对应的事务标识之间的对应关系。
可选的,处理器902,还用于记录该事务标识,和,该事务消息对应的事务的处理结果。
本申请实施例八提供的事务协调器所在节点设备可用于执行上述图4或图5中任一所述的事务协调器所在节点设备执行的事务消息处理方法,其有益效果可参见上述,在此不再赘述。
本发明实施例九提供的事务消息处理系统。图10为本发明实施例九提供的一种事务消息处理系统的结构示意图。如图10所示,事务消息处理系统包括:客户端设备1001和事务协调器所在节点设备1002;客户端设备1001与事务协调器所在节点设备1002连接。
客户端设备1001,用于确定业务消息对应的事务消息;判断该事务消息否包括回滚指示信息;若该事务消息包括该回滚指示信息,记录该回滚指示信息;该回滚指示信息用以对该事务消息对应的事务进行回滚。
事务协调器所在节点设备1002,用于接收客户端设备1001发送的事务消息对应的事务的处理结果;根据该处理结果确定该事务消息对应的事务是否处理成功;若该事务消息对应的事务存在未处理成功的事务,则向客户端设备1001发送事务回滚请求消息。
客户端设备1001,还用于根据记录的该回滚指示信息对该事务消息对应的事务进行回滚。
具体地,客户端设备1001为上述图7所示的客户端设备,事务协调器所在节点设备1002为上述图9所示的事务协调器所在节点设备。
可选的,客户端设备1001可执行上述图2、图3及图5中任一所述的客户端设备执行的事务消息处理方法,事务协调器所在节点设备1002可执行上述图4或图5中任一所述的事务协调器所在节点设备执行的事务消息处理方法。
本申请实施例九提供的事务消息处理系统所包括的客户端设备可执行上述图2、图3及图5中任一所述的客户端设备执行的事务消息处理方法,事务消息处理系统所包括的事务协调器所在节点设备可执行上述图4或图5中任一所述的事务协调器所在节点设备执行的事务消息处理方法,其具体的实现过程及有益效果可参见上述,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (20)

1.一种事务消息处理系统,其特征在于,包括:客户端设备和事务协调器所在节点设备;所述客户端设备与所述事务协调器所在节点设备连接;
所述客户端设备,用于确定业务消息对应的事务消息;解析所述事务消息的SQL语句,确定所述解析后的事务消息中是否包括回滚指示信息对应的字符串,若所述解析后的事务消息中包括所述回滚指示信息对应的字符串,则确定所述事务消息包括回滚指示信息,并记录所述回滚指示信息;所述回滚指示信息用以对所述事务消息对应的事务进行回滚;
所述事务协调器所在节点设备,用于接收所述客户端设备发送的事务消息对应的事务的处理结果;所述事务包括数据插入或数据更新;根据所述处理结果确定所述事务消息对应的事务是否处理成功;若所述事务消息对应的事务存在未处理成功的事务,则向所述客户端设备发送事务回滚请求消息;
所述客户端设备,还用于根据记录的所述回滚指示信息对所述事务消息对应的事务进行回滚。
2.一种事务消息处理方法,其特征在于,包括:
确定业务消息对应的事务消息;
解析所述事务消息的SQL语句,确定所述解析后的事务消息中是否包括回滚指示信息对应的字符串,若所述解析后的事务消息中包括所述回滚指示信息对应的字符串,则确定所述事务消息包括回滚指示信息,并记录所述回滚指示信息;所述回滚指示信息用以对所述事务消息对应的事务进行回滚。
3.根据权利要求2所述的方法,其特征在于,所述记录所述回滚指示信息之后,所述方法还包括:
对所述事务消息对应的事务进行处理;
将所述事务消息对应的事务的处理结果发送至事务协调器所在节点设备。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收所述事务协调器所在节点设备发送的事务提交请求消息;所述事务提交请求消息为所述事务协调器所在节点设备在确定所述事务消息对应的事务处理成功后发送的;
对所述事务消息对应的事务进行提交。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
删除记录的所述回滚指示信息。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收所述事务协调器所在节点设备发送的事务回滚请求消息;所述事务回滚请求消息为所述事务协调器所在节点设备在确定所述事务消息对应的事务存在未处理成功的事务后发送的;
根据所述回滚指示信息对所述事务消息对应的事务进行回滚。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
删除记录的所述回滚指示信息。
8.根据权利要求2-7中任一项所述的方法,其特征在于,所述解析所述事务消息的SQL语句,确定所述解析后的事务消息中是否包括回滚指示信息对应的字符串之前,所述方法还包括:
将所述事务消息发送至事务协调器所在节点设备;
接收所述事务协调器所在节点设备发送的所述事务消息对应的事务标识;
记录所述事务消息对应的事务标识。
9.根据权利要求8所述的方法,其特征在于,所述记录所述回滚指示信息,包括:
记录所述回滚指示信息,和,所述回滚指示信息与所述事务消息对应的事务标识之间的对应关系。
10.根据权利要求2-7中任一项所述的方法,其特征在于,所述方法还包括:
若所述事务消息不包括所述回滚指示信息,生成所述事务消息对应事务的回滚数据;
对所述事务消息对应的事务进行处理;
生成所述事务消息对应事务的重做数据;
记录所述回滚数据和所述重做数据。
11.根据权利要求2-7中任一项所述的方法,其特征在于,所述事务消息对应的事务包括如下任一:
数据插入、数据更新及数据删除。
12.一种事务消息处理装置,其特征在于,包括:
确定模块,用于确定业务消息对应的事务消息;
判断模块,用于解析所述事务消息的SQL语句,确定所述解析后的事务消息中是否包括回滚指示信息对应的字符串;
记录模块,用于若所述解析后的事务消息中包括所述回滚指示信息对应的字符串,则确定所述事务消息包括回滚指示信息,并记录所述回滚指示信息;所述回滚指示信息用以对所述事务消息对应的事务进行回滚。
13.一种客户端设备,其特征在于,包括:处理器和存储器;
所述处理器,与所述存储器耦合,用于确定业务消息对应的事务消息;解析所述事务消息的SQL语句,确定所述解析后的事务消息中是否包括回滚指示信息对应的字符串,若所述解析后的事务消息中包括所述回滚指示信息对应的字符串,则确定所述事务消息包括回滚指示信息,控制所述存储器记录所述回滚指示信息;所述回滚指示信息用以对所述事务消息对应的事务进行回滚。
14.一种事务消息处理方法,其特征在于,包括:
接收客户端设备发送的事务消息对应的事务的处理结果;所述事务包括数据插入或数据更新;所述事务消息对应的事务的处理结果为所述客户端设备对所述事务消息对应的事务进行处理的结果;
根据所述处理结果确定所述事务消息对应的事务是否处理成功;
若所述事务消息对应的事务存在未处理成功的事务,则向所述客户端设备发送事务回滚请求消息;所述事务回滚请求消息用于使得所述客户端设备根据记录的回滚指示信息对所述事务消息对应的事务进行回滚。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
若所述事务消息对应的事务处理成功,则向所述客户端设备事务提交请求消息;所述事务提交请求消息用于使得所述客户端设备对所述事务消息对应的事务进行提交。
16.根据权利要求14所述的方法,其特征在于,所述方法还包括:
接收所述客户端设备发送的所述事务消息;
根据所述事务消息确定所述事务消息对应的事务标识。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
将所述事务消息对应的事务标识发送至所述客户端设备,所述事务消息对应的事务标识用于使得所述客户端设备记录所述回滚指示信息,和,所述回滚指示信息与所述事务消息对应的事务标识之间的对应关系。
18.根据权利要求16所述的方法,其特征在于,所述方法还包括:
记录所述事务标识,和,所述事务消息对应的事务的处理结果。
19.一种事务消息处理装置,其特征在于,包括:
接收模块,用于接收客户端设备发送的事务消息对应的事务的处理结果;所述事务包括数据插入或数据更新;所述事务消息对应的事务的处理结果为所述客户端设备对所述事务消息对应的事务进行处理的结果;所述客户端设备记录有所述事务消息包括的回滚指示信息,所述回滚指示信息用以对所述事务消息对应的事务进行回滚;
确定模块,用于根据所述处理结果确定所述事务消息对应的事务是否处理成功;
发送模块,用于若所述事务消息对应的事务存在未处理成功的事务,则向所述客户端设备发送事务回滚请求消息;所述事务回滚请求消息用于使得所述客户端设备根据存储的所述回滚指示信息对所述事务消息对应的事务进行回滚。
20.一种事务协调器所在节点设备,其特征在于,包括:接收器、处理器和发送器;其中,所述接收器、所述处理器和所述发送器通过通信总线连接;
所述接收器,用于接收客户端设备发送的事务消息对应的事务的处理结果;所述事务包括数据插入或数据更新;所述事务消息对应的事务的处理结果为所述客户端设备对所述事务消息对应的事务进行处理的结果;所述客户端设备记录有所述事务消息包括的回滚指示信息,所述回滚指示信息用以对所述事务消息对应的事务进行回滚;
所述处理器,用于根据所述处理结果确定所述事务消息对应的事务是否处理成功;
所述发送器,用于若所述事务消息对应的事务存在未处理成功的事务,则向所述客户端设备发送事务回滚请求消息;所述事务回滚请求消息用于使得所述客户端设备根据存储的所述回滚指示信息对所述事务消息对应的事务进行回滚。
CN201610709666.3A 2016-08-23 2016-08-23 事务消息处理方法、装置、设备及系统 Active CN107766080B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610709666.3A CN107766080B (zh) 2016-08-23 2016-08-23 事务消息处理方法、装置、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610709666.3A CN107766080B (zh) 2016-08-23 2016-08-23 事务消息处理方法、装置、设备及系统

Publications (2)

Publication Number Publication Date
CN107766080A CN107766080A (zh) 2018-03-06
CN107766080B true CN107766080B (zh) 2021-11-09

Family

ID=61264250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610709666.3A Active CN107766080B (zh) 2016-08-23 2016-08-23 事务消息处理方法、装置、设备及系统

Country Status (1)

Country Link
CN (1) CN107766080B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563693A (zh) * 2018-03-16 2018-09-21 阿里巴巴集团控股有限公司 一种事务的处理方法、装置及设备
CN110502317B (zh) * 2018-05-16 2024-03-01 北京京东尚科信息技术有限公司 一种事务管理的方法和装置
CN109388481B (zh) * 2018-09-21 2021-08-17 网易(杭州)网络有限公司 一种事务信息的传输方法、系统、装置、计算设备和介质
CN109491766B (zh) * 2018-10-10 2022-03-04 阿里巴巴集团控股有限公司 一种事务消息的投递方法、装置、系统及消息服务器
CN109948994A (zh) * 2018-12-14 2019-06-28 深圳壹账通智能科技有限公司 一种即时通信方法、装置、计算机系统及可读存储介质
CN111045839A (zh) * 2019-12-04 2020-04-21 中国建设银行股份有限公司 分布式环境下基于两阶段事务消息的顺序调用方法及装置
CN112835687B (zh) * 2021-01-22 2023-05-26 恒生电子股份有限公司 一种计算机事务处理方法及系统
CN112882801B (zh) * 2021-01-28 2022-09-02 杭州衣科信息技术股份有限公司 一种基于mq的分布式事务实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571850A (zh) * 2010-12-24 2012-07-11 中国移动通信集团山东有限公司 事务提交系统、方法及设备
CN103995868A (zh) * 2014-05-20 2014-08-20 科大国创软件股份有限公司 面向分布式系统的全局事务管理器及事务处理方法
CN105592117A (zh) * 2014-10-23 2016-05-18 阿里巴巴集团控股有限公司 一种事务消息的处理方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102144218A (zh) * 2008-07-28 2011-08-03 超威半导体公司 可虚拟化的先进同步设备
CN102141946B (zh) * 2011-03-25 2014-08-20 北京世纪互联宽带数据中心有限公司 一种图形数据库联机事务数据恢复的方法及系统
CN103514028B (zh) * 2012-06-14 2016-12-21 北京新媒传信科技有限公司 一种处理分布式事务的方法和装置
CN103546440B (zh) * 2012-07-16 2016-10-12 上海宝信软件股份有限公司 一种客户端发起事务的事务实现方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571850A (zh) * 2010-12-24 2012-07-11 中国移动通信集团山东有限公司 事务提交系统、方法及设备
CN103995868A (zh) * 2014-05-20 2014-08-20 科大国创软件股份有限公司 面向分布式系统的全局事务管理器及事务处理方法
CN105592117A (zh) * 2014-10-23 2016-05-18 阿里巴巴集团控股有限公司 一种事务消息的处理方法和装置

Also Published As

Publication number Publication date
CN107766080A (zh) 2018-03-06

Similar Documents

Publication Publication Date Title
CN107766080B (zh) 事务消息处理方法、装置、设备及系统
US8209284B1 (en) Data propagation in a multi-shard database system
US7383289B2 (en) Updating and maintaining data in a multi-system network using asynchronous message transfer
US20180329930A1 (en) Upgrading systems with changing constraints
CN109542980B (zh) 一种区块链的数据处理方法、装置、设备及介质
US20170193034A1 (en) Object data updating method and apparatus in an object storage system
US8650224B2 (en) Batching content management operations to facilitate efficient database interactions
CN103886079A (zh) 一种数据处理方法和系统
WO2020000720A1 (zh) 服务器、报文处理方法、程序和计算机可读存储介质
CN110888718A (zh) 分布式事务的实现方法及装置
US7636873B2 (en) Enhancement of assured event delivery mechanism to eliminate external XA store requirement
WO2021098139A1 (zh) 跨链交易的状态数据的存储方法、装置及存储介质
CN110795447A (zh) 数据处理方法、数据处理系统、电子设备和介质
CN111651284A (zh) 一种处理业务数据的方法、装置、系统及存储介质
US20220092224A1 (en) Data management system with tamper-evidence
US11816163B2 (en) Systems and methods for improved transactional mainframes
US10942892B2 (en) Transport handling of foreign key checks
CN110942300A (zh) 转账证明提交方法、设备和存储介质
CN107038617B (zh) 支付订单的预创建方法及装置
US8661454B2 (en) System and method for receiving and transmitting event information
US11288276B2 (en) Method, system, and computer program product for identifying and resolving constraint violations in a database replication system
CN113835780A (zh) 一种事件响应方法及装置
EP2601627B1 (en) Transaction processing system and method
US10452424B2 (en) Unique transaction identifier based transaction processing
CN115456802B (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
GR01 Patent grant
GR01 Patent grant