CN111708619B - 基于消息队列和数据库的分布式事务处理方法及系统 - Google Patents

基于消息队列和数据库的分布式事务处理方法及系统 Download PDF

Info

Publication number
CN111708619B
CN111708619B CN202010840396.6A CN202010840396A CN111708619B CN 111708619 B CN111708619 B CN 111708619B CN 202010840396 A CN202010840396 A CN 202010840396A CN 111708619 B CN111708619 B CN 111708619B
Authority
CN
China
Prior art keywords
transaction
path
server
information
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.)
Active
Application number
CN202010840396.6A
Other languages
English (en)
Other versions
CN111708619A (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.)
Shanghai IceKredit Inc
Original Assignee
Shanghai IceKredit Inc
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 Shanghai IceKredit Inc filed Critical Shanghai IceKredit Inc
Priority to CN202010840396.6A priority Critical patent/CN111708619B/zh
Publication of CN111708619A publication Critical patent/CN111708619A/zh
Application granted granted Critical
Publication of CN111708619B publication Critical patent/CN111708619B/zh
Priority to US17/376,161 priority patent/US11354303B2/en
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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于消息队列和数据库的分布式事务处理方法及系统。在该方法中,组件封装服务器根据获取到的业务请求服务器的第一配置信息以及业务执行服务器的第二配置信息生成目标压缩包,并将目标压缩包分别发送至业务请求服务器和业务执行服务器,能够使得业务请求服务器和业务执行服务器基于目标压缩包进行解压配置,从而实现对事务处理组件和消息传输路径的部署。这样能够使得不同的业务请求服务器和业务执行服务器基于消息队列进行分布式事务的处理,从而提高基于消息队列和数据库的分布式事务处理方案的易用性以及方案部署效率。

Description

基于消息队列和数据库的分布式事务处理方法及系统
技术领域
本发明涉及事务处理技术领域,具体而言,涉及一种基于消息队列和数据库的分布式事务处理方法及系统。
背景技术
事务是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作。分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。但是由于Java数据库连接(Java DatabaseConnectivity,JDBC)只能保证同一个数据库在同一个系统的代码中事务有效,不能保证不同数据库或不同系统之间的事务一致性。
相关技术如XA二阶段提交方案、TCC方案、最大努力通知方案和可靠消息最终一致性方案虽然能够解决上述的事务一致性问题,然是这些技术会存在一定的问题:XA二阶段提交方案的性能差;TCC方案的代码逻辑实现繁杂;最大努力通知方案的使用场景单一,只能适用于对最终一致性时间敏感度低的业务;可靠消息最终一致性方案需要使用RocketMq这种特定的消息队列,会限制消息队列的选择。
因此,基于消息队列的最终一致性方案广泛用于解决事务一致性问题,但是基于消息队列的最终一致性方案易用性差,难以快速地部署到不同的分布式系统中。
发明内容
为了改善上述问题,本发明提供了一种基于消息队列和数据库的分布式事务处理方法及系统,能够根据不同的业务请求服务器和业务执行服务器的配置信息生成用于对分布式事务处理组件进行部署的目标压缩包,这样能够使得业务请求服务器和业务执行服务器分别基于目标压缩包进行分布式事务处理组件和相关功能的部署,从而提高基于消息队列和数据库的分布式事务处理方案的易用性以及方案部署效率。
本发明实施例的第一方面,提供了一种基于消息队列和数据库的分布式事务处理方法,应用于分布式事务处理系统,所述分布式事务处理系统包括组件封装服务器、业务请求服务器以及业务执行服务器,所述业务请求服务器和所述业务执行服务器通过消息队列通信,所述组件封装服务器分别与所述业务请求服务器以及所述业务执行服务器通信,所述方法包括:
所述组件封装服务器获取所述业务请求服务器的第一配置信息以及所述业务执行服务器的第二配置信息;其中,所述第一配置信息包括所述业务请求服务器的数据源信息以及所述业务请求服务器中的事务管理器的第一参数信息,所述第二配置信息包括所述业务执行服务器中的事务处理器的第二参数信息;
所述组件封装服务器根据所述第一配置信息和所述第二配置信息生成目标压缩包,将所述目标压缩包分别发送至所述业务请求服务器和所述业务执行服务器;
所述业务请求服务器对所述目标压缩包进行解压配置,生成事务处理组件,将预存的用户信息导入所述事务处理组件中;
所述业务执行服务器对所述目标压缩包进行解压配置,建立所述事务处理器与所述消息队列的消息传输路径;
所述业务请求服务器根据接收到的用户请求在所述事务处理组件中创建用户记录,并根据所述用户记录生成事务消息,将所述事务消息发送给所述消息队列;其中,所述事务处理组件中包括用于存储用户记录的数据库;
所述业务执行服务器通过所述消息传输路径从所述消息队列中抽取所述事务消息并通过所述事务管理器对所述事务消息进行处理。
可选地,所述组件封装服务器根据所述第一配置信息和所述第二配置信息生成目标压缩包,包括:
确定所述数据源信息与所述第一参数信息之间的匹配路径;其中,所述匹配路径包括所述事务管理器在创建事件发布表时所调用的所述数据源信息中的目标信息的调用路径;
抽取所述匹配路径中的每个路径节点的节点属性信息和节点关联标识;其中,所述节点属性信息用于表征所述路径节点的存储空间地址,所述关联标识用于表征所述路径节点之间的层级关系;
根据所述节点属性信息和节点关联标识生成分布式事务处理组件的脚本文件,将所述业务请求服务器的第一设备标签植入所述脚本文件中,得到目标脚本文件;
构建所述事务处理器的第二参数信息的信息列表清单并确定所述信息列表清单对应的多条业务线程信息;基于数据接口的接口参数将每条业务线程信息对应的字符串进行拼接得到所述数据接口的路径参数;对所述路径参数进行打包得到所述事务处理器的路径安装包,将所述业务执行服务器的第二设备标签植入所述路径安装包;
将所述目标脚本文件和所述路径安装包进行压缩得到所述目标压缩包。
可选地,所述业务请求服务器对所述目标压缩包进行解压配置,生成事务处理组件,包括:
从所述目标压缩包中获取所述脚本文件,运行所述脚本文件生成用于存储所述数据源信息和所述第一参数信息的事务处理组件。
可选地,所述业务执行服务器对所述目标压缩包进行解压配置,建立所述事务处理器与所述消息队列的消息传输路径,包括:
解压所述路径安装包得到所述路径参数;
根据所述路径参数配置与所述消息队列对应的每个主题信息的handler类全路径;
按照所述handler类全路径与每条业务线程信息的路径匹配率建立所述事务处理器与所述消息队列的消息传输路径;其中,所述消息传输路径支持不同类型的事务消息的传输。
可选地,所述业务请求服务器根据接收到的用户请求在所述事务处理组件中创建用户记录,并根据所述用户记录生成事务消息,包括:
在所述事务处理组件的事务发布表中创建一条具有第一状态的用户记录;
从所述事务处理组件的数据库中获取用于记录所述用户请求的事务内容的payload信息,将所述payload信息确定为所述事务消息。
可选地,将所述事务消息发送给所述消息队列之后,所述方法还包括:
将所述用户记录由所述第一状态修改为第二状态;其中,所述第一状态用于表征所述用户记录为新建状态或未发布状态,所述第二状态用于表征所述用户记录为已发布状态。
可选地,通过所述事务管理器对所述事务消息进行处理,包括:
基于所述事务管理器中的事件处理表对所述事务消息进行处理,并将所述事件处理表中与所述事务消息对应的处理记录进行标记。
本发明实施例的第二方面,提供一种基于消息队列和数据库的分布式事务处理系统,包括组件封装服务器、业务请求服务器以及业务执行服务器,所述业务请求服务器和所述业务执行服务器通过消息队列通信,所述组件封装服务器分别与所述业务请求服务器以及所述业务执行服务器通信;
所述组件封装服务器用于获取所述业务请求服务器的第一配置信息以及所述业务执行服务器的第二配置信息;其中,所述第一配置信息包括所述业务请求服务器的数据源信息以及所述业务请求服务器中的事务管理器的第一参数信息,所述第二配置信息包括所述业务执行服务器中的事务处理器的第二参数信息;
所述组件封装服务器用于根据所述第一配置信息和所述第二配置信息生成目标压缩包,将所述目标压缩包分别发送至所述业务请求服务器和所述业务执行服务器;
所述业务请求服务器用于对所述目标压缩包进行解压配置,生成事务处理组件,将预存的用户信息导入所述事务处理组件中;
所述业务执行服务器用于对所述目标压缩包进行解压配置,建立所述事务处理器与所述消息队列的消息传输路径;
所述业务请求服务器用于根据接收到的用户请求在所述事务处理组件中创建用户记录,并根据所述用户记录生成事务消息,将所述事务消息发送给所述消息队列;其中,所述事务处理组件中包括用于存储用户记录的数据库;
所述业务执行服务器用于通过所述消息传输路径从所述消息队列中抽取所述事务消息并通过所述事务管理器对所述事务消息进行处理。
可选地,所述组件封装服务器具体用过以下方式根据所述第一配置信息和所述第二配置信息生成目标压缩包:
确定所述数据源信息与所述第一参数信息之间的匹配路径;其中,所述匹配路径包括所述事务管理器在创建事件发布表时所调用的所述数据源信息中的目标信息的调用路径;
抽取所述匹配路径中的每个路径节点的节点属性信息和节点关联标识;其中,所述节点属性信息用于表征所述路径节点的存储空间地址,所述关联标识用于表征所述路径节点之间的层级关系;
根据所述节点属性信息和节点关联标识生成分布式事务处理组件的脚本文件,将所述业务请求服务器的第一设备标签植入所述脚本文件中,得到目标脚本文件;
构建所述事务处理器的第二参数信息的信息列表清单并确定所述信息列表清单对应的多条业务线程信息;基于数据接口的接口参数将每条业务线程信息对应的字符串进行拼接得到所述数据接口的路径参数;对所述路径参数进行打包得到所述事务处理器的路径安装包,将所述业务执行服务器的第二设备标签植入所述路径安装包;
将所述目标脚本文件和所述路径安装包进行压缩得到所述目标压缩包。
可选地,
所述业务请求服务器具体通过以下方式对所述目标压缩包进行解压配置生成事务处理组件:
从所述目标压缩包中获取所述脚本文件,运行所述脚本文件生成用于存储所述数据源信息和所述第一参数信息的事务处理组件;
所述业务执行服务器具体通过以下方式对所述目标压缩包进行解压配置建立所述事务处理器与所述消息队列的消息传输路径:
解压所述路径安装包得到所述路径参数;根据所述路径参数配置与所述消息队列对应的每个主题信息的handler类全路径;按照所述handler类全路径与每条业务线程信息的路径匹配率建立所述事务处理器与所述消息队列的消息传输路径;其中,所述消息传输路径支持不同类型的事务消息的传输。
本发明实施例所提供的基于消息队列和数据库的分布式事务处理方法及系统,组件封装服务器根据获取到的业务请求服务器的第一配置信息以及业务执行服务器的第二配置信息生成目标压缩包,并将目标压缩包分别发送至业务请求服务器和业务执行服务器,能够使得业务请求服务器和业务执行服务器基于目标压缩包进行解压配置,从而实现对事务处理组件和消息传输路径的部署。这样能够使得不同的业务请求服务器和业务执行服务器基于消息队列进行分布式事务的处理,从而提高基于消息队列和数据库的分布式事务处理方案的易用性以及方案部署效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例所提供的一种基于消息队列和数据库的分布式事务处理系统的通信框架示意图。
图2为本发明实施例所提供的一种基于消息队列和数据库的分布式事务处理方法的流程图。
图标:
100-分布式事务处理系统;
200-组件封装服务器;
300-业务请求服务器;310-事务管理器;
400-业务执行服务器;410-事务处理器;
500-消息队列。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
请首先参阅图1,提供了一种基于消息队列和数据库的分布式事务处理系统100的通信架构示意图,所述分布式事务处理系统100可以包括组件封装服务器200、业务请求服务器300以及业务执行服务器400。其中,所述业务请求服务器300和所述业务执行服务器400通过消息队列500通信,所述组件封装服务器200分别与所述业务请求服务器300以及所述业务执行服务器通信400。在本实施例中,消息队列500是消息的传输过程中保存消息的容器。
在上述基础上,请结合参阅图2,提供了一种基于消息队列和数据库的分布式事务处理方法的流程图,所述分布式事务处理方法可以应用于图1中的基于消息队列和数据库的分布式事务处理系统100,具体可以包括以下步骤S210-步骤S260所描述的内容。
步骤S210,所述组件封装服务器获取所述业务请求服务器的第一配置信息以及所述业务执行服务器的第二配置信息。
在本实施例中,所述第一配置信息包括所述业务请求服务器的数据源信息以及所述业务请求服务器中的事务管理器的第一参数信息,所述第二配置信息包括所述业务执行服务器中的事务处理器的第二参数信息。
步骤S220,所述组件封装服务器根据所述第一配置信息和所述第二配置信息生成目标压缩包,将所述目标压缩包分别发送至所述业务请求服务器和所述业务执行服务器。
步骤S230,所述业务请求服务器对所述目标压缩包进行解压配置,生成事务处理组件,将预存的用户信息导入所述事务处理组件中。
步骤S240,所述业务执行服务器对所述目标压缩包进行解压配置,建立所述事务处理器与所述消息队列的消息传输路径。
步骤S250,所述业务请求服务器根据接收到的用户请求在所述事务处理组件中创建用户记录,并根据所述用户记录生成事务消息,将所述事务消息发送给所述消息队列。
在本实施例中,所述事务处理组件中包括用于存储用户记录的数据库;
步骤S260,所述业务执行服务器通过所述消息传输路径从所述消息队列中抽取所述事务消息并通过所述事务管理器对所述事务消息进行处理。
通过执行上述步骤S210-步骤S260所描述的内容能够达到如下有益技术效果:组件封装服务器根据获取到的业务请求服务器的第一配置信息以及业务执行服务器的第二配置信息生成目标压缩包,并将目标压缩包分别发送至业务请求服务器和业务执行服务器,能够使得业务请求服务器和业务执行服务器基于目标压缩包进行解压配置,从而实现对事务处理组件和消息传输路径的部署。这样能够使得不同的业务请求服务器和业务执行服务器基于消息队列进行分布式事务的处理,从而提高基于消息队列和数据库的分布式事务处理方案的易用性以及方案部署效率。
在具体实施时发明人发现,在生成目标压缩包的过程中,需要考虑业务请求服务器300和业务执行服务器400的异构性。进一步地,业务请求服务器300中事务管理器310和业务执行服务器400中的事务处理器410在进行事务处理时的处理逻辑是不同的,为了确保事务处理组件和消息传输路径的准确部署,步骤S220所描述的根据所述第一配置信息和所述第二配置信息生成目标压缩包,具体可以包括以下步骤S221-步骤S225所描述的内容。
步骤S221,确定所述数据源信息与所述第一参数信息之间的匹配路径;其中,所述匹配路径包括所述事务管理器在创建事件发布表时所调用的所述数据源信息中的目标信息的调用路径。
步骤S222,抽取所述匹配路径中的每个路径节点的节点属性信息和节点关联标识。
在本实施例中,所述节点属性信息用于表征所述路径节点的存储空间地址,所述关联标识用于表征所述路径节点之间的层级关系。
步骤S223,根据所述节点属性信息和节点关联标识生成分布式事务处理组件的脚本文件,将所述业务请求服务器的第一设备标签植入所述脚本文件中,得到目标脚本文件。
步骤S224,构建所述事务处理器的第二参数信息的信息列表清单并确定所述信息列表清单对应的多条业务线程信息;基于数据接口的接口参数将每条业务线程信息对应的字符串进行拼接得到所述数据接口的路径参数;对所述路径参数进行打包得到所述事务处理器的路径安装包,将所述业务执行服务器的第二设备标签植入所述路径安装包。
步骤S225,将所述目标脚本文件和所述路径安装包进行压缩得到所述目标压缩包。
可以理解,通过上述步骤S221-步骤S225所描述的内容,能够将事务管理器310和事务处理器410的处理逻辑的差异性考虑在内,从而生成对应的目标脚本文件和路径安装包,这样能够确保事务处理组件和消息传输路径的准确部署。
在上述步骤S221-步骤S225的基础上,步骤S230所描述的所述业务请求服务器对所述目标压缩包进行解压配置,生成事务处理组件,具体可以包括:从所述目标压缩包中获取所述脚本文件,运行所述脚本文件生成用于存储所述数据源信息和所述第一参数信息的事务处理组件。如此,能够在不同的业务请求服务器300中快速部署事务处理组件,无需使业务请求服务器300进行事务处理组件的模拟,从而简化部署工序。
在上述步骤S221-步骤S225的基础上,步骤S240所描述的所述业务执行服务器对所述目标压缩包进行解压配置,建立所述事务处理器与所述消息队列的消息传输路径,具体可以包括以下步骤(1)-步骤(3)所描述的内容。
(1)解压所述路径安装包得到所述路径参数。
(2)根据所述路径参数配置与所述消息队列对应的每个主题信息的handler类全路径。
(3)按照所述handler类全路径与每条业务线程信息的路径匹配率建立所述事务处理器与所述消息队列的消息传输路径。
在本实施例中,所述消息传输路径支持不同类型的事务消息的传输。
可以理解,通过上述步骤(1)-步骤(3)所描述的内容,能够使得业务执行服务器400准确地建立所述事务管理器410与所述消息队列的消息传输路径,从而确保事务消息传输的速率和可靠性。
进一步地,在一个可以实现的实施方式中,步骤S250所描述的所述业务请求服务器根据接收到的用户请求在所述事务处理组件中创建用户记录,并根据所述用户记录生成事务消息,具体可以包括以下步骤S251-步骤S252所描述的内容。
更进一步地,业务请求服务器300在将所述事务消息发送给所述消息队列500时,需要确定业务请求服务器300与消息队列500的接口。事务处理组件能够进行接口的抽象,从而基于具体的消息队列500来进行事务消息的发送。
步骤S251,在所述事务处理组件的事务发布表中创建一条具有第一状态的用户记录。
步骤S252,从所述事务处理组件的数据库中获取用于记录所述用户请求的事务内容的payload信息,将所述payload信息确定为所述事务消息。
例如,业务请求服务器300在接收到用户请求后开启事务,在事务处理组件的事务发布表中创建一条status为NEW的用户记录,其中status可以理解为用户记录的状态,NEW表征第一状态,即用户记录为新建的或者未发布的。
进一步地,业务请求服务器300中的定时器首先开启事务,然后从所述事务处理组件的数据库中获取用于记录所述用户请求的事务内容的payload信息,然后将payload信息发送给消息队列500。在发送成功之后,将用户记录由所述第一状态修改为第二状态。在本实施例中,第二状态用于表征用户记录为已发布状态。例如,可以将数据库中的status为NEW的用户记录修改为status为PUBLISHE的用户记录,然后提交事务。
进一步地,业务执行服务器400基于所述事务管理器410中的事件处理表对所述事务消息进行处理,并将所述事件处理表中与所述事务消息对应的处理记录进行标记。例如,可以将处理记录修改为PROCESSED状态(已处理状态),然后提交事务。可以理解,通过对处理记录进行标记,能够避免重复对处理记录进行处理,这样可以减少业务执行服务器400的运行负荷。
综上,本发明实施例所提供的基于消息队列和数据库的分布式事务处理方法及系统,组件封装服务器根据获取到的业务请求服务器的第一配置信息以及业务执行服务器的第二配置信息生成目标压缩包,并将目标压缩包分别发送至业务请求服务器和业务执行服务器,能够使得业务请求服务器和业务执行服务器基于目标压缩包进行解压配置,从而实现对事务处理组件和消息传输路径的部署。这样能够使得不同的业务请求服务器和业务执行服务器基于消息队列进行分布式事务的处理,从而提高基于消息队列和数据库的分布式事务处理方案的易用性以及方案部署效率。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种基于消息队列和数据库的分布式事务处理方法,其特征在于,应用于分布式事务处理系统,所述分布式事务处理系统包括组件封装服务器、业务请求服务器以及业务执行服务器,所述业务请求服务器和所述业务执行服务器通过消息队列通信,所述组件封装服务器分别与所述业务请求服务器以及所述业务执行服务器通信,所述方法包括:
所述组件封装服务器获取所述业务请求服务器的第一配置信息以及所述业务执行服务器的第二配置信息;其中,所述第一配置信息包括所述业务请求服务器的数据源信息以及所述业务请求服务器中的事务管理器的第一参数信息,所述第二配置信息包括所述业务执行服务器中的事务处理器的第二参数信息;
所述组件封装服务器根据所述第一配置信息和所述第二配置信息生成目标压缩包,将所述目标压缩包分别发送至所述业务请求服务器和所述业务执行服务器;
所述业务请求服务器对所述目标压缩包进行解压配置,生成事务处理组件,将预存的用户信息导入所述事务处理组件中;
所述业务执行服务器对所述目标压缩包进行解压配置,建立所述事务处理器与所述消息队列的消息传输路径;
所述业务请求服务器根据接收到的用户请求在所述事务处理组件中创建用户记录,并根据所述用户记录生成事务消息,将所述事务消息发送给所述消息队列;其中,所述事务处理组件中包括用于存储用户记录的数据库;
所述业务执行服务器通过所述消息传输路径从所述消息队列中抽取所述事务消息并通过所述事务管理器对所述事务消息进行处理。
2.如权利要求1所述的分布式事务处理方法,其特征在于,所述组件封装服务器根据所述第一配置信息和所述第二配置信息生成目标压缩包,包括:
确定所述数据源信息与所述第一参数信息之间的匹配路径;其中,所述匹配路径包括所述事务管理器在创建事件发布表时所调用的所述数据源信息中的目标信息的调用路径;
抽取所述匹配路径中的每个路径节点的节点属性信息和节点关联标识;其中,所述节点属性信息用于表征所述路径节点的存储空间地址,所述关联标识用于表征所述路径节点之间的层级关系;
根据所述节点属性信息和节点关联标识生成分布式事务处理组件的脚本文件,将所述业务请求服务器的第一设备标签植入所述脚本文件中,得到目标脚本文件;
构建所述事务处理器的第二参数信息的信息列表清单并确定所述信息列表清单对应的多条业务线程信息;基于数据接口的接口参数将每条业务线程信息对应的字符串进行拼接得到所述数据接口的路径参数;对所述路径参数进行打包得到所述事务处理器的路径安装包,将所述业务执行服务器的第二设备标签植入所述路径安装包;
将所述目标脚本文件和所述路径安装包进行压缩得到所述目标压缩包。
3.如权利要求2所述的分布式事务处理方法,其特征在于,所述业务请求服务器对所述目标压缩包进行解压配置,生成事务处理组件,包括:
从所述目标压缩包中获取所述脚本文件,运行所述脚本文件生成用于存储所述数据源信息和所述第一参数信息的事务处理组件。
4.如权利要求2所述的分布式事务处理方法,其特征在于,所述业务执行服务器对所述目标压缩包进行解压配置,建立所述事务处理器与所述消息队列的消息传输路径,包括:
解压所述路径安装包得到所述路径参数;
根据所述路径参数配置与所述消息队列对应的每个主题信息的handler类全路径;
按照所述handler类全路径与每条业务线程信息的路径匹配率建立所述事务处理器与所述消息队列的消息传输路径;其中,所述消息传输路径支持不同类型的事务消息的传输。
5.如权利要求1所述的分布式事务处理方法,其特征在于,所述业务请求服务器根据接收到的用户请求在所述事务处理组件中创建用户记录,并根据所述用户记录生成事务消息,包括:
在所述事务处理组件的事务发布表中创建一条具有第一状态的用户记录;
从所述事务处理组件的数据库中获取用于记录所述用户请求的事务内容的payload信息,将所述payload信息确定为所述事务消息。
6.如权利要求5所述的分布式事务处理方法,其特征在于,将所述事务消息发送给所述消息队列之后,所述方法还包括:
将所述用户记录由所述第一状态修改为第二状态;其中,所述第一状态用于表征所述用户记录为新建状态或未发布状态,所述第二状态用于表征所述用户记录为已发布状态。
7.如权利要求1所述的分布式事务处理方法,其特征在于,通过所述事务管理器对所述事务消息进行处理,包括:
基于所述事务管理器中的事件处理表对所述事务消息进行处理,并将所述事件处理表中与所述事务消息对应的处理记录进行标记。
8.一种基于消息队列和数据库的分布式事务处理系统,其特征在于,包括组件封装服务器、业务请求服务器以及业务执行服务器,所述业务请求服务器和所述业务执行服务器通过消息队列通信,所述组件封装服务器分别与所述业务请求服务器以及所述业务执行服务器通信;
所述组件封装服务器用于获取所述业务请求服务器的第一配置信息以及所述业务执行服务器的第二配置信息;其中,所述第一配置信息包括所述业务请求服务器的数据源信息以及所述业务请求服务器中的事务管理器的第一参数信息,所述第二配置信息包括所述业务执行服务器中的事务处理器的第二参数信息;
所述组件封装服务器用于根据所述第一配置信息和所述第二配置信息生成目标压缩包,将所述目标压缩包分别发送至所述业务请求服务器和所述业务执行服务器;
所述业务请求服务器用于对所述目标压缩包进行解压配置,生成事务处理组件,将预存的用户信息导入所述事务处理组件中;
所述业务执行服务器用于对所述目标压缩包进行解压配置,建立所述事务处理器与所述消息队列的消息传输路径;
所述业务请求服务器用于根据接收到的用户请求在所述事务处理组件中创建用户记录,并根据所述用户记录生成事务消息,将所述事务消息发送给所述消息队列;其中,所述事务处理组件中包括用于存储用户记录的数据库;
所述业务执行服务器用于通过所述消息传输路径从所述消息队列中抽取所述事务消息并通过所述事务管理器对所述事务消息进行处理。
9.如权利要求8所述的分布式事务处理系统,其特征在于,所述组件封装服务器具体用过以下方式根据所述第一配置信息和所述第二配置信息生成目标压缩包:
确定所述数据源信息与所述第一参数信息之间的匹配路径;其中,所述匹配路径包括所述事务管理器在创建事件发布表时所调用的所述数据源信息中的目标信息的调用路径;
抽取所述匹配路径中的每个路径节点的节点属性信息和节点关联标识;其中,所述节点属性信息用于表征所述路径节点的存储空间地址,所述关联标识用于表征所述路径节点之间的层级关系;
根据所述节点属性信息和节点关联标识生成分布式事务处理组件的脚本文件,将所述业务请求服务器的第一设备标签植入所述脚本文件中,得到目标脚本文件;
构建所述事务处理器的第二参数信息的信息列表清单并确定所述信息列表清单对应的多条业务线程信息;基于数据接口的接口参数将每条业务线程信息对应的字符串进行拼接得到所述数据接口的路径参数;对所述路径参数进行打包得到所述事务处理器的路径安装包,将所述业务执行服务器的第二设备标签植入所述路径安装包;
将所述目标脚本文件和所述路径安装包进行压缩得到所述目标压缩包。
10.如权利要求9所述的分布式事务处理系统,其特征在于,
所述业务请求服务器具体通过以下方式对所述目标压缩包进行解压配置生成事务处理组件:
从所述目标压缩包中获取所述脚本文件,运行所述脚本文件生成用于存储所述数据源信息和所述第一参数信息的事务处理组件;
所述业务执行服务器具体通过以下方式对所述目标压缩包进行解压配置建立所述事务处理器与所述消息队列的消息传输路径:
解压所述路径安装包得到所述路径参数;根据所述路径参数配置与所述消息队列对应的每个主题信息的handler类全路径;按照所述handler类全路径与每条业务线程信息的路径匹配率建立所述事务处理器与所述消息队列的消息传输路径;其中,所述消息传输路径支持不同类型的事务消息的传输。
CN202010840396.6A 2020-08-20 2020-08-20 基于消息队列和数据库的分布式事务处理方法及系统 Active CN111708619B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010840396.6A CN111708619B (zh) 2020-08-20 2020-08-20 基于消息队列和数据库的分布式事务处理方法及系统
US17/376,161 US11354303B2 (en) 2020-08-20 2021-07-15 Distributed transaction processing method and system based on message queue and database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010840396.6A CN111708619B (zh) 2020-08-20 2020-08-20 基于消息队列和数据库的分布式事务处理方法及系统

Publications (2)

Publication Number Publication Date
CN111708619A CN111708619A (zh) 2020-09-25
CN111708619B true CN111708619B (zh) 2020-11-06

Family

ID=72547197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010840396.6A Active CN111708619B (zh) 2020-08-20 2020-08-20 基于消息队列和数据库的分布式事务处理方法及系统

Country Status (2)

Country Link
US (1) US11354303B2 (zh)
CN (1) CN111708619B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542409B (zh) * 2021-07-14 2022-07-01 中国—东盟信息港股份有限公司 一种RocketMQ消息队列实例管理系统及处理方法
CN114827278B (zh) * 2022-06-24 2022-09-02 小米汽车科技有限公司 基于消息队列的任务调度方法、系统、装置及设备
CN116775314A (zh) * 2023-08-18 2023-09-19 国能日新科技股份有限公司 异步处理方法、装置和设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058389A (en) * 1997-10-31 2000-05-02 Oracle Corporation Apparatus and method for message queuing in a database system
US7600021B2 (en) * 2002-04-03 2009-10-06 Microsoft Corporation Delta replication of source files and packages across networked resources
US20110276636A1 (en) * 2010-03-29 2011-11-10 Konaware, Inc. Efficient transactional messaging between loosely coupled client and server over multiple intermittent networks with policy based routing
US7702739B1 (en) * 2002-10-01 2010-04-20 Bao Tran Efficient transactional messaging between loosely coupled client and server over multiple intermittent networks with policy based routing
US8074220B2 (en) * 2004-05-21 2011-12-06 Computer Associates Think, Inc. System and method for interfacing an application to a distributed transaction coordinator
US9311214B2 (en) * 2012-11-29 2016-04-12 Dynatrace Llc System and methods for tracing individual transactions across a mainframe computing environment
US10601915B2 (en) * 2016-12-20 2020-03-24 Striim, Inc. Data stream processor with both in memory and persisted messaging
CN109815248B (zh) * 2019-01-15 2021-05-11 科大国创软件股份有限公司 一种基于Zookeeper的分布式架构数据一致性方法
CN111258723B (zh) * 2019-12-05 2024-03-19 东软集团股份有限公司 分布式系统的事务处理方法、装置、系统、介质及设备

Also Published As

Publication number Publication date
CN111708619A (zh) 2020-09-25
US11354303B2 (en) 2022-06-07
US20220058181A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
CN111708619B (zh) 基于消息队列和数据库的分布式事务处理方法及系统
CN109635019B (zh) 请求处理方法、装置、设备及存储介质
US9223640B2 (en) Strategy based event notification chain
US11150896B2 (en) Automated generation of service definitions for message queue application clients
CN106375458B (zh) 服务调用系统、方法及装置
CN111225012A (zh) 事务处理方法、装置和设备
WO2023142911A1 (zh) 业务处理方法及装置
CN106713469B (zh) 用于分布式容器的动态加载方法、装置及系统
CN111858007A (zh) 一种基于消息中间件的任务调度方法方法和装置
CN115114044A (zh) 消息推送方法、装置、设备和介质
CN113722114A (zh) 一种数据服务的处理方法、装置、计算设备及存储介质
CA3065729A1 (en) Business rules processing framework
CN111698310B (zh) 基于swift网络的多测试环境调度方法及装置
CN112689248A (zh) 一种消息处理方法及系统
CN108496157B (zh) 使用扩展接口提供运行时跟踪的系统和方法
WO1999034557A1 (en) Method and system for software version management in a network management system
CN114640610B (zh) 基于云原生的服务治理方法、装置及存储介质
CN111382051A (zh) 一种api自动测试方法及测试装置
CN114092211A (zh) 核算数据的处理方法、电子设备和可读存储介质
CN114168607A (zh) 全局序列号生成方法、装置、设备、介质和产品
CN115080504A (zh) 文件管理方法、终端及存储介质
CN111176799A (zh) 一种业务调度方法、设备和存储介质
CN114531366B (zh) 一种服务治理处理方法及装置
CN116302397A (zh) 远程服务调用方法、系统、设备和存储介质
CN113407445A (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