CN113760519A - 分布式事务处理方法、装置、系统和电子设备 - Google Patents
分布式事务处理方法、装置、系统和电子设备 Download PDFInfo
- Publication number
- CN113760519A CN113760519A CN202010510188.XA CN202010510188A CN113760519A CN 113760519 A CN113760519 A CN 113760519A CN 202010510188 A CN202010510188 A CN 202010510188A CN 113760519 A CN113760519 A CN 113760519A
- Authority
- CN
- China
- Prior art keywords
- transaction
- distributed
- coordinator node
- target
- node group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
Abstract
本发明提供了一种分布式事务处理方法、装置、系统和电子设备,该方法包括:接收分布式事务的事务请求;从分布式事务处理系统中的一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组;通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理;将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点。本发明中,通过将分布式事务的事务请求的处理数据不断从主节点同步至从节点,保证了目标事务协调器节点组中每个节点内数据的一致性,而不必因为单个节点影响整体事务的处理,从而能够有效降低资源的占用,以提高分布式事务处理系统的整体性能。
Description
技术领域
本发明涉及分布式系统技术领域,尤其是涉及一种分布式事务处理方法、装置、系统和电子设备。
背景技术
随着云存储相关技术的发展,事务数据处理系统越来越多的采用分布式架构。在分布式架构中,一个事务不再局限于在一个进程中执行,可能会拆分到不同的进程上,由不同进程上的服务发起事务来共同完成。
目前的分布式事务处理方案中,如果有一个节点处于阻塞状态或出现故障,分布式事务状态一直处于无法完成的中间状态,导致长时间占用较多资源,影响分布式事务处理系统的整体性能。
发明内容
本发明的目的在于提供一种分布式事务处理方法、装置、系统和电子设备,以缓解现有技术占用资源较多,而影响分布式事务处理系统的整体性能的技术问题。
第一方面,本发明实施例提供一种分布式事务处理方法,该方法应用于分布式事务处理系统,该分布式事务处理系统包括一个以上事务协调器节点组,每个事务协调器节点组包括一个主节点和至少一个从节点,该方法包括:接收分布式事务的事务请求;从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组;通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理;将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点。
在可选的实施方式中,上述事务协调器节点组中的每个节点均包括至少一个事务分片,该事务分片与分布式事务的事务请求的类型对应;在通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理的步骤之前,该方法还包括:确定分布式事务的事务请求的类型;根据分布式事务的事务请求的类型,将分布式事务的事务请求分配至对应的目标事务分片;其中,该目标事务分片设置于目标事务协调器节点组。
在可选的实施方式中,上述通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理的步骤,包括:通过目标事务协调器节点组的主节点中的、与分布式事务的事务请求对应的目标事务分片,对分布式事务的事务请求进行处理。
在可选的实施方式中,上述从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组的步骤,包括:通过负载均衡算法,从一个以上的事务协调器节点组中确定出目标事务协调器节点组;将分布式事务的事务请求发送至目标事务协调器节点组。
在可选的实施方式中,上述将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点的步骤,包括:将对分布式事务的事务请求的处理数据写入数据库中;通过数据库将处理数据同步至目标事务协调器节点组的从节点。
在可选的实施方式中,上述通过数据库将处理数据同步至目标事务协调器节点组的从节点的步骤,包括:按照预设同步周期,通过目标事务协调器节点组的从节点从数据库中获取处理数据。
在可选的实施方式中,上述目标事务协调器节点组的主节点包括预设映射关系表,该预设映射关系表用于存储对分布式事务的事务请求的处理数据;上述将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点的步骤,包括:将对分布式事务的事务请求的处理数据存入预设映射关系表;将预设映射关系表中的处理数据同步至目标事务协调器节点组的从节点中。
在可选的实施方式中,上述将预设映射关系表中的处理数据同步至目标事务协调器节点组的从节点中的步骤,包括:通过目标事务协调器节点组的主节点,将预设映射关系表中的处理数据发送至目标事务协调器节点组的从节点。
在可选的实施方式中,上述将预设映射关系表中的处理数据同步至目标事务协调器节点组的从节点中的步骤,包括:按照预设同步周期,通过目标事务协调器节点组的从节点,从预设映射关系表中获取处理数据。
第二方面,本发明实施例还提供一种分布式事务处理装置,该装置设置于分布式事务处理系统,该分布式事务处理系统包括一个以上事务协调器节点组,每个事务协调器节点组包括一个主节点和至少一个从节点,该装置包括:请求接收模块,用于接收分布式事务的事务请求;节点确定模块,用于从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组;请求处理模块,用于通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理;数据同步模块,用于将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点。
第三方面,本发明实施例还提供一种分布式事务处理系统,该系统包括一个以上事务协调器节点组和上述分布式事务处理装置;其中,每个事务协调器节点组包括一个主节点和至少一个从节点。
第四方面,本发明实施例还提供一种电子设备,该电子设备包括处理器和存储器,该存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述分布式事务处理方法。
第五方面,本发明实施例还提供一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述分布式事务处理方法。
本发明实施例带来了以下有益效果:
本发明实施例提供的分布式事务处理方法、装置、系统和电子设备,该分布式事务处理系统包括一个以上事务协调器节点组,每个事务协调器节点组包括一个主节点和至少一个从节点。该方法首先接收分布式事务的事务请求;进而从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组;再通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理;然后将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点。该方式通过将处理数据不断从主节点同步至从节点,保证了目标事务协调器节点组中每个节点内数据的一致性,而不必因为单个节点影响整体事务的处理,从而能够有效降低资源的占用,以提高分布式事务处理系统的整体性能。
本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式事务处理方法的流程图;
图2为本发明实施例提供的另一种分布式事务处理方法的流程图;
图3为本发明实施例提供的另一种分布式事务处理方法的流程图;
图4为本发明实施例提供的一种分布式事务处理装置的结构示意图;
图5为本发明实施例提供的一种分布式事务处理系统的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,分布式事务的处理方式通常采用以下两种:
方案一:将分布式全局事务和分支事务记录都存储在数据库(Data Base,简称DB)中。在事务执行过程中,如果有一个节点是处于阻塞状态,那么各个数据库节点也都会一直占用着数据库资源。只有在每个节点都准备完毕时,事务协调器(TransactionCoordinator,简称TC)才会进行全局事务提交,资源管理器(Resource Managers,简称RM)进行本地事务提交后才会释放资源,因此会长时间占用较多资源,对分布式事务处理系统整体性能影响比较大。
方案二:以文件形式存储分布式事务记录。如果出现事务协调器节点故障问题,事务协调器节点挂掉(出现故障),会导致无法收到提交(commit)和回滚(callback)的通知,从而导致分布式事务状态一直处于无法完成的中间状态,也会占用较多资源,影响分布式事务处理系统的整体性能。
基于上述问题,本发明实施例提供了一种分布式事务处理方法、装置、系统和电子设备,该技术可以应用于各种事务的处理场景中。为便于对本实施例进行理解,首先对本发明实施例所公开的一种分布式事务处理方法进行详细介绍,该方法应用于分布式事务处理系统,该分布式事务处理系统包括一个以上事务协调器节点组,其中,每个事务协调器节点组均包括一个主节点和至少一个从节点。
上述事务协调器节点组中包括至少一个节点,每个节点可以是一个事务协调器,该事务协调器可以用于跨多资源(如数据库、消息队列、文件系统),跨应用程序域、进程、机器以至跨网络的分布式事务处理的所有参与者的协调。在具体实现时,研发人员可以根据业务需求预先从事务协调器节点组中的至少一个节点中,选择一个节点作为主节点,除主节点之外的其余节点作为从节点。
如图1所示,该分布式事务处理方法包括以下具体步骤:
步骤S102,接收分布式事务的事务请求。
上述分布式事务通常是指参与者、支持事务的服务器、资源管理器以及事务协调器分别位于不同的分布式系统的不同节点之上的事务;也即是分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过网络远程协作完成事务称之为分布式事务,例如,用户登录页面事务、用户注册送积分事务、创建订单减库存事务、银行转账事务等都是分布式事务。
上述分布式事务的事务请求可以是用户通过用户终端发送的执行分布式事务的请求,例如,登录请求、注册请求、订单创建请求、转账请求、支付请求等。该用户终端可以是移动终端(例如,手机、平板电脑、智能手环等),也可以是计算机等。
步骤S104,从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组。
当接收到分布式事务的事务请求时,需要从分布式事务处理系统中包含的所有的事务协调器节点组中,选择一个事务协调器节点组作为处理分布式事务的事务请求的目标事务协调器节点组,该目标事务协调器节点组可以是所有的事务协调器节点组中的任意一个节点,可以是所有的事务协调器节点组中的当前负载量最小的一个节点,也可以是按照其他预设规则选择出的一个节点。
步骤S106,通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理。
在具体实现时,目标事务协调器节点组的主节点可以接收和处理分布式事务的事务请求,并得到针对于分布式事务的事务请求的处理数据。
步骤S108,将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点。
上述处理数据可以是目标事务协调器节点组的主节点对分布式事务的事务请求的处理结果,通常针对不同的分布式事务的事务请求有不同的处理结果,也有不同的处理过程。例如,针对登录请求的处理结果可以是登录成功或者登录不成功,针对订单创建请求的处理结果可以是库存减少多少数量或者创建失败等。
为了保证目标事务协调器节点组中的每个节点上的数据在某个时间或实时达到数据一致,需要将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点,以使从节点中保存的数据与其对应的事务协调器节点组中的主节点的数据一致,从而在事务协调器节点组中的某一个节点故障时,可以由事务协调器节点组中的其他节点代替该节点进行工作,例如,当目标事务协调器节点组中的主节点故障时,可以从目标事务协调器节点组中的所有从节点中,选择任意一个节点或者满足预设条件的一个节点作为主节点,以使选中的从节点接替主节点进行相应的事务请求接收和处理的工作,由于接替主节点的从节点保存有主节点中的处理数据,因而不会影响后续数据的处理。
本发明提供的一种分布式事务处理方法,首先接收分布式事务的事务请求;进而从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组;再通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理;然后将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点。该方式通过将处理数据不断从主节点同步至从节点,保证了目标事务协调器节点组中每个节点内数据的一致性,而不必因为单个节点影响整体事务的处理,从而能够有效降低资源的占用,以提高分布式事务处理系统的整体性能。
本发明实施例还提供了另一种分布式事务处理方法,该方法在上述实施例方法的基础上实现;该方法重点描述从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组的具体过程(通过下述步骤S204-S206实现);通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理的具体过程(通过下述步骤S212实现),以及将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点的具体过程(通过下述步骤S214-S216实现);如图2所示,该方法包括如下步骤:
步骤S202,接收分布式事务的事务请求。
步骤S204,通过负载均衡算法,从一个以上的事务协调器节点组中确定出目标事务协调器节点组;其中,事务协调器节点组中的每个节点均包括至少一个事务分片,该事务分片与分布式事务的事务请求的类型对应。
上述负载均衡通算法可以采用轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接法或者其他算法等,具体地,可以根据具体的使用场景选取对应的算法。该轮询法可以将分布式事务的请求按顺序轮流分配到分布式事务处理系统的事务协调器节点组上,均衡的对待每个事务协调器节点组,而不关心事务协调器节点组实际的连接数和当前负载量;该随机法可以通过预设随机函数,随机从分布式事务处理系统的所有事务协调器节点组中选取一个目标事务协调器节点组;该源地址哈希法通常是根据发送分布式事务的事务请求的用户终端的IP(Internet Protocol,互联网协议)地址,通过哈希函数计算得到一个哈希值,将该哈希值和事务协调器节点组地址列表的大小进行取模运算,得到的结果便是确定的目标事务协调器节点组地址的序号。
上述分布式事务处理系统中的每个事务协调器节点组中的每个节点均包括至少一个事务分片,该事务分片用于处理分布式事务的事务请求,同一个节点中的不同事务分片能够处理的分布式事务的事务请求的类型不同,每个事务分片能够处理的类型是预先设置好的,该类型可以包括注册类、支付类、登录类等,这里的类型的种类可以根据每个节点的用途和业务需求预先设定,在此不作具体限定。
不同节点所包含的事务分片可以相同也可以不同,不同节点所包含的事务分片的数量可以相同也可以不同,例如,节点1包含的事务分片为3个,分别可以处理注册类请求、支付类请求和登录类请求;节点2包含的事务分片为1个,可以处理支付类请求。本实施例采用了数据分片的策略,不会影响对分布式事务处理系统进行扩容,因此能够更加方便后期对分布式事务处理系统进行纵向拓展和横向拓展,内部软件及数据的迭代也更方便。
步骤S206,将分布式事务的事务请求发送至目标事务协调器节点组。
步骤S208,确定分布式事务的事务请求的类型。
步骤S210,根据分布式事务的事务请求的类型,将分布式事务的事务请求分配至对应的目标事务分片。
当目标事务协调器节点组件接收到分布式事务的事务请求时,首先需要确定接收到的分布式事务的事务请求的类型,并从目标事务协调器节点组中确定出能够处理该类型的事务请求的事务分片,将该事务分片作为目标事务分片。其中,能够处理该类型的事务请求的事务分片也即是与分布式事务的事务请求的类型相同的事务分片。
步骤S212,通过目标事务协调器节点组的主节点中的、与分布式事务的事务请求对应的目标事务分片,对分布式事务的事务请求进行处理。
在具体实现时,通过目标事务协调器节点组的主节点中的目标事务分片处理分布式事务的事务请求,得到分布式事务的事务请求的处理数据。
步骤S214,将对分布式事务的事务请求的处理数据写入数据库中。
上述数据库可以存储和接收分布式事务的事务请求的处理数据,该数据库可以是关系型数据库或者非关系型数据库,具体选取的数据库可以根据业务需求选定,在此不作具体的限定。
步骤S216,通过数据库将处理数据同步至目标事务协调器节点组的从节点。
数据库接收到的处理数据可以实时或者定时的同步至目标事务协调器节点组的从节点,例如,可以根据具体的应用场景,采用同步、半同步半异步或者异步的方式,将数据库中的处理数据同步至目标事务协调器组的从节点。
在一些实施例中,可以按照预设同步周期,通过目标事务协调器节点组的从节点从数据库中获取处理数据。该预设同步周期可以根据不同的业务需求设置不同的时长,例如,10秒、30秒、1分钟等;也即是,每隔固定时长,目标事务协调器节点组的从节点就会查询数据库中是否新增了处理数据,如果有新增,就将查询到的数据库中的、新增的处理数据进行获取和保存。
上述分布式事务处理方法,首先接收分布式事务的事务请求;进而通过负载均衡算法,从一个以上的事务协调器节点组中确定出目标事务协调器节点组;再将分布式事务的事务请求发送至目标事务协调器节点组;然后确定分布式事务的事务请求的类型,并根据该类型将分布式事务的事务请求分配至对应的目标事务分片,以通过目标事务协调器节点组的主节点中的、与分布式事务的事务请求对应的目标事务分片,对分布式事务的事务请求进行处理;再将对分布式事务的事务请求的处理数据写入数据库中,以通过数据库将处理数据同步至目标事务协调器节点组的从节点。该方式解决了单个事务协调器节点由于网络等异常宕机后,长期占用资源,无法处理分布式事务的问题,而且通过主节点处理请求,并将处理数据同步至分节点,可以保证多节点数据的一致性和可靠性,同时该方式也有利后期对分布式事务处理系统的纵向拓展和横向拓展。
本发明实施例还提供了另一种分布式事务处理方法,该方法在上述实施例方法的基础上实现;该方法重点描述目标事务协调器节点组的主节点包括预设映射关系表的情况下,将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点的具体过程(通过下述步骤S308-S310实现);如图3所示,该方法包括如下步骤:
步骤S302,接收分布式事务的事务请求。
步骤S304,从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组。
步骤S306,通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理。
步骤S308,将对分布式事务的事务请求的处理数据存入预设映射关系表;预设映射关系表用于存储对分布式事务的事务请求的处理数据。
上述预设映射关系表可以存储分布式事务的事务请求、该请求关联的处理数据。在具体实现时,该预设映射关系表可以将事务协调器节点组的主节点在处理分布式事务的事务请求过程中,生成的处理数据和对应的事务请求进行关联保存。
步骤S310,将预设映射关系表中的处理数据同步至目标事务协调器节点组的从节点中。
如果预设映射关系列表中的处理数据已经同步到事务协调器节点组的所有从节点中,会将预设映射关系表中的该处理数据删除,也可以理解为预设关系列表中保存的数据为新增的处理数据,从而可以节省预设映射关系表的存储空间,也便于后续数据的同步。
在具体实现时,上述步骤S310可以通过下述方式一或者方式二实现:
方式一,通过目标事务协调器节点组的主节点,将预设映射关系表中的处理数据发送至目标事务协调器节点组的从节点。也即是目标事务协调器节点组的主节点,可以在处理完事务请求时,或者处理完事务请求一段时间(例如,30秒或者1分钟)后,主动将预设映射关系表中的处理数据(也即是新增的处理数据)发送至目标事务协调器节点组的从节点,从而保证数据的一致性。
方式二,按照预设同步周期,通过目标事务协调器节点组的从节点,从预设映射关系表中获取处理数据。
该预设同步周期可以根据不同的业务需求设置不同的时长,例如,10秒、30秒、1分钟等;也即是每隔固定时长,目标事务协调器节点组的从节点就会查询预设映射关系表中是否有新增的处理数据,如果有,就将查询到的、新增的处理数据进行获取和保存,从而达到主节点和从节点数据一致的目的。
上述分布式事务处理方法,通过将事务请求的处理数据同步至目标事务协调器节点组的从节点,以保证目标事务协调器节点组中每个节点内数据的一致性,不必因为单个节点影响整体事务的处理,从而能够有效降低资源的占用,以提高分布式事务处理系统的整体性能。
对应于上述方法实施例,本发明实施例提供了一种分布式事务处理装置,该装置设置于分布式事务处理系统,该分布式事务处理系统包括一个以上事务协调器节点组,每个事务协调器节点组包括一个主节点和至少一个从节点,如图4所示,该装置包括:
请求接收模块40,用于接收分布式事务的事务请求。
节点确定模块41,用于从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组。
请求处理模块42,用于通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理。
数据同步模块43,用于将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点。
上述分布式事务处理装置,首先接收分布式事务的事务请求;进而从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组;再通过目标事务协调器节点组的主节点对分布式事务的事务请求进行处理;然后将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点。该方式通过将处理数据不断从主节点同步至从节点,保证了目标事务协调器节点组中每个节点内数据的一致性,而不必因为单个节点影响整体事务的处理,从而能够有效降低资源的占用,以提高分布式事务处理系统的整体性能。
具体地,上述事务协调器节点组中的每个节点均包括至少一个事务分片,该事务分片与分布式事务的事务请求的类型对应;上述装置还包括分片确定模块,用于:确定分布式事务的事务请求的类型;根据分布式事务的事务请求的类型,将分布式事务的事务请求分配至对应的目标事务分片;其中,目标事务分片设置于目标事务协调器节点组。
进一步地,上述请求处理模块42,用于:通过目标事务协调器节点组的主节点中的、与分布式事务的事务请求对应的目标事务分片,对分布式事务的事务请求进行处理。
进一步地,上述节点确定模块41,用于:通过负载均衡算法,从一个以上的事务协调器节点组中确定出目标事务协调器节点组;将分布式事务的事务请求发送至目标事务协调器节点组。
进一步地,上述数据同步模块43,用于:将对分布式事务的事务请求的处理数据写入数据库中;通过数据库将处理数据同步至目标事务协调器节点组的从节点。
具体地,上述数据同步模块43,还用于:按照预设同步周期,通过目标事务协调器节点组的从节点从数据库中获取所述处理数据。
再具体实现时,上述目标事务协调器节点组的主节点包括预设映射关系表,该预设映射关系表用于存储对分布式事务的事务请求的处理数据;上述数据同步模块43,包括:数据存储单元,用于将对分布式事务的事务请求的处理数据存入预设映射关系表;同步单元,用于将预设映射关系表中的处理数据同步至目标事务协调器节点组的从节点中。
具体地,上述同步单元,用于:通过目标事务协调器节点组的主节点,将预设映射关系表中的处理数据发送至目标事务协调器节点组的从节点。
在一些实施例中,上述同步单元,还用于:按照预设同步周期,通过目标事务协调器节点组的从节点,从预设映射关系表中获取处理数据。
本发明实施例所提供的分布式事务处理装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例还提供一种分布式事务处理系统,该系统包括一个以上事务协调器节点组50和上述分布式事务处理装置51;其中,每个事务协调器节点组包括一个主节点500和至少一个从节点501。如图5所示为本发明实施例提供的一种分布式事务处理系统的结构示意图。
图5中分布式事务处理系统中包含有3个事务协调器节点组、每个事务协调器组中包括一个主节点和2个从节点,该图5只是简单的示意图,分布式事务处理系统中可以包含的事务协调器节点组和从节点的数量可以是任意数量。
在具体实现时,分布式事务处理系统中的事务协调器节点组中包含的节点可能存在重复的情况,也即是不同的事务协调器节点组之间包含的节点可能有重叠。例如,事务协调器节点组1中包含有节点1、节点2、节点3和节点4;事务协调器节点组2中包含有节点2、节点3和节点5,二者有重合的节点2,从而存在节点2为事务协调器节点组1中的主节点,节点2为事务协调器节点组2中的从节点,而节点3为事务协调器节点组2的主节点的现象,也即是每个节点可能各为不同事务协调器节点组中的主从节点,该互为主从节点的方式,可以进一步保证多节点数据的一致性和可靠性。
上述分布式事务处理装置51分别与事务协调器节点组件中的主节点500和从节点501连接,主节点500还与从节点501连接。主节点和从节点可以通过数据库间接连接,也可以直接连接。
在具体实现时,分布式事务处理装置51的中的请求接收模块接收分布式事务的事务请求后,会通过节点确定模块从一个以上的事务协调器节点组中,为分布式事务的事务请求确定目标事务协调器节点组,并将该分布式事务的事务请求发送给目标事务协调器节点组的主节点500,以使该主节点500对分布式事务的事务请求进行处理;处理完成后,数据同步模块将对分布式事务的事务请求的处理数据同步至目标事务协调器节点组的从节点501。
上述分布式事务处理系统,通过将处理数据不断从主节点同步至从节点,保证了目标事务协调器节点组中每个节点内数据的一致性,而不必因为单个节点影响整体事务的处理,从而能够有效降低资源的占用,以提高分布式事务处理系统的整体性能。
本发明实施例还提供了一种电子设备,参见图6所示,该电子设备包括处理器101和存储器100,该存储器100存储有能够被处理器101执行的机器可执行指令,该处理器101执行机器可执行指令以实现上述分布式事务处理方法。
进一步地,图6所示的电子设备还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。
其中,存储器100可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述分布式事务处理方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的分布式事务处理方法、装置、系统和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种分布式事务处理方法,其特征在于,所述方法应用于分布式事务处理系统,所述分布式事务处理系统包括一个以上事务协调器节点组,每个所述事务协调器节点组包括一个主节点和至少一个从节点,所述方法包括:
接收分布式事务的事务请求;
从所述一个以上的事务协调器节点组中,为所述分布式事务的事务请求确定目标事务协调器节点组;
通过所述目标事务协调器节点组的主节点对所述分布式事务的事务请求进行处理;
将对所述分布式事务的事务请求的处理数据同步至所述目标事务协调器节点组的从节点。
2.根据权利要求1所述的方法,其特征在于,所述事务协调器节点组中的每个节点均包括至少一个事务分片,所述事务分片与分布式事务的事务请求的类型对应;
在所述通过所述目标事务协调器节点组的主节点对所述分布式事务的事务请求进行处理的步骤之前,所述方法还包括:
确定所述分布式事务的事务请求的类型;
根据所述分布式事务的事务请求的类型,将所述分布式事务的事务请求分配至对应的目标事务分片;其中,所述目标事务分片设置于所述目标事务协调器节点组。
3.根据权利要求2所述的方法,其特征在于,所述通过所述目标事务协调器节点组的主节点对所述分布式事务的事务请求进行处理的步骤,包括:
通过所述目标事务协调器节点组的主节点中的、与所述分布式事务的事务请求对应的目标事务分片,对所述分布式事务的事务请求进行处理。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述从所述一个以上的事务协调器节点组中,为所述分布式事务的事务请求确定目标事务协调器节点组的步骤,包括:
通过负载均衡算法,从所述一个以上的事务协调器节点组中确定出目标事务协调器节点组;
将所述分布式事务的事务请求发送至所述目标事务协调器节点组。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述将对所述分布式事务的事务请求的处理数据同步至所述目标事务协调器节点组的从节点的步骤,包括:
将对所述分布式事务的事务请求的处理数据写入数据库中;
通过所述数据库将所述处理数据同步至所述目标事务协调器节点组的从节点。
6.根据权利要求5所述的方法,其特征在于,所述通过所述数据库将所述处理数据同步至所述目标事务协调器节点组的从节点的步骤,包括:
按照预设同步周期,通过所述目标事务协调器节点组的从节点从所述数据库中获取所述处理数据。
7.根据所述权利要求1-3任一项所述的方法,其特征在于,所述目标事务协调器节点组的主节点包括预设映射关系表,所述预设映射关系表用于存储对所述分布式事务的事务请求的处理数据;
所述将对所述分布式事务的事务请求的处理数据同步至所述目标事务协调器节点组的从节点的步骤,包括:
将对所述分布式事务的事务请求的处理数据存入所述预设映射关系表;
将所述预设映射关系表中的处理数据同步至目标事务协调器节点组的从节点中。
8.根据权利要求7所述的方法,其特征在于,所述将所述预设映射关系表中的处理数据同步至目标事务协调器节点组的从节点中,包括:
通过所述目标事务协调器节点组的主节点,将所述预设映射关系表中的处理数据发送至所述目标事务协调器节点组的从节点。
9.根据权利要求7所述的方法,其特征在于,所述将所述预设映射关系表中的处理数据同步至目标事务协调器节点组的从节点中的步骤,包括:
按照预设同步周期,通过所述目标事务协调器节点组的从节点,从所述预设映射关系表中获取所述处理数据。
10.一种分布式事务处理装置,其特征在于,所述装置设置于分布式事务处理系统,所述分布式事务处理系统包括一个以上事务协调器节点组,每个所述事务协调器节点组包括一个主节点和至少一个从节点,所述装置包括:
请求接收模块,用于接收分布式事务的事务请求;
节点确定模块,用于从所述一个以上的事务协调器节点组中,为所述分布式事务的事务请求确定目标事务协调器节点组;
请求处理模块,用于通过所述目标事务协调器节点组的主节点对所述分布式事务的事务请求进行处理;
数据同步模块,用于将对所述分布式事务的事务请求的处理数据同步至所述目标事务协调器节点组的从节点。
11.一种分布式事务处理系统,其特征在于,所述系统包括一个以上事务协调器节点组和权利要求10所述的分布式事务处理装置;其中,每个所述事务协调器节点组包括一个主节点和至少一个从节点。
12.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至9任一项所述的分布式事务处理方法。
13.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使处理器实现权利要求1至9任一项所述的分布式事务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010510188.XA CN113760519A (zh) | 2020-06-07 | 2020-06-07 | 分布式事务处理方法、装置、系统和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010510188.XA CN113760519A (zh) | 2020-06-07 | 2020-06-07 | 分布式事务处理方法、装置、系统和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113760519A true CN113760519A (zh) | 2021-12-07 |
Family
ID=78785272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010510188.XA Pending CN113760519A (zh) | 2020-06-07 | 2020-06-07 | 分布式事务处理方法、装置、系统和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760519A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114745393A (zh) * | 2022-03-31 | 2022-07-12 | 阿里云计算有限公司 | 会话同步系统及其方法、云计算中心和云计算设备 |
-
2020
- 2020-06-07 CN CN202010510188.XA patent/CN113760519A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114745393A (zh) * | 2022-03-31 | 2022-07-12 | 阿里云计算有限公司 | 会话同步系统及其方法、云计算中心和云计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN111091429B (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
CN109189751B (zh) | 基于区块链的数据同步方法及终端设备 | |
CN107493340B (zh) | 区块链网络中的数据分发校验方法、装置及系统 | |
CN111475576B (zh) | 基于区块链的分布式数据库存储方法及系统 | |
KR20210055734A (ko) | 블록 처리 방법들, 노드 및 시스템 | |
CN111294390B (zh) | 一种区块数据快速同步方法、装置、设备及存储介质 | |
CN111683118B (zh) | 基于区块链的共识方法、装置、主节点设备及从节点设备 | |
CN111130801A (zh) | 一种数据处理方法、装置、节点设备及计算机存储介质 | |
CN111338806B (zh) | 一种业务控制方法及装置 | |
CN111447069B (zh) | 一种基于区块链的低频访问数据处理方法 | |
CN110880147B (zh) | 一种交易处理方法、相关设备及计算机存储介质 | |
CN112069169B (zh) | 区块数据存储方法、装置、电子设备及可读存储介质 | |
WO2022121612A1 (zh) | 区块链网络的信息处理方法、装置、设备及存储介质 | |
CN113064764B (zh) | 在区块链系统中执行区块的方法及装置 | |
CN112650812A (zh) | 一种数据分片存储方法、装置、计算机设备和存储介质 | |
CN113760519A (zh) | 分布式事务处理方法、装置、系统和电子设备 | |
CN110708383B (zh) | 区块链节点的网络连接方法及相关设备 | |
CN110888892A (zh) | 一种区块同步方法、装置及存储介质 | |
CN111538785A (zh) | 区块链的数据写入方法、装置、系统及电子设备 | |
CN107563942B (zh) | 一种物流数据批量处理方法、物流处理系统以及处理装置 | |
CN110555764A (zh) | 一种去中心化环境下区块链达成一致性的方法及系统 | |
CN113268327A (zh) | 事务请求的处理方法、装置和电子设备 | |
US20240015037A1 (en) | Data processing method and apparatus for consensus network, program product, device, and medium | |
CN116192868B (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 |