CN111708619B - 基于消息队列和数据库的分布式事务处理方法及系统 - Google Patents
基于消息队列和数据库的分布式事务处理方法及系统 Download PDFInfo
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit 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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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类全路径与每条业务线程信息的路径匹配率建立所述事务处理器与所述消息队列的消息传输路径;其中,所述消息传输路径支持不同类型的事务消息的传输。
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)
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)
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 | 东软集团股份有限公司 | 分布式系统的事务处理方法、装置、系统、介质及设备 |
-
2020
- 2020-08-20 CN CN202010840396.6A patent/CN111708619B/zh active Active
-
2021
- 2021-07-15 US US17/376,161 patent/US11354303B2/en active Active
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 |