CN115203215A - 数据处理方法和装置、存储介质及电子设备 - Google Patents
数据处理方法和装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115203215A CN115203215A CN202110378952.7A CN202110378952A CN115203215A CN 115203215 A CN115203215 A CN 115203215A CN 202110378952 A CN202110378952 A CN 202110378952A CN 115203215 A CN115203215 A CN 115203215A
- Authority
- CN
- China
- Prior art keywords
- state
- network device
- node
- network
- transaction
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法和装置、存储介质及电子设备。其该方法包括:第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求;响应事务处理请求,通过分布式事务处理网络中的数据库确定第一网络设备当前的事务处理状态;在第一网络设备当前的事务处理状态为准备状态时,发送第一通知消息给分布式事务处理网络中除第一网络设备之外的其他参考网络设备;在收到参考网络设备基于第一通知消息返回的响应确认消息的情况下,确定目标事务完成准备阶段;在数据库中第一网络设备当前的事务处理状态从准备状态调整为提交状态的情况下,发送第二通知消息给参考网络设备。本发明解决了分布式系统中所有节点无法保证数据一致性的问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据处理方法和装置、存储介质及电子设备。
背景技术
分布式系统中,进行数据库事务提交(commit transaction)、Leader选举、序列号生成等通常都会遇到一致性问题。相关技术中,应用最为广泛的原子提交协议有:两阶段提交协议(two-phase commit protocol,简称2PC)。2PC是常用的最终一致、中心化的原子提交协议。这里所说的中心化是指协议中有两类节点:一个是中心化协调者节点(coordinator)和N个参与者节点(partcipant)。2PC协议是一种分布式一致性(consensus)协议,常被用于分布式系统中,用来保证分布式事务的原子性(atomic),即分布式事务的所有参与者,要么都提交,要么都回滚。
两阶段提交协议2PC是把本地事务的处理扩展到分布式事务中,解决了分布式事务提交原子性的问题,同时两阶段提交协议的实现比较简单且可靠。但是,两阶段提交协议2PC仍然存在一些固有的缺陷:即当系统中某个站点或节点因本身问题或者通信线路的不畅而长时间没有响应时,会导致整个事务不能正常提交,这样会使整个系统陷入阻塞状态;协调者节点本身超时,即在参与者节点长时间没有等待协调者发送的命令,则认为协调者节点超时。两阶段提交协议的这个缺陷严重影响了分布式系统的性能及系统资源的利用率,而且还会造成系统中的各节点数据不一致。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法和装置、存储介质及电子设备,以至少解决分布式系统中所有节点无法保证数据一致性的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理数据处理方法,包括:第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,上述事务处理请求用于请求处理目标事务;响应上述事务处理请求,上述第一协调节点通过分布式事务处理网络中的数据库确定上述第一网络设备当前的事务处理状态;在上述第一网络设备当前的事务处理状态为准备状态的情况下,上述第一协调节点发送第一通知消息给上述分布式事务处理网络中除上述第一网络设备之外的其他参考网络设备,其中,上述第一通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述准备状态;在收到上述参考网络设备基于上述第一通知消息返回的响应确认消息的情况下,上述第一协调节点确定上述目标事务完成准备阶段;在上述数据库中上述第一网络设备当前的事务处理状态从上述准备状态调整为提交状态的情况下,上述第一协调节点发送第二通知消息给上述参考网络设备,其中,上述第二通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述提交状态。
根据本发明实施例的另一个方面,提供了一种数据处理方法,包括:第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将上述事务处理请求发送给关联的第一协调节点,其中,上述事务处理请求用于请求处理目标事务;响应上述事务处理请求,上述第一代理节点通过分布式事务处理网络中的数据库确定上述第一网络设备当前的事务处理状态;在上述第一网络设备当前的事务处理状态为准备状态的情况下,上述第一代理节点通过上述第一协调节点发送第一通知消息给上述分布式事务处理网络中除上述第一网络设备之外的其他参考网络设备,其中,上述第一通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述准备状态;在收到上述参考网络设备基于上述第一通知消息返回的响应确认消息的情况下,上述第一代理节点确定上述目标事务完成准备阶段;在上述数据库中上述第一网络设备当前的事务处理状态从上述准备状态调整为提交状态的情况下,上述第一代理节点发送第二通知消息给上述参考网络设备,其中,上述第二通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述提交状态。
根据本发明实施例的又一方面,还提供了一种数据处理装置,包括:接收单元,用于第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,上述事务处理请求用于请求处理目标事务;第一确定单元,用于响应上述事务处理请求,上述第一协调节点通过分布式事务处理网络中的数据库确定上述第一网络设备当前的事务处理状态;第一发送单元,用于在上述第一网络设备当前的事务处理状态为准备状态的情况下,上述第一协调节点发送第一通知消息给上述分布式事务处理网络中除上述第一网络设备之外的其他参考网络设备,其中,上述第一通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述准备状态;第二确定单元,用于在收到上述参考网络设备基于上述第一通知消息返回的响应确认消息的情况下,上述第一协调节点确定上述目标事务完成准备阶段;第二发送单元,用于在上述数据库中上述第一网络设备当前的事务处理状态从上述准备状态调整为提交状态的情况下,上述第一协调节点发送第二通知消息给上述参考网络设备,其中,上述第二通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述提交状态。
根据本发明实施例的另一方面,还提供了一种数据处理装置,包括:接收单元,用于第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将上述事务处理请求发送给关联的第一协调节点,其中,上述事务处理请求用于请求处理目标事务;第一确定单元,用于响应上述事务处理请求,上述第一代理节点通过分布式事务处理网络中的数据库确定上述第一网络设备当前的事务处理状态;第一发送单元,用于在上述第一网络设备当前的事务处理状态为准备状态的情况下,上述第一代理节点通过上述第一协调节点发送第一通知消息给上述分布式事务处理网络中除上述第一网络设备之外的其他参考网络设备,其中,上述第一通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述准备状态;第二确定单元,用于在收到上述参考网络设备基于上述第一通知消息返回的响应确认消息的情况下,上述第一代理节点确定上述目标事务完成准备阶段;第二发送单元,用于在上述数据库中上述第一网络设备当前的事务处理状态从上述准备状态调整为提交状态的情况下,上述第一代理节点发送第二通知消息给上述参考网络设备,其中,上述第二通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述提交状态。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述数据处理方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的数据处理方法。
在本发明实施例中,采用第一协调节点接收第一代理节点中配置的第一网络设备触发的用于请求处理目标事务的事务处理请求;响应上述事务处理请求,通过分布式事务处理网络中的数据库确定上述第一网络设备当前的事务处理状态;在上述第一网络设备当前的事务处理状态为准备状态的情况下,发送第一通知消息给上述分布式事务处理网络中除上述第一网络设备之外的其他参考网络设备,这里的第一通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述准备状态。然后,在收到上述参考网络设备基于上述第一通知消息返回的响应确认消息的情况下,上述第一协调节点将确定上述目标事务完成准备阶段;在上述数据库中上述第一网络设备当前的事务处理状态从上述准备状态调整为提交状态的情况下,上述第一协调节点发送第二通知消息给上述参考网络设备,这里的上述第二通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述提交状态的方式。通过第一协调节点从上述分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态,以及参考网络设备当前的事务处理状态,进一步确定出目标事务的准备阶段和提交状态,达到了避免分布式系统中单独使用2PC协议造成的各个节点的数据不一致目的,从而实现了灵活控制分布式系统中各个节点数据保持一致的技术效果,进而解决了分布式系统中所有节点无法保证数据一致性的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的数据处理方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的数据处理方法的流程图;
图3是根据本发明实施例的一种可选的数据处理方法的结构示意图;
图4是根据本发明实施例的一种可选的相关技术中的数据处理方法的流程图;
图5是根据本发明实施例的另一种可选的相关技术中的数据处理方法的结构示意图;
图6是根据相关技术的一种可选的数据处理方法的结构示意图;
图7是根据本发明实施例的另一种可选的数据处理方法的结构示意图;
图8是根据本发明实施例的又一种可选的数据处理方法的结构示意图;
图9是根据本发明实施例的又一种可选的数据处理方法的结构示意图;
图10是根据相关技术的一种可选的数据处理方法的结构示意图;
图11是根据相关技术的又一种可选的数据处理方法的结构示意图;
图12是根据本发明实施例的又一种可选的数据处理方法的结构示意图;
图13是根据本发明实施例的一种可选的数据处理装置的结构示意图;
图14是根据本发明实施例的又一种可选的数据处理装置的结构示意图;
图15是根据本发明实施例的一种可选的电子设备的结构示意图;
图16是根据本发明实施例的另一种可选的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明实施例中,可以但不限于使用以下技术术语:
TbusppMesh:Tbuspp结合云原生的理念将Tbuspp接入kubernetes的实现,即下一代游戏服务网格技术。
2PC:即两阶段提交协议(two-phase commit protocol,简称2PC)。2PC是常用的最终一致、中心化的原子提交协议。这里的中心化是指协议中有两类节点:一个是中心化协调者节点(Coordinator)和N个参与者节点(Participant)。2PC协议是一种分布式一致性(consensus)协议,常被用于分布式系统中,用来保证分布式事务的原子性(atomic),即分布式事务的所有参与者,要么都提交,要么都回滚。
TbusppNs:相当于2PC流程里的协调者Coordinator;
Client/Server:相当于2PC流程里的参与者Participant;
Agent:代理Client和Server的消息和TbusppNs做交互的代理节点;
根据本发明实施例的一个方面,提供了一种数据处理方法,可选地,作为一种可选的实施方式,上述数据处理方法可以但不限于应用于如图1所示的应用环境中。该应用环境可以包括但不限于:与用户进行人机交互的终端设备102、网络110、服务器112。终端设备102中运行有数据处理应用客户端。上述终端设备102中包括显示器108、处理器106和存储器104。显示器108用于呈现第一通知消息和第二通知消息。处理器106用于接收第一网络设备触发的事务处理请求,以及确定目标事务完成准备阶段。存储器104用于存储第一通知消息和第二通知消息。此外,服务器112中包括数据库114及处理引擎116,数据库用于存储目标事务的准备状态和提交状态。处理引擎116用于接收到第一通知消息和第二通知消息后,发送目标处理事务的状态信息。
具体过程如下步骤:假设如图1所示终端设备102中运行有分布式事务处理客户端,如步骤S102-S110,第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求;响应事务处理请求,第一协调节点通过分布式事务处理网络中的数据库确定第一网络设备当前的事务处理状态;在第一网络设备当前的事务处理状态为准备状态的情况下,第一协调节点发送第一通知消息给分布式事务处理网络中除第一网络设备之外的其他参考网络设备;在收到参考网络设备基于第一通知消息返回的响应确认消息的情况下,第一协调节点确定目标事务完成准备阶段;在数据库中第一网络设备当前的事务处理状态从准备状态调整为提交状态的情况下,第一协调节点发送第二通知消息给参考网络设备,其中,第二通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为提交状态。然后执行步骤S110,将上述第一通知消息和第二通知消息通过网络110发送给服务器112,如步骤S112,服务器发送目标处理事务的状态信息。
可选地,在本实施例中,上述终端设备102可以是配置有目标客户端的终端设备,可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile Internet Devices,移动互联网设备)、PAD、台式电脑、智能电视等。目标客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述服务器112可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,作为一种可选的实施方式,该数据处理方法应用于协调节点,如图2所示,上述数据处理方法包括:
S202,第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,事务处理请求用于请求处理目标事务;
S204,响应事务处理请求,第一协调节点通过分布式事务处理网络中的数据库确定第一网络设备当前的事务处理状态;
S206,在第一网络设备当前的事务处理状态为准备状态的情况下,第一协调节点发送第一通知消息给分布式事务处理网络中除第一网络设备之外的其他参考网络设备,其中,第一通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为准备状态;
S208,在收到参考网络设备基于第一通知消息返回的响应确认消息的情况下,第一协调节点确定目标事务完成准备阶段;
S210,在数据库中第一网络设备当前的事务处理状态从准备状态调整为提交状态的情况下,第一协调节点发送第二通知消息给参考网络设备,其中,第二通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为提交状态。
在本实施例中,上述数据处理方法可以但不限于应用于分布式事务处理过程中,这里的分布式事务的处理阶段可以包括但不限于使用上述两阶段提交协议(下文可称作2PC)。这里的分布式事务两阶段处理过程中涉及两个角色:协调者和参与者,两个阶段包括:准备阶段和提交阶段。其中,准备阶段包括:1)协调者节点向所有参与者节点询问是否可以执行提交操作,并开始等待各参与者节点的响应。2)参与者节点执行询问发起为止的所有事务操作,并将Undo和Redo信息写入日志。3)各参与者节点响应协调者节点发起的询问。如果参与者节点的事务操作实际执行成功,则它返回一个“同意”消息;如果参与者节点的事务操作实际执行失败,则返回“中止”消息。提交阶段包括:如果协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚消息;否则发送提交消息。参与者将根据协调者的指令执行提交或回滚操作,释放所有事务处理过程中使用的锁资源。
这里,上述数据处理方法可以但不限于应用于如图3所示的分布式事务处理架构中,该架构可以包括但不限于:数据库TcaplusDb、协调节点TbusppNs、代理节点Agent和客户端Client。其中,如图3所示,在第一协调节点为TbusppNs3的情况下,第一代理节点可以为Agent4,第一网络设备可以为服务器Server3,参考网络设备可以包括但不限于上述第一代理节点中配置的第二网络设备(如图3所示Agent4中的Server1、Server2、Server3)、第一协调节点关联的第二代理节点中配置的第三网络设备(如图3所示Agent5中的Server4)和第二协调节点关联的第三代理节点中配置的第四网络设备(如与TbusppNs3关联的TbusppNs2中的代理节点Agent3中配置的Client4,或与TbusppNs3关联的TbusppNs1中的代理节点Agent1中配置的Client1和Client2,以及TbusppNs1中的代理节点Agent2中配置的Client3)。上述图3所示架构为示例,本实施例中对此不作任何限定。
需要说明的是,在步骤S202中,上述第一协调节点可以为2PC协议中的协调节点,用于负责管理分布式事务处理系统中的多个事务的提交与回滚,以及保证分布式事务处理系统中的数据的一致性。
例如,以图3所示架构为例进行说明,假设第一协调节点以TbusppNs3为例,配置在数据库与代理节点两层结构之间。第一网络设备可以包括但不限于分布式事务处理系统中上述第一协调节点关联的代理节点中配置的服务器或客户端,该服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器;客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端等。
可选地,在本实施例中,上述事务处理请求可以包括但不限于上述网络设备(如服务器或客户端)的上线请求和下线请求。分布式事务处理网络中的数据库可以但不限于是存储第一网络设备和其他网络设备的事务处理状态,这里的事务处理状态可以包括但不限于准备状态和提交状态。其中,上述准备状态可以但不限于是指进入准备阶段的状态,提交状态是指进入提交阶段的状态。
需要说明的是,在步骤S204中,上述参考网络设备可以为分布式事务处理系统中不同于第一网络设备的其他客户端或服务器节点。这里,通过第一通知消息将分布式事务处理网络中的其他节点(即其他客户端或服务器如client1)中存储的第一网络设备的状态进行同步更新。例如,如图3所示,假设仍以第一网络设备Server3为例进行说明,假设第一网络设备Server3的当前的事务处理状态为准备状态,在2PC二阶段分布式事务处理网络中,可以对应为第一网络设备Server3准备上线或准备下线的状态,这里,准备状态可以用状态值来表示,例如第一网络设备准备上线时,在分布式事务处理网络中的数据库中将第一网络设备当前状态值设为1;第一网络设备Server3准备下线时,在分布式事务处理网络中的数据库中将第一网络设备Server3当前状态值设为0。
需要说明的是,在步骤S206中,第一协调节点收到分布式事务处理系统中其他网络设备完成准备状态信息时,可以确定目标事务处于准备阶段。例如,如图3所示,当第一协调节点为TbusppNs3时,第一协调节点TbusppNs3在确定出第一网络设备Server3处于上线状态,以及分布式事务处理网络中的其他网络设备(如Client1和Client2)接收到第一网络设备Server3的上线或下线信息后,调整与第一网络设备准备进行网络连接的状态;此时,可以确定目标事务为第一网络设备Server3的上线操作,分布式事务处理网络中的其他网络设备(如Client1和Client2)准备建立与第一网络设备Server3进行连接及数据交互的关系。
需要说明的是,在步骤S208中,分布式事务处理网络中的数据库中的第一网络设备在处于提交状态的情况下,第一协调节点通知其他网络设备同步提交状态。在本实施例中,提交状态可以包括但不限于目标事务的执行状态,这里,提交状态可以用状态值来表示,例如第一网络设备的上线操作为提交状态时,在分布式事务处理网络中的数据库中将第一网络设备当前状态值设为01;第一网络设备Server3的下线操作为提交状态时,在分布式事务处理网络中的数据库中将第一网络设备Server3当前状态值设为10;例如,如图3所示,当第一协调节点为TbusppNs3时,第一协调节点TbusppNs3在确定出第一网络设备Server3处于上线提交状态,以及分布式事务处理网络中的其他网络设备(如Client1和Client2)接收到第一网络设备Server3的上线的提交状态信息后,调整与第一网络设备Server3进行网络连接的状态;此时,可以确定目标事务为第一网络设备Server3的正式上线操作,分布式事务处理网络中的其他网络设备(如Client1和Client2)建立与第一网络设备Server3进行连接及数据交互的关系。
通过本申请提供的实施例,采用第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,上述事务处理请求用于请求处理目标事务;响应上述事务处理请求,上述第一协调节点通过分布式事务处理网络中的数据库确定上述第一网络设备当前的事务处理状态;在上述第一网络设备当前的事务处理状态为准备状态的情况下,上述第一协调节点发送第一通知消息给上述分布式事务处理网络中除上述第一网络设备之外的其他参考网络设备,其中,上述第一通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述准备状态;在收到上述参考网络设备基于上述第一通知消息返回的响应确认消息的情况下,上述第一协调节点确定上述目标事务完成准备阶段;在上述数据库中上述第一网络设备当前的事务处理状态从上述准备状态调整为提交状态的情况下,上述第一协调节点发送第二通知消息给上述参考网络设备,其中,上述第二通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述提交状态的方式,通过第一协调节点从上述分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态,以及参考网络设备当前的事务处理状态,进一步确定出目标事务的准备阶段和提交状态,达到了避免分布式系统中单独使用2PC协议造成的各个节点的数据不一致目的,从而实现了灵活控制分布式系统中各个节点数据保持一致的技术效果,进而解决了分布式系统中所有节点无法保证数据一致性的技术问题。
在一实施例中,步骤S202,响应事务处理请求,第一协调节点通过分布式事务处理网络中的数据库确定第一网络设备当前的事务处理状态包括:
第一协调节点基于事务处理请求中所携带的第一网络设备的设备标识,生成第一网络设备的状态查找请求,其中,状态查找请求用于请求查找在数据库中所存储的第一网络设备当前的事务处理状态;
第一协调节点将状态查找请求发送给数据库,并获取数据库所返回的第一网络设备当前的事务处理状态,其中,在数据库中查找到第一网络设备当前的事务处理状态为非准备状态时,则将第一网络设备当前的事务处理状态从非准备状态调整为准备状态,并向第一网络设备返回当前的事务处理状态为准备状态;在数据库中查找到第一网络设备当前的事务处理状态为准备状态或运行状态时,则指示第一网络设备停止处理目标事务。
需要说明的是,在本实施例中,上述第一网络设备的设备标识可以包括但不限于以下之一:设备的型号,mac地址,IP地址或序列号等,在此不做限定。此外,在本实施例中,这里的非准备状态是指进入准备阶段之前的状态。例如,假设在数据库中准备状态对应的字段的状态值可以设置为1,非准备状态的状态值可以设置为0,那么在数据库中查找到第一网络设备当前的事务处理状态为非准备状态,则将第一网络设备当前的事务处理状态从非准备状态调整为准备状态,就可以将第一网络设备的状态值从0设置为1。
如图3所示,在数据库TcaplusDb中查找到第一网络设备Server3当前的事务处理状态为非准备状态。也就是说,Server3当前为尚未上线,未与其他参考网络设备(例如Client1)相连及发生数据交互,即尚未接入到当前分布式事务处理网络中。当第一网络设备Server3当前的事务处理状态为准备状态时,第一网络设备Server3已经连接在分布式事务处理网络中,并处在当前的事务处理中,已经处于准备上线状态,随时可以与其他网络设备(如Client1和Client2)进行连接和数据交互;当第一网络设备Server3当前的事务处理状态为运行状态时,可以为第一网络设备Server3已经上线并和其他不同的网络设备如(Client1和Client2)建立连接,并可以进行数据交互的状态。这里,假设当目标事务为第一网络设备Server3上线运行时,在数据库TcaplusDb中查找到第一网络设备Server3当前的事务处理状态为准备状态或运行状态时,则指示第一网络设备Server3停止上线运行。
通过本申请提供的实施例,第一协调节点可以基于事务处理请求中所携带的第一网络设备的设备标识来生成状态查找请求,以便于将该状态查找请求转发给数据库,以便于从数据库获取查找到的第一网络设备对应的事务处理状态,从而避免对同一个网络设备做出矛盾不同的处理。也就是在数据库中查找到第一网络设备处于非准备状态的情况下,将其调整至准备状态;在数据库中查找到第一网络设备处于准备状态或运行状态的情况下,则停止对第一网络设备当前的处理。达到防止对同一个网络设备执行重复操作所导致的浪费系统计算资源的问题。
在一实施例中,在第一协调节点确定目标事务完成准备阶段之后,还包括:第一协调节点向数据库发送状态更新请求,以使数据库将第一网络设备当前的事务处理状态从准备状态调整为提交状态。
在本实施例中,当分布式事务处理系统中的各个节点均完成准备工作后,就可以在数据库中更新第一网络设备当前的事务处理状态。
例如,如图3所示,当分布式事务处理系统中的各个节点均完成准备工作后,即当前分布式事务处理网络中的其他网络设备(如Client1和Client2)均已做好与第一网络设备Server3进行数据交互时,第一网络设备Server3可以进行上线操作,并在数据库TcaplusDb中将第一网络设备Server3上线状态或下线的状态进行实时更新。
通过本申请提供的实施例,通过上述在数据库中更新第一网络设备当前的事务处理状态的方式,可以使的分布式事务处理网络中的当前网络设备能够及时获取到其他网络设备的实时状态信息,也避免了分布式事务处理网络中因为网络故障造成的系统阻塞以及系统中各个节点数据不一致的情况。
在一实施例中,步骤S204包括:上述第一协调节点将所返回的上述第一网络设备当前的事务处理状态通知给上述第一代理节点中配置的第二网络设备,上述第一协调节点关联的上述第一代理节点之外的第二代理节点中配置的第三网络设备,以及上述分布式事务处理网络中第二协调节点关联的第三代理节点中配置的第四网络设备。
例如,结合图3所示内容进行说明,第一协调节点TbusppNs3将所返回的第一网络设备为Server3当前的事务处理状态通知给第一代理节点为Agent1中配置的第二网络设备Client1和Client2,第一协调节点关联的第二代理节点为Agent2中配置的第三网络设备为Client3,以及第三代理节点为Agent3中配置的第四网络设备为Client4。第一协调节点和第二协调节点可以包括但不限于负责处理与之连接的代理节点和其他协调节点的事务管理服务器,第一协调节点TbusppNs3和第二协调节点TbusppNs1负责管理当前分布式事务处理系统中的多个事务的提交与回滚,以及保证分布式事务处理系统中的数据的一致性。
步骤S206包括:在所述第一代理节点中配置的所述第二网络设备,所述第一协调节点关联的所述第一代理节点之外的所述第二代理节点中配置的所述第三网络设备,以及所述分布式事务处理网络中所述第二协调节点关联的所述第三代理节点中配置的所述第四网络设备均返回所述响应确认消息的情况下,所述第一协调节点确定所述目标事务完成所述准备阶段。
如图3所示,在所述第一代理节点Agent1中配置的上述第二网络设备Client1和Client2,上述第一协调节点TbusppNs3关联的上述第一代理节点之外的上述第二代理节点Agent1中配置的上述第三网络设备Client3,以及上述分布式事务处理网络中上述第二协调节点TbusppNS2关联的上述第三代理节点Agent3中配置的上述第四网络设备Client4均返回上述响应确认消息的情况下,上述第一协调节点TbusppNs3确定上述目标事务完成上述准备阶段;例如,第三网络设备Client3,和第四网络设备Client4均返回响应第一协调节点TbusppNs3发出的第一网络设备Server3准备上线的通知后,返回确认收到该通知的确认消息,第一协调节点TbusppNs3确定当前的目标事务完成准备阶段,也就是说,当前分布式管理系统中的服务器的客户端已经具备可以彼此进行连接和数据交互的条件。
步骤S208包括:上述第一协调节点将上述第二通知消息发送给上述第一代理节点中配置的上述第二网络设备,上述第一协调节点关联的上述第一代理节点之外的上述第二代理节点中配置的上述第三网络设备,以及上述分布式事务处理网络中上述第二协调节点关联的上述第三代理节点中配置的上述第四网络设备。
如图3所示,上述第一协调节点TbusppNs3将上述第二通知消息发送给上述第一代理节点中配置的上述第二网络设备Client1和Client2,上述第一协调节点TbusppNs3关联的第二代理节点Agent2中配置的上述第三网络设备Client3,以及上述分布式事务处理网络中上述第二协调节点TbusppNs2关联的上述第三代理节点Agent2中配置的上述第四网络设备Client4。
通过本申请提供的实施例,在分布式事务处理网络中,通过上述交互的通知消息以使得当前网络设备能够及时获取到其他网络设备的实时状态信息,也避免了分布式事务处理网络中因为网络故障造成的系统阻塞以及系统中各个节点数据不一致的情况。
在一实施例中,上述数据处理方法还包括:在至少一个参考网络设备并未返回响应确认消息的情况下,第一协调节点发送第三通知消息给参考网络设备,其中,第三通知消息用于通知参考网络设备目标事务处理失败;在至少一个参考网络设备返回响应拒绝消息的情况下,第一协调节点发送第四通知消息给参考网络设备,其中,第四通知消息用于通知参考网络设备目标事务处理失败。
可选地,如图3所示,上述第三通知消息和上述第四通知消息可以为第一网络设备Sever1上线失败的消息;在本实施例中,例如,当参考网络设备Client1或Client2任一个客户端没有返回相应确认消息(如Client1或Client2宕机)时,第一协调节点TbusppNs3发送给Client1或Client2第一网络设备Server3上线失败的消息。当参考网络设备Client1或Client2任一个客户端返回响应拒绝消息(拒绝与Server3进行数据交互)时,第一协调节点TbusppNs3发送给Client1或Client2第一网络设备Server3上线失败的消息。
通过本申请提供的实施例,在分布式事务处理网络中至少一个参考网络设备并未返回响应确认消息,或至少一个参考网络设备返回响应拒绝消息的情况下,通过第一协调节点来通知其他参考网络设备目标事务处理失败,从而解决分布式事务处理网络在单独采用2PC架构时因系统中的单点故障带来的系统资源锁定的问题,便于快速协调通知分布式事务处理网络中的各个网络设备,提升分布式事务处理效率。
在一实施例中,在第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求之后,还包括:第一协调节点接收第一代理节点及与第一协调节点关联的第二代理节点上报的故障信息;第一协调节点根据故障信息识别出故障网络设备,并终止故障网络设备的事务处理操作。
在本实施例中,如图3所示,第一协调节点TbusppNs3接收到第一代理节点Agent1和第二代理节点Agent2上报的故障信息,该故障信息可以包括客户端(如Client1或Client2)或服务器(Server2或Server3)的机器标识,例如序列号或媒体存取控制MAC地址,具体的故障原因可以包括机器宕机或重启,或者网络数据丢失等。第一协调节点TbusppNs3通过故障信息识别出出现故障的网络设备后,终止该网络设备在当前分布式事务处理网络中的事务处理操作。
通过本申请提供的实施例,第一协调节点还可以根据从各个关联节点接收到的故障信息来识别出分布式事务处理网络中的故障网络设备,并及时终止对上述故障网络设备的事务处理操作。从而避免故障时事务无法继续处理所导致的处理效率降低的问题,进而达到提高故障修复效率,提高事务处理效率。
在一实施例中,在第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求之后,还包括:在第一协调节点出现故障,且分布式处理网络中的目标协调节点接收到第一代理节点发送的事务处理请求的情况下,目标协调节点根据事务处理请求向数据库发送状态查找请求;在数据库所返回的第一网络设备当前的事务处理状态为准备状态的情况下,目标协调节点代替第一协调节点以处理目标事务。
例如,仍以上述图3所示为例,在第一协调节点TbusppNs3出现故障,且分布式处理网络中的目标协调节点(如TbusppNs2)接收到第一代理节点Agent1发送的事务处理请求的情况下,目标协调节点TbusppNs2根据事务处理请求向数据库TcaplusDb发送状态查找请求;在数据库TcaplusDb所返回的第一网络设备Server当前的事务处理状态为准备状态的情况下,目标协调节点TbusppNs2代替第一协调节点TbusppNs1以处理目标事务。
通过本申请提供的实施例,在第一协调节点出现故障且目标协调节点接收到事务处理请求的情况下,通过目标协调节点代替第一协调节点继续处理事务,以保证分布式事务处理的正常处理,从而避免协调节点出现故障时对分布式事务处理进程的影响。
根据本发明实施例的另一个方面,还提供了一种数据处理方法,应用于代理节点中,如图4所示,上述数据处理方法包括:
S402,第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将事务处理请求发送给关联的第一协调节点,其中,事务处理请求用于请求处理目标事务;
S404,响应事务处理请求,第一代理节点通过分布式事务处理网络中的数据库确定第一网络设备当前的事务处理状态;
S406,在第一网络设备当前的事务处理状态为准备状态的情况下,第一代理节点通过第一协调节点发送第一通知消息给分布式事务处理网络中除第一网络设备之外的其他参考网络设备,其中,第一通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为准备状态;
S408,在收到参考网络设备基于第一通知消息返回的响应确认消息的情况下,第一代理节点确定目标事务完成准备阶段;
S410,在数据库中第一网络设备当前的事务处理状态从准备状态调整为提交状态的情况下,第一代理节点发送第二通知消息给参考网络设备,其中,第二通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为提交状态。
在本实施例中,上述数据处理方法可以但不限于应用于分布式事务处理过程中,这里的分布式事务的处理阶段可以包括但不限于使用上述两阶段提交协议(下文可称作2PC)。这里,上述数据处理方法可以为如图5中的分布式事务处理架构,如图5所示,在第一协调节点为TbusppNs3的情况下,第一代理节点可以为Agent1,第一网络设备可以为服务器Server3,分布式事务处理网络中的数据库可以为TcaplusDb,参考网络设备可以为Client1、Client2、Client3和Client4,Server1或Server2。参考网络设备包括第二网络设备、第三网络设备和第四网络设备,第二网络设备可以为Client1和Client2,第二代理节点可以为Agent2,第三代理节点可以为Agent3,第三网络设备可以为Client3,第四网络设备可以为Client4,第二协调节点可以为TbusppNs2;上述说明仅为实例,在此不做任何限定。
需要说明的是,在步骤S402中,第一代理节点可以负责接收第一网络设备的事务处理请求,并接收其他网络设备发送给第一网络设备的通信消息。第一网络设备可以包括但不限于服务器或客户端。
在步骤S404中,第一代理节点可以通过分布式事务处理网络数据库确定第一网络设备的事务处理状态,该事务处理状态可以包括但不限于准备状态和提交状态。
在步骤S406中,当第一网络设备的事务处理状态为准备状态时,第一代理节点可以通过第一协调节点将第一通知消息发送给其他参与事务处理的参考网络设备,使得分布式事务处理网络中的各个节点的事务处理状态保持一致。
在步骤S408中,当参考网络设备返回收到第一网络设备发送的准备状态信息并反馈自身的状态信息时,第一代理节点可以确定出目标事务处于完成准备状态。
在步骤S410中,数据库中第一网络设备的事务处理状态为提交状态时,第一代理节点通知其他网络设备同步为提交状态,以保持分布式事务处理系统中的各个节点的数据保持一致。
通过本申请提供的实施例,第一代理节点接收所配置的第一网络设备触发的用于请求处理目标事务的事务处理请求,并响应该事务处理请求,通过分布式事务处理网络中的数据库确定第一网络设备当前的事务处理状态。然后在该第一网络设备当前的事务处理状态为准备状态的情况下,通过第一协调节点发送第一通知消息给分布式事务处理网络中除第一网络设备之外的其他参考网络设备,以指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为准备状态。进一步,在收到响应确认消息的情况下,在第一代理节点中确定目标事务完成准备阶段。在数据库中第一网络设备当前的事务处理状态从准备状态调整为提交状态的情况下,再发送第二通知消息给参考网络设备,以指示参考网络设备将本地存储空间中存储的第一网络设备当前的事务处理状态同步变更为提交状态。也就是第一代理节点配合第一协调节点共同完成分布式事务的准备阶段和提交状态,达到了避免分布式系统中单独使用2PC协议造成的各个节点的数据不一致目的,从而实现了灵活控制分布式系统中各个节点数据保持一致的技术效果,进而解决了分布式系统中所有节点无法保证数据一致性的技术问题。
在一实施例中,步骤S404,第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将事务处理请求发送给关联的第一协调节点包括:上述第一代理节点通过上述第一协调节点向数据库发送状态查找请求,其中,状态查找请求用于请求查找在数据库中所存储的第一网络设备当前的事务处理状态;
第一代理节点获取数据库所返回的第一网络设备当前的事务处理状态,其中,在数据库中查找到第一网络设备当前的事务处理状态为非准备状态,则将第一网络设备当前的事务处理状态从非准备状态调整为准备状态,并向第一网络设备返回当前的事务处理状态为准备状态;在数据库中查找到第一网络设备当前的事务处理状态为准备状态或运行状态,则指示第一网络设备停止处理目标事务。
在本实施例中,如图5所示,例如第一代理节点Agent1获取在数据库TcaplusDb中第一网络设备Server3当前的事务处理状态为非准备状态,假设当前第一网络设备处于未上线的状态,在数据库TcaplusDb中准备状态对应的字段的状态值可以设置为1,非准备状态的状态值可以设置为0,那么在数据库TcaplusDb中查找到第一网络设备Server3当前的事务处理状态为非准备状态,则将第一网络设备当前的事务处理状态从非准备状态调整为准备状态,就可以将第一网络设备Server3的状态值从0设置为1。这里,准备状态可以为第一网络设备在Server3当前的事务处理中,例如已经处于准备上线状态,但未与其他网络设备(如Client1和Client2)进行数据交互;运行状态可以为第一网络设备Server3已经上线并和其他网络设备(如Client1和Client2)建立关联并进行数据交互;当在数据库TcaplusDb中查找到第一网络设备Server3当前的事务处理状态为准备状态或运行状态时,此时可以将第一网络设备停止处理目标事务,例如停止第一网络设备的再次上线或下线操作。
通过本申请提供的实施例,第一代理节点可以发送状态查找请求,以便于从数据库获取查找到的第一网络设备对应的事务处理状态,从而避免对同一个网络设备做出矛盾不同的处理。也就是在数据库中查找到第一网络设备处于非准备状态的情况下,将其调整至准备状态;在数据库中查找到第一网络设备处于准备状态或运行状态的情况下,则停止对第一网络设备当前的处理。达到防止对同一个网络设备执行重复操作所导致的浪费系统计算资源的问题。
在一实施例中,在第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将事务处理请求发送给关联的第一协调节点之后,还包括:
在第一协调节点出现故障的情况下,第一代理节点从分布式处理网络中重新选择出目标协调节点;在达到第一时长间隔后,第一代理节点将向目标协调节点发送事务处理请求;在通过目标协调节点确认第一网络设备当前的事务处理状态为准备状态的情况下,第一代理节点通过目标协调节点发送第一通知消息给参考网络设备;在数据库中第一网络设备当前的事务处理状态从准备状态调整为提交状态的情况下,第一代理节点通过目标协调节点发送第二通知消息给参考网络设备。
在本实施例中,如图5所示,当第一协调节点TbusppNs3出现故障时,第一代理节点Agent1选出其他协调节点(如TbusppNs2)作为备选节点,当第一协调节点TbusppNs3在第一时间间隔后尚未恢复正常时,TbusppNs2就可以替换为第一协调节点TbusppNs3处理当前分布式事务处理网络中的事务。
通过本申请提供的实施例,在第一协调节点出现故障的情况下,第一代理节点可以从分布式处理网络中重新选择出目标协调节点,然后通过目标协调节点代替第一协调节点继续处理事务,以保证分布式事务处理的正常处理,从而避免协调节点出现故障时对分布式事务处理进程的影响。
在一实施例中,在第一代理节点发送第二通知消息给参考网络设备之后,还包括:在至少一个参考网络设备并未收到第二通知消息的情况下,第一代理节点向第一协调节点发送对账请求;第一代理节点获取第一协调节点所返回的第一网络设备的最新路由信息。
可选地,在本实施例中,如图5所示,上述对账请求可以包括但不限于第一代理节点Agent1向第一协调节点TbusppNs3获取第一网络设备Server3的最新状态信息的请求。也就是说,当参考网络设备(如Client1和Client2)在变更为准备状态后,继续进行下一流程即提交操作时,在预设的时间段内没有收到至少一个参考网络设备的提交状态信息时,可以通过第一代理节点Agent1从第一协调节点TbusppNs3获取第一网络设备Server3的最新状态信息。例如,当第一代理节点Agent1发送Server3上线的通知消息后,因网络延时或数据传输出现故障时,参考网络设备Client1或Clinet2未收到上线的通知消息,此时第一代理节点Agent1向第一协调节点TbusppNs3发送用于核对Server是否上线的对账请求,即第一代理节点Agent1获取第一协调节点TbusppNs3返回的第一网络设备Server3的路由连接信息,也就是说第一代理节点获取到的是当前第一网络设备Server3是否上线的状态信息。
通过本申请提供的实施例,在至少一个参考网络设备并未收到第二通知消息的情况下,第一代理节点向第一协调节点发送对账请求,以获取第一协调节点所返回的第一网络设备的最新路由信息。从而实现及时更新分布式事务处理系统中的各个节点的通信连接链路,保证各个节点的数据一致性。
在一实施例中,在第一代理节点通过第一协调节点发送第一通知消息给分布式事务处理网络中除第一网络设备之外的其他参考网络设备之后,还包括:在第一代理节点中包括参考网络设备的情况下,在参考网络设备的哈希环中,为第一网络设备创建状态节点,并将状态节点对应的状态值同步配置为准备状态。
为了保证客户端请求访问服务器的负载均衡性,可以但不限于采用一致性Hash算法。如图6所示,当前路由表中的服务器有2个,Server-1,Server-2;客户端Client-1,Client-2,和Client-3三个客户端在访问键值为PIC1时,通过Hash算法计算公式Hash(PIC1)%2=1,得到内容均在Server-1上;然而,如果在当前服务器集群中新增加一台服务器Server-3,这时通过Hash算法计算公式Hash(PIC1)%3=2,那么客户端通过Hash算法访问到的内容就会在Server-2上。因此会出现客户端访问服务器出现数据不一致的问题。
为了解决上述问题,本实施例中通过哈希环来映射客户端访问服务器的关系。需要说明的是,上述哈希环可以但不限于是为了保证客户端请求访问服务器的负载均衡性,基于Hash一致性算法构建的用于记录分布式事务处理网络中各个节点(如Server1、Server2)的状态的圆环;在哈希环上有232个节点位置。
例如,如图3所示,在未增加Server-3之前,将Server-1,Server-2的IP地址或服务器名经过哈希计算后,通过在哈希环上均匀映射对应的服务器节点或虚拟节点,Server-1在哈希环上对应服务器节点302,虚拟节点306,虚拟节点310;Server-2在哈希环上对应服务器节点304,虚拟节点308,虚拟节点312;将数据key的键值使用相同的Hash函数计算出哈希值,可以根据该哈希值确定在哈希环上的位置,在该位置沿哈希环顺时针查找碰到的服务器节点即为数据key对应服务器。通过Hash算法计算公式Hash(PIC1)%232=1,得到内容均在Server-1上;如果在当前服务器集群中新增加一台服务器Server-3,这时通过Hash算法计算公式Hash(PIC1)%232得到的结果依然为1,那么客户端通过Hash算法访问到的内容就依然在Server-1上。因此可以避免出现客户端访问服务器出现数据不一致的问题。
在本实施例中,利用哈希环可以记录参考网络设备连接其他网络的设备的节点状态。如图3所示,在哈希环上的服务器节点302,服务器节点302可以为记录有Server-1状态的状态节点;并将状态节点对应的状态值同步配置为准备状态。如图5所示,为服务器Server3创建对应的服务器节点502和虚拟节点504,并将服务器节点502和虚拟节点504对应的状态节点的状态值同步配置为准备状态。
可选地,如图7所示,还可以为服务器Server3只创建对应的服务器节点702,并将服务器节点702对应的状态节点的状态值同步配置为准备状态。
通过本申请提供的实施例,在第一代理节点中包括参考网络设备的情况下,在参考网络设备的哈希环中,为第一网络设备创建状态节点,并将状态节点对应的状态值同步配置为准备状态,也就是在分布式事务处理网络中,各个网络设备可以基于哈希环实时获取当前服务器的状态信息,也避免了客户端访问服务器出现数据不一致的情况。
在一实施例中,在第一代理节点发送第二通知消息给参考网络设备之后,还包括:在第一代理节点中包括参考网络设备的情况下,将参考网络设备的哈希环中存储的与第一网络设备的状态节点对应的状态值从准备状态同步变更为提交状态。
在本实施例中,如图7所示,例如,当第一网络设备Server3上线后,可以将参考网络设备Client1的哈希环中与第一网络设备Server3对应的服务器节点702中Server3的状态值从准备状态同步变更为提交状态。例如,在服务器节点702中可以查询到第一网络设备Server3已经上线。
通过本申请提供的实施例,通过同步变更各个参考网络设备中哈希换种记录的状态节点的状态值,从而保证分布式事务处理网络中的各节点的数据的一致性,进而避免不一致导致事务处理失败而不得不全部回滚的情况。
在一实施例中,在第一代理节点确定目标事务完成准备阶段之后,还包括:在数据库中第一网络设备当前的事务处理状态并未从准备状态调整为提交状态的情况下,第一代理节点发送第三通知消息给参考网络设备,其中,第三通知消息用于通知参考网络设备目标事务处理失败。
在本实施例中,如图7所示,例如,当数据库TcaplusDb中第一网络设备Server3当前的事务处理状态没有从准备上线调整为已上线状态时,第一代理节点Agent1发送用于通知目标事务处理失败的消息给参考网络设备(如Client1和Client2)。通过上述技术手段,能够实时的将分布式系统中的任何一个节点出现异常的情况通知到其他节点,从而也避免其他节点因锁定系统资源而造成的系统资源消耗。
在一实施例中,在第一代理节点发送第三通知消息给参考网络设备之后,还包括:在第一代理节点中包括参考网络设备的情况下,将参考网络设备的哈希环中为第一网络设备配置的状态节点摘除。
如图7所示,当数据库中第一网络设备Server3当前的事务处理状态没有从准备上线调整为已上线状态时,将第一网络设备Server3对应的状态节点702从哈希环中删除得到如图8所示的哈希环802。通过上述技术手段,可以保证分布式事务处理网络中的各节点的数据保证一致。
在一实施例中,参考网络设备包括:第一代理节点中配置的第二网络设备,第一协调节点关联的第一代理节点之外的第二代理节点中配置的第三网络设备,以及分布式事务处理网络中第二协调节点关联的第三代理节点中配置的第四网络设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
具体结合以下应用实施例进行说明:如图7所示,假设以Server 3请求上线的时序过程为例进行说明,可以包括如下步骤:
S1,Server3通过Agent4向TbusppNs3提交上线请求。
S2,TbusppNs3收到Server3的上线请求后,向数据库Tcaplusdb(cache)中检查Server3的状态,查看Server3当前的2PC状态,如不为prepare阶段,则修改TcaplusDb中状态为prepare(若已为prepare或者已上线则停止上线流程,返回上线失败),通过上述技术手段可以避免同一个服务器多次上线代理的系统资源浪费。
S3,TbusppNs3修改完Tcaplusdbdb中Server3的状态后,向当前Agent4及其他协调节点(如TbusppNs1)发送Server3上线的prepare通知(phase one),TbusppNs3等待Prepare所有节点的Prepare的响应。并等待第一阶段prepare流程完成。
S4,其他代理节点Agent1-N收到Server3上线通知及预上线路由,会在客户端(如Client1和Client2)的路由哈希Hash环内加入Server的状态点,并给TbusppNs3返回Prepare成功。
S5,Server3完成prepare上线流程,数据中存储Tcaplusdb上线的信息。
进一步如图7所示,假设以Server 3准备上线的第二阶段(提交阶段)的时序过程为例进行说明,可以包括如下步骤:S1,当所有的节点(如Client1或Client3)Prepare通知返回准备成功后,TbusppNs3先向数据库TcaplusDb写入Server3的状态为commit提交成功,即上线成功。
S2,然后向Agent4和其它协调节点(如TbusppNs2)发起Server3上线的Commit提交成功通知。
S3,其它网络设备收到Server 3的commit提交成功后,Hash环上的结点生效,此时Server3上线成功。
如图9所示,假设以Server 3准备上线的上线失败的时序过程为例进行说明,可以包括如下步骤:
S1,如果部分客户端节点(如Client1和Client2)返回准备Prepare失败,或者等待Prepare响应超时。TbusppNs3向Agent4和其它协调节点(如TbusppNs2)发起Server3上线的取消上线Abort通知。
S2,其它网络设备收到Server 3的取消上线Abort通知后,Hash环上的Prepare节点被摘掉,此时Server3上线失败。
在如图10所示的2PC两阶段提交顾包括两个阶段,第一阶段如图10中(a)所示,先根据由一方进行提议(propose),如图10中(b)所示收集其他节点的反馈(vote),再根据反馈决定提交(commit)或中止(abort)事务。提议的节点可以称为协调者(coordinator),其他参与决议节点称为参与者(participants,或cohorts)。
2PC第一阶段(准备阶段):coordinator向所有participant发送Prepare commit准备消息,并且等待participant的回复。participant收到了coordinator的Preparecommit,执行持久化undolog撤销操作、redolog重做等相关操作,直到可以提交(commit)或者回滚(rollback)。在participant收到Preparecommit后的本地操作,可能成功,也有可能失败。如果成功则回复OK,如果失败则回复notOK。
如图11所示,2PC第二阶段分为如下两种情况:
1、Commit情况:
coordinator如果收到所有participant的OK,那么coordinator会向所有participant发送Commit消息;每个participant执行本地commit,释放事务持有的锁等相关的资源。
2、Rollback情况:
coordinator如果收到任意一个participant的失败消息(或者coordinatorPrepare超时),那么coordinator会向所有participant发送Rollback消息。
在分布式系统中单独使用2PC协议会遇到如下情形,均可以通过本申请提供的实施例克服相关缺陷:
第一种情况:Prepare phase(准备阶段)前coordinator Crash(协调节点崩溃):消息发送前,coordinator可能会crash,即协调者可能会崩溃。
如图3所示,因为2PC的流程还没有开始,2PC协议还没发起,TbusppNs3(coordinator)就崩溃了,Server3处于上线失败状态,这里不会涉及协调者节点和代理者节点使用本实施例中提供的处理方法。
第二种情况:Prepare phase后coordinator Crash:如果第一阶段的部分提议已经发出去了,但是不是全部提议都发出去,此时coordinator Crash掉,但是此时部分participant已经收到提议并且开始了2PC的流程,但是部分participant处于等待状态。并且此时coordinator很长时间没有恢复,开始2PC流程的participant(参与节点)会一直阻塞等待2PC流程的二阶段通知。
为了克服上述第二种情况中的缺陷,如图3所示,通过本申请提供的实施例,当第一协调节点TbusppNs3发起了Prepare Phase后,自己崩溃了或者重启了,此时可以通过代理节点Agent4会选择连接一个新的协调节点(如TbusppNs2),5s后Server3的PreparePhase将被解锁掉,TbusppNs2重新发起Server3的上线请求,从而解决分布式事务处理网络中单个协调节点故障出现的系统无法正常运行的技术问题。
第三种情况:Prepare phase后coordinator Crash:此时当coordinator崩溃时,可以让另一participant接管coordinator的工作。即当某个协调节点发生超时,可以强制该节点完成主coordinator启动的协议。如在第一阶段发送的消息一样,该节点可以联系所有其他participant,并找出他们投票的结果。这要求将所有参与2PC的节点都将执行的结果保持在持久性存储的数据库中,直到所有参与者知道其他所有节点都已提交或中止为止;否则,如果所有节点忘记了给定执行所执行的操作,则新的coordinator节点接替之前的coordinator将无法恢复事务状态。
为了克服上述第三种情况中的缺陷,如图3所示,当第一协调节点TbusppNs3崩溃后,代理节点Agent4会主动连接到一个新的协调节点(如TbusppNs2),并在5s后重新发起Server的上线请求,此时TbusppNs2查询本地缓存Cache和数据库TcaplusDb判断当前阶段的状态是否为Prepare,如果是,TbusppNs2就会自动接管当前Server3的上线,并将上次TbusppNs3处理的上线事务的接管,然后重新发起新的Server3的2PC上线流程。
第四种情况:Prepare phase后participant Crash:如果coordinator收到了所有的participant的Prepare响应,然后向所有的participant发起二阶段的commit操作,此时由于网络抖动或者participant重启导致没有收到2PC的二阶段消息,那么当前处于事务失败状态的participant就会一直处于投票阶段,并将持续占用系统资源。
为了克服上述第四种情况中的缺陷,如图3所示,如果在Server3上线的2PC阶段,第二阶段的commit/abort通知由于网络抖动丢失了,此时代理节点Agent1没有收到Server3的commit通知,1.5s超时后会主动向协调节点TbusppNs 3发起对账流程,即获取最新的Server3的路由信息,进一步得到Server3的最新状态信息,从而可以达到分布式事务处理网络中的各个数据的一致性。
第五种情况:Participant错乱:如果部分participant代码有bug,可能会发送任意数据给coordinator或者不回复coordinator导致系统错乱,系统无法自愈。
为了克服上述第五种情况中的缺陷,如图3所示,如果Server3或者Client1有bug,发生错乱(Byzantine failure);例如,Client1一直通过Agent1上报错误或者不上报信息给TbusppNs1,此时会被TbusppNs1主动识别出来,TbusppNs1会将Client1从当前分布式事务处理网络中下线,后续的2PC流程将不会通知发生错乱的Client1。通过上述方式将有故障的节点设备及时下线处理,节省了系统资源。
在一应用实施例中,如图12所示,针对2PC流程串行执行效率太低的问题,TbusppMesh在并发性能上做了优化,支持多个实例同时发起2PC的Prepare阶段,客户端会并发处理多个实例的上线逻辑,协调节点TbusppNs1至TbusppNsN会定期查询处于Prepare阶段全部成功的实例,批量提交服务器的上线或下线的commit/abort,从而完成批量上下线多个服务器。2PC结合busppMesh的分布式系统具有支持的批量节点上下线能力。
本发明实施例中结合TbusppMesh现有组件的容灾,高性能,对账等能力,弥补了传统2PC流程的缺陷,保证游戏后台有状态服务在极端情况下路有一致性,从而不会导致用户掉线,还能缩短用户排队时间。
此外,针对2PC的事务机制的优化,优化了2PC事务串行逻辑,提出了并行上下线的技术方案,对游戏生产环境下批量上下线做出了比较大的性能提升和更高的可用性。
根据本发明实施例的另一个方面,还提供了一种用于实施上述数据处理方法的数据处理装置。如图13所示,该装置包括:
接收单元1302,用于第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,事务处理请求用于请求处理目标事务;
第一确定单元1304,用于响应事务处理请求,第一协调节点通过分布式事务处理网络中的数据库确定第一网络设备当前的事务处理状态;
第一发送单元1306,用于在第一网络设备当前的事务处理状态为准备状态的情况下,第一协调节点发送第一通知消息给分布式事务处理网络中除第一网络设备之外的其他参考网络设备,其中,第一通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为准备状态;
第二确定单元1308,用于在收到参考网络设备基于第一通知消息返回的响应确认消息的情况下,第一协调节点确定目标事务完成准备阶段;
第二发送单元1310,用于在数据库中第一网络设备当前的事务处理状态从准备状态调整为提交状态的情况下,第一协调节点发送第二通知消息给参考网络设备,其中,第二通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为提交状态。
在本发明实施例中,采用第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,上述事务处理请求用于请求处理目标事务;响应上述事务处理请求,上述第一协调节点通过分布式事务处理网络中的数据库确定上述第一网络设备当前的事务处理状态;在上述第一网络设备当前的事务处理状态为准备状态的情况下,上述第一协调节点发送第一通知消息给上述分布式事务处理网络中除上述第一网络设备之外的其他参考网络设备,其中,上述第一通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述准备状态;在收到上述参考网络设备基于上述第一通知消息返回的响应确认消息的情况下,上述第一协调节点确定上述目标事务完成准备阶段;在上述数据库中上述第一网络设备当前的事务处理状态从上述准备状态调整为提交状态的情况下,上述第一协调节点发送第二通知消息给上述参考网络设备,其中,上述第二通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述提交状态的方式,通过第一协调节点从上述分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态,以及参考网络设备当前的事务处理状态,进一步确定出目标事务的准备阶段和提交状态,达到了避免分布式系统中单独使用2PC协议造成的各个节点的数据不一致目的,从而实现了灵活控制分布式系统中各个节点数据保持一致的技术效果,进而解决了分布式系统中利用2PC协议因网络阻塞或节点通信异常导致的所有节点无法保证数据一致性的技术问题。
根据本发明实施例的另一个方面,还提供了一种用于实施上述数据处理方法的数据处理装置。如图14所示,该装置包括:
接收单元1402,用于第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将事务处理请求发送给关联的第一协调节点,其中,事务处理请求用于请求处理目标事务;
第一确定单元1404,用于响应事务处理请求,第一代理节点通过分布式事务处理网络中的数据库确定第一网络设备当前的事务处理状态;
第一发送单元1406,用于在第一网络设备当前的事务处理状态为准备状态的情况下,第一代理节点通过第一协调节点发送第一通知消息给分布式事务处理网络中除第一网络设备之外的其他参考网络设备,其中,第一通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为准备状态;
第二确定单元1408,用于在收到参考网络设备基于第一通知消息返回的响应确认消息的情况下,第一代理节点确定目标事务完成准备阶段;
第二发送单元1410,用于在数据库中第一网络设备当前的事务处理状态从准备状态调整为提交状态的情况下,第一代理节点发送第二通知消息给参考网络设备,其中,第二通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为提交状态。
在本发明实施例中,采用第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,上述事务处理请求用于请求处理目标事务;响应上述事务处理请求,上述第一协调节点通过分布式事务处理网络中的数据库确定上述第一网络设备当前的事务处理状态;在上述第一网络设备当前的事务处理状态为准备状态的情况下,上述第一协调节点发送第一通知消息给上述分布式事务处理网络中除上述第一网络设备之外的其他参考网络设备,其中,上述第一通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述准备状态;在收到上述参考网络设备基于上述第一通知消息返回的响应确认消息的情况下,上述第一协调节点确定上述目标事务完成准备阶段;在上述数据库中上述第一网络设备当前的事务处理状态从上述准备状态调整为提交状态的情况下,上述第一协调节点发送第二通知消息给上述参考网络设备,其中,上述第二通知消息用于指示上述参考网络设备将本地存储空间中所存储的上述第一网络设备当前的事务处理状态同步变更为上述提交状态的方式,通过第一协调节点从上述分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态,以及参考网络设备当前的事务处理状态,进一步确定出目标事务的准备阶段和提交状态,达到了避免分布式系统中单独使用2PC协议造成的各个节点的数据不一致目的,从而实现了灵活控制分布式系统中各个节点数据保持一致的技术效果,进而解决了分布式系统中利用2PC协议因网络阻塞或节点通信异常导致的所有节点无法保证数据一致性的技术问题。
根据本发明实施例的又一个方面,还提供了一种用于实施上述数据处理方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为终端设备为例来说明。如图15所示,该电子设备包括存储器1502和处理器1504,该存储器1502中存储有计算机程序,该处理器1504被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S10,第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,事务处理请求用于请求处理目标事务;
S20,响应事务处理请求,第一协调节点通过分布式事务处理网络中的数据库确定第一网络设备当前的事务处理状态;
S30,在第一网络设备当前的事务处理状态为准备状态的情况下,第一协调节点发送第一通知消息给分布式事务处理网络中除第一网络设备之外的其他参考网络设备,其中,第一通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为准备状态;
S40,在收到参考网络设备基于第一通知消息返回的响应确认消息的情况下,第一协调节点确定目标事务完成准备阶段;
S50,在数据库中第一网络设备当前的事务处理状态从准备状态调整为提交状态的情况下,第一协调节点发送第二通知消息给参考网络设备,其中,第二通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为提交状态。
可选地,本领域普通技术人员可以理解,图15所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图15其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图15中所示更多或者更少的组件(如网络接口等),或者具有与图15所示不同的配置。
其中,存储器1502可用于存储软件程序以及模块,如本发明实施例中的数据处理方法和装置对应的程序指令/模块,处理器1504通过运行存储在存储器1502内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器1502可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1502可进一步包括相对于处理器1504远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1502具体可以但不限于用于存储网络设备的状态等信息。作为一种示例,如图15所示,上述存储器1502中可以但不限于包括上述分布式事务处理装置中的接收单元1302、第一确定单元1304、第一发送单元1306、第二确定单元1308及第二发送单元1310。此外,还可以包括但不限于上述分布式事务处理装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1506用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1506包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1506为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1508,用于显示网络设备的状态;和连接总线1510,用于连接上述电子设备中的各个模块部件。
根据本发明实施例的又一个方面,还提供了一种用于实施上述数据处理方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为终端设备为例来说明。如图16所示,该电子设备包括存储器1602和处理器1604,该存储器1602中存储有计算机程序,该处理器1604被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S11,第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将所述事务处理请求发送给关联的第一协调节点,其中,所述事务处理请求用于请求处理目标事务;
S21,响应所述事务处理请求,所述第一代理节点通过分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态;
S31,在所述第一网络设备当前的事务处理状态为准备状态的情况下,所述第一代理节点通过所述第一协调节点发送第一通知消息给所述分布式事务处理网络中除所述第一网络设备之外的其他参考网络设备,其中,所述第一通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述准备状态;
S41,在收到所述参考网络设备基于所述第一通知消息返回的响应确认消息的情况下,所述第一代理节点确定所述目标事务完成准备阶段;
S51,在所述数据库中所述第一网络设备当前的事务处理状态从所述准备状态调整为提交状态的情况下,所述第一代理节点发送第二通知消息给所述参考网络设备,其中,所述第二通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述提交状态。
可选地,本领域普通技术人员可以理解,图16所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternetDevices,MID)、PAD等终端设备。图16其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图16中所示更多或者更少的组件(如网络接口等),或者具有与图16所示不同的配置。
其中,存储器1602可用于存储软件程序以及模块,如本发明实施例中的数据处理方法和装置对应的程序指令/模块,处理器1604通过运行存储在存储器1602内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器1602可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1602可进一步包括相对于处理器1604远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1602具体可以但不限于用于存储网络设备的状态等信息。作为一种示例,如图16所示,上述存储器1602中可以但不限于包括上述分布式事务处理装置中的接收单元1402、第一确定单元1404、第一发送单元1406、第二确定单元1406及第二发送单元1410。此外,还可以包括但不限于上述分布式事务处理装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1606用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1606包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1606为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1608,用于显示网络设备的状态;和连接总线1610,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S10,第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,事务处理请求用于请求处理目标事务;
S20,响应事务处理请求,第一协调节点通过分布式事务处理网络中的数据库确定第一网络设备当前的事务处理状态;
S30,在第一网络设备当前的事务处理状态为准备状态的情况下,第一协调节点发送第一通知消息给分布式事务处理网络中除第一网络设备之外的其他参考网络设备,其中,第一通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为准备状态;
S40,在收到参考网络设备基于第一通知消息返回的响应确认消息的情况下,第一协调节点确定目标事务完成准备阶段;
S50,在数据库中第一网络设备当前的事务处理状态从准备状态调整为提交状态的情况下,第一协调节点发送第二通知消息给参考网络设备,其中,第二通知消息用于指示参考网络设备将本地存储空间中所存储的第一网络设备当前的事务处理状态同步变更为提交状态。
或者,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S11,第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将所述事务处理请求发送给关联的第一协调节点,其中,所述事务处理请求用于请求处理目标事务;
S21,响应所述事务处理请求,所述第一代理节点通过分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态;
S31,在所述第一网络设备当前的事务处理状态为准备状态的情况下,所述第一代理节点通过所述第一协调节点发送第一通知消息给所述分布式事务处理网络中除所述第一网络设备之外的其他参考网络设备,其中,所述第一通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述准备状态;
S41,在收到所述参考网络设备基于所述第一通知消息返回的响应确认消息的情况下,所述第一代理节点确定所述目标事务完成准备阶段;
S51,在所述数据库中所述第一网络设备当前的事务处理状态从所述准备状态调整为提交状态的情况下,所述第一代理节点发送第二通知消息给所述参考网络设备,其中,所述第二通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述提交状态。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,所述事务处理请求用于请求处理目标事务;
响应所述事务处理请求,所述第一协调节点通过分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态;
在所述第一网络设备当前的事务处理状态为准备状态的情况下,所述第一协调节点发送第一通知消息给所述分布式事务处理网络中除所述第一网络设备之外的其他参考网络设备,其中,所述第一通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述准备状态;
在收到所述参考网络设备基于所述第一通知消息返回的响应确认消息的情况下,所述第一协调节点确定所述目标事务完成准备阶段;
在所述数据库中所述第一网络设备当前的事务处理状态从所述准备状态调整为提交状态的情况下,所述第一协调节点发送第二通知消息给所述参考网络设备,其中,所述第二通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述提交状态。
2.根据权利要求1所述的方法,其特征在于,响应所述事务处理请求,所述第一协调节点通过分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态包括:
所述第一协调节点基于所述事务处理请求中所携带的所述第一网络设备的设备标识,生成所述第一网络设备的状态查找请求,其中,所述状态查找请求用于请求查找在所述数据库中所存储的所述第一网络设备当前的事务处理状态;
所述第一协调节点将所述状态查找请求发送给所述数据库,并获取所述数据库所返回的所述第一网络设备当前的事务处理状态,其中,在所述数据库中查找到所述第一网络设备当前的事务处理状态为非准备状态时,则将所述第一网络设备当前的事务处理状态从所述非准备状态调整为准备状态,并向所述第一网络设备返回当前的事务处理状态为准备状态;在所述数据库中查找到所述第一网络设备当前的事务处理状态为准备状态或运行状态时,则指示所述第一网络设备停止处理所述目标事务。
3.根据权利要求2所述的方法,其特征在于,在所述第一协调节点确定所述目标事务完成准备阶段之后,还包括:
所述第一协调节点向所述数据库发送状态更新请求,以使所述数据库将所述第一网络设备当前的事务处理状态从所述准备状态调整为所述提交状态。
4.根据权利要求1所述的方法,其特征在于,
所述第一协调节点发送第一通知消息给所述分布式事务处理网络中除所述第一网络设备之外的其他参考网络设备包括:所述第一协调节点将所返回的所述第一网络设备当前的事务处理状态通知给所述第一代理节点中配置的第二网络设备,所述第一协调节点关联的第二代理节点中配置的第三网络设备,以及所述分布式事务处理网络中第二协调节点关联的第三代理节点中配置的第四网络设备;
在收到所述参考网络设备基于所述第一通知消息返回的响应确认消息的情况下,所述第一协调节点确定所述目标事务完成准备阶段包括:在所述第一代理节点中配置的所述第二网络设备,所述第一协调节点关联的所述第二代理节点中配置的所述第三网络设备,以及所述分布式事务处理网络中所述第二协调节点关联的所述第三代理节点中配置的所述第四网络设备均返回所述响应确认消息的情况下,所述第一协调节点确定所述目标事务完成所述准备阶段;
所述第一协调节点发送所述第二通知消息给所述参考网络设备包括:所述第一协调节点将所述第二通知消息发送给所述第一代理节点中配置的所述第二网络设备,所述第一协调节点关联的所述第二代理节点中配置的所述第三网络设备,以及所述分布式事务处理网络中所述第二协调节点关联的所述第三代理节点中配置的所述第四网络设备。
5.根据权利要求1所述的方法,其特征在于,在所述第一协调节点发送第一通知消息给所述分布式事务处理网络中除所述第一网络设备之外的其他参考网络设备之后,还包括:
在至少一个所述参考网络设备并未返回所述响应确认消息的情况下,所述第一协调节点发送第三通知消息给所述参考网络设备,其中,所述第三通知消息用于通知所述参考网络设备所述目标事务处理失败;
在至少一个所述参考网络设备返回响应拒绝消息的情况下,所述第一协调节点发送第四通知消息给所述参考网络设备,其中,所述第四通知消息用于通知所述参考网络设备所述目标事务处理失败。
6.根据权利要求4所述的方法,其特征在于,在所述第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求之后,还包括:
所述第一协调节点接收所述第一代理节点及与所述第一协调节点关联的所述第二代理节点上报的故障信息;
所述第一协调节点根据所述故障信息识别出故障网络设备,并终止所述故障网络设备的事务处理操作。
7.一种数据处理方法,其特征在于,包括:
第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将所述事务处理请求发送给关联的第一协调节点,其中,所述事务处理请求用于请求处理目标事务;
响应所述事务处理请求,所述第一代理节点通过分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态;
在所述第一网络设备当前的事务处理状态为准备状态的情况下,所述第一代理节点通过所述第一协调节点发送第一通知消息给所述分布式事务处理网络中除所述第一网络设备之外的其他参考网络设备,其中,所述第一通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述准备状态;
在收到所述参考网络设备基于所述第一通知消息返回的响应确认消息的情况下,所述第一代理节点确定所述目标事务完成准备阶段;
在所述数据库中所述第一网络设备当前的事务处理状态从所述准备状态调整为提交状态的情况下,所述第一代理节点发送第二通知消息给所述参考网络设备,其中,所述第二通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述提交状态。
8.根据权利要求7所述的方法,其特征在于,响应所述事务处理请求,所述第一代理节点通过分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态包括:
所述第一代理节点通过所述第一协调节点向所述数据库发送状态查找请求,其中,所述状态查找请求用于请求查找在所述数据库中所存储的所述第一网络设备当前的事务处理状态;
所述第一代理节点获取所述数据库所返回的所述第一网络设备当前的事务处理状态,其中,在所述数据库中查找到所述第一网络设备当前的事务处理状态为非准备状态,则将所述第一网络设备当前的事务处理状态从所述非准备状态调整为准备状态,并向所述第一网络设备返回当前的事务处理状态为准备状态;在所述数据库中查找到所述第一网络设备当前的事务处理状态为准备状态或运行状态,则指示所述第一网络设备停止处理所述目标事务。
9.根据权利要求7所述的方法,其特征在于,在所述第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将所述事务处理请求发送给关联的第一协调节点之后,还包括:
在所述第一协调节点出现故障的情况下,所述第一代理节点从所述分布式处理网络中重新选择出目标协调节点;
在达到第一时长间隔后,所述第一代理节点将向所述目标协调节点发送所述事务处理请求;
在通过所述目标协调节点确认所述第一网络设备当前的事务处理状态为准备状态的情况下,所述第一代理节点通过所述目标协调节点发送所述第一通知消息给所述参考网络设备;
在所述数据库中所述第一网络设备当前的事务处理状态从所述准备状态调整为提交状态的情况下,所述第一代理节点通过所述目标协调节点发送所述第二通知消息给所述参考网络设备。
10.根据权利要求7所述的方法,其特征在于,在所述第一代理节点发送第二通知消息给所述参考网络设备之后,还包括:
在至少一个所述参考网络设备并未收到所述第二通知消息的情况下,所述第一代理节点向所述第一协调节点发送对账请求;
所述第一代理节点获取所述第一协调节点所返回的所述第一网络设备的最新路由信息。
11.根据权利要求7所述的方法,其特征在于,在所述第一代理节点通过所述第一协调节点发送第一通知消息给所述分布式事务处理网络中除所述第一网络设备之外的其他参考网络设备之后,还包括:
在所述第一代理节点中包括所述参考网络设备的情况下,在所述参考网络设备的哈希环中,为所述第一网络设备创建状态节点,并将所述状态节点对应的状态值同步配置为所述准备状态。
12.一种数据处理装置,其特征在于,包括:
接收单元,用于第一协调节点接收第一代理节点中配置的第一网络设备触发的事务处理请求,其中,所述事务处理请求用于请求处理目标事务;
第一确定单元,用于响应所述事务处理请求,所述第一协调节点通过分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态;
第一发送单元,用于在所述第一网络设备当前的事务处理状态为准备状态的情况下,所述第一协调节点发送第一通知消息给所述分布式事务处理网络中除所述第一网络设备之外的其他参考网络设备,其中,所述第一通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述准备状态;
第二确定单元,用于在收到所述参考网络设备基于所述第一通知消息返回的响应确认消息的情况下,所述第一协调节点确定所述目标事务完成准备阶段;
第二发送单元,用于在所述数据库中所述第一网络设备当前的事务处理状态从所述准备状态调整为提交状态的情况下,所述第一协调节点发送第二通知消息给所述参考网络设备,其中,所述第二通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述提交状态。
13.一种数据处理装置,其特征在于,包括:
接收单元,用于第一代理节点接收所配置的第一网络设备触发的事务处理请求,并将所述事务处理请求发送给关联的第一协调节点,其中,所述事务处理请求用于请求处理目标事务;
第一确定单元,用于响应所述事务处理请求,所述第一代理节点通过分布式事务处理网络中的数据库确定所述第一网络设备当前的事务处理状态;
第一发送单元,用于在所述第一网络设备当前的事务处理状态为准备状态的情况下,所述第一代理节点通过所述第一协调节点发送第一通知消息给所述分布式事务处理网络中除所述第一网络设备之外的其他参考网络设备,其中,所述第一通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述准备状态;
第二确定单元,用于在收到所述参考网络设备基于所述第一通知消息返回的响应确认消息的情况下,所述第一代理节点确定所述目标事务完成准备阶段;
第二发送单元,用于在所述数据库中所述第一网络设备当前的事务处理状态从所述准备状态调整为提交状态的情况下,所述第一代理节点发送第二通知消息给所述参考网络设备,其中,所述第二通知消息用于指示所述参考网络设备将本地存储空间中所存储的所述第一网络设备当前的事务处理状态同步变更为所述提交状态。
14.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至6任一项中所述的方法或所述权利要求7至11任一项中所述的方法。
15.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至6或所述权利要求7至11任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110378952.7A CN115203215A (zh) | 2021-04-08 | 2021-04-08 | 数据处理方法和装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110378952.7A CN115203215A (zh) | 2021-04-08 | 2021-04-08 | 数据处理方法和装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115203215A true CN115203215A (zh) | 2022-10-18 |
Family
ID=83570723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110378952.7A Pending CN115203215A (zh) | 2021-04-08 | 2021-04-08 | 数据处理方法和装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115203215A (zh) |
-
2021
- 2021-04-08 CN CN202110378952.7A patent/CN115203215A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713134B2 (en) | Distributed storage and replication system and method | |
CN109729111B (zh) | 用于管理分布式系统的方法、设备和计算机程序产品 | |
US10949548B2 (en) | Systems and methods for providing multi-node resiliency for blockchain peers | |
US8185493B2 (en) | Solution method of in-doubt state in two-phase commit protocol of distributed transaction | |
US8533525B2 (en) | Data management apparatus, monitoring apparatus, replica apparatus, cluster system, control method and computer-readable medium | |
CN107153660B (zh) | 分布式数据库系统的故障检测处理方法及其系统 | |
WO2021068919A1 (zh) | 基于pbft算法改进的单节点异常主动恢复方法、系统、设备和介质 | |
WO2020134199A1 (zh) | 实现数据一致性的方法和装置、服务器和终端 | |
CN112015595B (zh) | 主从数据库的切换方法、计算设备及存储介质 | |
CN110971702A (zh) | 服务调用方法、装置、计算机设备及存储介质 | |
CN111752488B (zh) | 存储集群的管理方法、装置、管理节点及存储介质 | |
WO2012155630A1 (zh) | 一种容灾的方法、装置及系统 | |
CN109189854B (zh) | 提供持续业务的方法及节点设备 | |
CN112000444B (zh) | 数据库事务处理方法、装置、存储介质和电子设备 | |
US7240088B2 (en) | Node self-start in a decentralized cluster | |
WO2015196692A1 (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN112328685A (zh) | 一种全对等分布式数据库数据同步方法 | |
CN116346834A (zh) | 一种会话同步方法、装置、计算设备及计算机存储介质 | |
CN115203215A (zh) | 数据处理方法和装置、存储介质及电子设备 | |
CN116132530A (zh) | 一种基于Netty框架应用Raft算法实现MQTT Broker服务器的方法 | |
CN112711466B (zh) | 悬挂事务巡检方法和装置、电子设备和存储介质 | |
CN114363350A (zh) | 一种服务治理系统及方法 | |
CN111130896A (zh) | 一种nfs故障的切换方法、系统及双控存储系统 | |
CN107153594B (zh) | 分布式数据库系统的ha组件选主方法及其系统 | |
Mesaros et al. | A transactional system for structured overlay networks |
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 |