CN111143041B - 一种数据一致性方法、分布式协调器及中央协调器 - Google Patents
一种数据一致性方法、分布式协调器及中央协调器 Download PDFInfo
- Publication number
- CN111143041B CN111143041B CN201911415793.2A CN201911415793A CN111143041B CN 111143041 B CN111143041 B CN 111143041B CN 201911415793 A CN201911415793 A CN 201911415793A CN 111143041 B CN111143041 B CN 111143041B
- Authority
- CN
- China
- Prior art keywords
- transaction
- rollback
- rollback operation
- annotation
- global
- 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
- 238000000034 method Methods 0.000 title claims abstract description 110
- 230000000977 initiatory effect Effects 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 28
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 206010028980 Neoplasm Diseases 0.000 description 1
- 201000011510 cancer Diseases 0.000 description 1
- 230000002490 cerebral effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000003776 cleavage reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000007017 scission Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据一致性方法、分布式协调器及中央协调器,其中,数据一致性方法包括:通过交易程序中的交易开始注解识别交易开始,当交易开始时,创立全局ID并将其发送至中央协调器,由中央协调器建立全局ID队列;通过事务开始注解识别事务开始,事务开始时,创立事务信息并将其发送至中央协调器,其中,事务信息包括:事务ID、全局ID及事务调用状态,由中央协调器于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据相应全局ID队列中所有已完成事务ID队列生成回退指令;接收回退指令,发起回退操作。本发明能够实现分布式服务器数据的一致性。
Description
技术领域
本发明涉及分布式服务器领域,尤其涉及一种分布式服务器数据一致性方法、分布式协调器及中央协调器。
背景技术
现有技术中分布式服务器数据的统一主要通过如下两种方式实现:1)两阶段提交(2PC),其使用的原理为XA协议原理(是X/Open组织为分布式事务处理制定的标准协议)。2)补偿事务(TCC),TCC即采用补偿机制,针对每个操作,都要注册一个与其对应的确认和补偿(撤销)操作,共分为三个阶段:Try阶段主要是对业务系统做检测及资源预留;Confirm阶段主要是对业务系统做确认提交,Try阶段执行成功并开始执行Confirm阶段时,默认Confirm阶段是不会出错的。即:只要Try成功,Confirm一定成功;Cancel阶段主要是在业务执行错误,需要回滚的状态下执行的业务取消,预留资源释放。
对于上述2PC而言,存在如下缺陷:1)阻塞。对于任何一次指令必须收到明确的响应,才会继续做下一步,否则处于阻塞状态,占用的资源被一直锁定,不会被释放。2)单点故障。如果协调者宕机,参与者没有协调者指挥,会一直阻塞,尽管可以通过选举新的协调者替代原有协调者,但是如果之前协调者在发送一个提交指令后宕机,而提交指令仅仅被一个参与者接收,并且参与者接收后也宕机,新上任的协调者无法处理这种情况。3)脑裂。协调者发送提交指令,有的参与者接收到执行了事务,有的参与者没有接收到事务,就没有执行事务,多个参与者之间是不一致的。4)跨系统调用:没有良好的解决方案。
对于上述TCC而言,存在如下缺陷:1)需要修改原来的业务逻辑。2)通信次数较多。
发明内容
为了解决现有技术中的分布式服务器数据一致性方法存在信息闭塞、单点故障、需要修改业务逻辑及通信次数较多的缺陷,本发明的第一方面提供一种分布式服务器数据一致性的方法,适用于分布式协调器,预先在交易程序中建立交易开始注解及事务开始注解,其中,交易程序中包括多个事务,所述方法包括:
通过交易程序中的交易开始注解识别交易开始,当交易开始时,创立全局ID并将其发送至中央协调器,由中央协调器建立全局ID队列;
通过事务开始注解识别事务开始,事务开始时,创立事务信息并将其发送至中央协调器,其中,事务信息包括:事务ID、全局ID及事务调用状态,由中央协调器于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据相应全局ID队列中所有已完成事务ID队列生成回退指令;
接收回退指令,发起回退操作。
进一步实施例中,通过交易程序中的交易开始注解识别交易开始,包括:
通过SpringAop对交易程序中的交易开始注解进行拦截;
拦截到交易开始注解时,确定交易开始。
进一步实施例中,通过事务开始注解识别单个事务开始,包括:
通过SpringAop对事务开始注解进行拦截;
拦截到事务开始注解时,确定事务开始。
进一步实施例中,接收回退指令,发起回退操作,包括:
根据回退指令中的事务ID,确定事务开始注解,从事务开始注解中获取回退操作的方法名称;
根据回退操作的方法名称,确定回退操作方法的地址;
根据回退操作方法的方法及地址,发起回退操作。
进一步实施例中,通过事务开始注解识别事务开始的同时,还从事务开始注解中获取回退操作的方法名称,根据回退操作的方法名称,确定回退操作方法的地址,将回退操作的名称及地址存储于数据库中;
接收回退指令,发起回退操作,包括:根据回退指令中的事务ID,从数据库中获取回退操作的名称及地址;根据获取的回退操作名称及地址,发起回退操作。
本发明第二方面提供一种分布式服务器数据一致性的方法,适用于中央协调器,包括:
接收全局ID,并建立全局ID的队列;
接收事务信息,事务信息包括事务ID、全局ID及事务调用状态;
于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据全局ID队列中所有已完成事务ID队列,生成回退指令。
本发明的第三方面,提供一种分布式协调器,预先在交易程序中建立交易开始注解及事务开始注解,其中,交易程序中包括多个事务,包括:
第一识别模块,用于通过交易程序中的交易开始注解识别交易开始,当交易开始时,创立全局ID并将其发送至中央协调器,由中央协调器建立全局ID队列;
第二识别模块,用于通过事务开始注解识别事务开始,事务开始时,创立事务信息并将其发送至中央协调器,其中,事务信息包括:事务ID、全局ID及事务调用状态,由中央协调器于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据相应全局ID队列中所有已完成事务ID队列生成回退指令;
回退模块,用于接收回退指令,发起回退操作。
进一步实施例中,第一识别模块通过交易程序中的交易开始注解识别交易开始,包括:
通过SpringAop对交易程序中的交易开始注解进行拦截;
拦截到交易开始注解时,确定交易开始。
进一步实施例中,第二识别模块通过事务开始注解识别单个事务开始,包括:
通过SpringAop对事务开始注解进行拦截;
拦截到事务开始注解时,确定事务开始。
进一步实施例中,回退模块接收回退指令,发起回退操作,包括:
根据回退指令中的事务ID,确定事务开始注解,从事务开始注解中获取回退操作的方法名称;
根据回退操作的方法名称,确定回退操作方法的地址;
根据回退操作方法的方法及地址,发起回退操作。
进一步实施例中,第二识别模块通过事务开始注解识别事务开始的同时,还从事务开始注解中获取回退操作的方法名称,根据回退操作的方法名称,确定回退操作方法的地址,将回退操作的名称及地址存储于数据库中;
回退模块接收回退指令,发起回退操作,包括:根据回退指令中的事务ID,从数据库中获取回退操作的名称及地址;根据获取的回退操作名称及地址,发起回退操作。
本发明第四方面提供一种中央协调器,包括:
第一接收模块,用于接收全局ID,并建立全局ID的队列;
第二接收模块,用于接收事务信息,事务信息包括事务ID、全局ID及事务调用状态;
处理模块,用于于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据全局ID队列中所有已完成事务ID队列,生成回退指令。
本发明的第五方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现分布式协调器侧的分布式服务器数据一致性的方法。
本发明的第六方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行计算机程序,所述计算机程序被处理器执行时实现分布式协调器侧的分布式服务器数据一致性的方法。
本发明的第七方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现中央协调器侧的分布式服务器数据一致性的方法。
本发明的第八方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行计算机程序,所述计算机程序被处理器执行时实现中央协调器侧的分布式服务器数据一致性的方法。
本发明提供的一种分布式服务器数据一致性方法、分布式协调器及中央协调器,通过预先在交易程序中建立交易开始注解及事务开始注解,能够使分布式协调器及时识别交易开始及事务开始,由中央协调器通过记录全局ID及事务ID的方式,能够实现同一交易下已处理事务的管理,在有事务调用状态失败时,根据全局ID队列中记录的事务ID生成回退操作,进而实现分布式服务器数据一致性。本发明相对于现有技术而言,能够实现如下技术效果:不会一直阻塞,超过一定时间,占用的资源会自动释放;出现单点故障时,集群中其他机器可以快速取代该机器的功能;对于每个指令,参与的分布式服务器接受到了就执行事务,同时每个指令执行完成功响应才会执行下一个指令,多个分布式服务器之间不存在不一致的问题;可以较好的支持跨系统调用,在当前系统的跨系统调用的模块增加方向操作即可,不需要侵入到其他系统框架以及业务逻辑。
为让本申请的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一实施例的分布式协调器侧的分布式服务器数据一致性方法程流程图;
图2示出了本发明一实施例的回退操作过程的流程图;
图3示出了本发明另一实施例的回退操作过程的流程图;
图4示出了本发明一实施例的中央协调器侧的分布式服务器的数据一致性方法流程图;
图5示出了本发明一实施例的分布式协调器的结构示意图;
图6示出了本发明一实施例的中央协调器的结构示意图。
具体实施方式
为了使本发明的技术特点及效果更加明显,下面结合附图对本发明的技术方案做进一步说明,本发明也可有其他不同的具体实例来加以说明或实施,任何本领域技术人员在权利要求范围内做的等同变换均属于本发明的保护范畴。
关于本说明书中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,也非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
在本说明书的描述中,参考术语“一实施例”、“一具体实施例”、“一些实施例”、“例如”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
首先需要说明的是,本发明所述的分布式协调器设置于分布式服务器中,中央协调器设置于中央服务器集群中,分布式协调器与中央协调器相互配合用于管理交易程序运行时的数据统一性的问题。分布式服务器用于接收用户发起的交易请求,并根据交易请求调用相应的交易程序,本发明的实施前提是分布式服务器已根据交易请求调用相应的交易程序。具体实施时,还可由分布式协调器接收用户发起的交易请求,并根据交易请求调用相应的交易程序。本发明所述的交易程序为交易实现的逻辑,具体逻辑跟具体交易相关,本发明对此不作具体限定。
如图1所示,图1示出了本发明实施例分布式协调器侧的分布式服务器数据一致性方法程流程图。本实施例用于解决现有技术中分布式服务器数据一致性方法存在信息闭塞、单点故障、需要修改业务逻辑及通信次数较多的缺陷。实施之前,预先在交易程序中建立交易开始注解及事务开始注解,其中,交易程序中包括多个事务。交易开始注解用于在交易程序运行过程中定位交易开始,并创建全局ID(即交易的父节点),事务开始注解用于在交易程序运行过程中定位事务开始,并创建事务ID(即父节点下的子节点)。
具体的,分布式协调器侧的分布式服务器数据一致性方法包括:
步骤110,通过交易程序中的交易开始注解识别交易开始,当交易开始时,创立全局ID并将其发送至中央协调器,由中央协调器建立全局ID队列。详细的说,全局ID用于标识交易程序,可以是数字、字母、字符等的任意组合,本发明对其具体取值不做限定。
步骤120,通过事务开始注解识别事务开始,事务开始时,创立事务信息并将其发送至中央协调器,其中,事务信息包括:事务ID、全局ID及事务调用状态,由中央协调器于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据相应全局ID队列中所有已完成事务ID队列生成回退指令。详细的说,事务ID用于标识事务,可以是数字、字母、字符等的任意组合,本发明对其具体取值不做限定。事务信息中的全局ID为最近一次产生的全局ID,事务调用状态包括开始、结束、异常。具体实施时,当识别出事务开始时,每隔一定时间间隔产生并发送一次事务信息。具体实施时,事务信息中还可包括所属服务,以便中央协调器确定事务实现的功能,所属服务配置在事务的服务参数中,
步骤130,接收回退指令,发起回退操作。其中,回退指令中包括需要执行回退操作的事务ID。
本实施例通过预先在交易程序中建立交易开始注解及事务开始注解,能够使分布式协调器及时识别交易开始及事务开始,由中央协调器通过记录全局ID及事务ID的方式,能够实现同一交易下已处理事务的管理,在有事务调用状态失败时,根据全局ID队列中记录的事务ID生成回退操作,进而实现分布式服务器数据一致性。
本发明一实施例中,上述步骤110通过交易程序中的交易开始注解识别交易开始,包括:
通过SpringAop对交易程序中的交易开始注解进行拦截;
拦截到交易开始注解时,确定交易开始。
本发明一实施例中,上述步骤120通过事务开始注解识别单个事务开始,包括:
通过SpringAop对事务开始注解进行拦截;
拦截到事务开始注解时,确定事务开始。
本发明一实施例中,如图2所示,上述步骤130接收回退指令,发起回退操作,包括:
步骤210,根据回退指令中的事务ID,确定事务开始注解,从事务开始注解中获取回退操作的方法名称。
步骤220,根据回退操作的方法名称,确定回退操作方法的地址。
步骤230,根据回退操作方法的方法及地址,发起回退操作。回退操作的具体过程参见现有技术,本发明对其具体流程不做限定。
本发明一实施例中,上述步骤110通过事务开始注解识别事务开始的同时,还从事务开始注解中获取回退操作的方法名称,根据回退操作的方法名称,确定回退操作方法的地址,将回退操作的名称及地址存储于数据库中。
如图3所示,上述步骤130接收回退指令,发起回退操作包括:
步骤310,根据回退指令中的事务ID,从数据库中获取回退操作的名称及地址;
步骤320,根据获取的回退操作名称及地址,发起回退操作。
如图4所示,图4示出了本发明一实施例的中央协调器侧的分布式服务器数据一致性的方法,包括:
步骤410,接收全局ID,并建立全局ID的队列;
步骤420,接收事务信息,事务信息包括事务ID、全局ID及事务调用状态;
步骤430,于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据全局ID队列中所有已完成事务ID队列,生成回退指令。
基于同一发明构思,本发明实施例中还提供了一种分布式协调器及中央协调器,如下面的实施例所述。由于分布式协调器及中央协调器解决问题的原理分别与分布式协调器侧及中央协调器侧的分布式服务器数据一致性方法相似,因此该装置的实施可以参见分布式协调器侧及中央协调器侧的分布式服务器数据一致性方法的实施,重复之处不再赘述。
如图5所示,图5示出了本发明一实施例的分布式协调器的结构示意图,交易程序中预先建立有交易开始注解及事务开始注解,其中,交易程序中包括多个事务,具体的,分布式协调器包括:
第一识别模块510,用于通过交易程序中的交易开始注解识别交易开始,当交易开始时,创立全局ID并将其发送至中央协调器,由中央协调器建立全局ID队列。
第二识别模块520,用于通过事务开始注解识别事务开始,事务开始时,创立事务信息并将其发送至中央协调器,其中,事务信息包括:事务ID、全局ID及事务调用状态,由中央协调器于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据相应全局ID队列中所有已完成事务ID队列生成回退指令。
回退模块530,用于接收回退指令,发起回退操作。
本发明一实施例中,第一识别模块510通过交易程序中的交易开始注解识别交易开始,包括:通过SpringAop对交易程序中的交易开始注解进行拦截;拦截到交易开始注解时,确定交易开始。
本发明一实施例中,第二识别模块520通过事务开始注解识别单个事务开始,包括:通过SpringAop对事务开始注解进行拦截;拦截到事务开始注解时,确定事务开始。
本发明一实施例中,回退模块530接收回退指令,发起回退操作,包括:根据回退指令中的事务ID,确定事务开始注解,从事务开始注解中获取回退操作的方法名称;根据回退操作的方法名称,确定回退操作方法的地址;根据回退操作方法的方法及地址,发起回退操作。
本发明一实施例中,第二识别模块520通过事务开始注解识别事务开始的同时,还从事务开始注解中获取回退操作的方法名称,根据回退操作的方法名称,确定回退操作方法的地址,将回退操作的名称及地址存储于数据库中。回退模块530接收回退指令,发起回退操作,包括:根据回退指令中的事务ID,从数据库中获取回退操作的名称及地址;根据获取的回退操作名称及地址,发起回退操作。
如图6所示,图6示出了本发明一实施例的中央协调器的结构示意图。具体的,中央协调器包括:
第一接收模块610,用于接收全局ID,并建立全局ID的队列;
第二接收模块620,用于接收事务信息,事务信息包括事务ID、全局ID及事务调用状态;
处理模块630,用于于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据全局ID队列中所有已完成事务ID队列,生成回退指令。
为了更清楚说明本发明技术方案,下面以一他行票存入100元为例详细说明本发明技术方案,他行票存入100元的交易过程包括两个事务(事务1为银行内部账户扣款,事务2为客户存款账户增款),具体的过程为:①交易处理服务器接收到用户发起的他行票存入请求之后,发送调用银行内部账户请求;②银行内部账户服务器根据该请求在银行内部账户中扣减100元;③银行内部账户服务器将扣减状态发送至交易处理服务器;④交易处理服务器发送调用客户存款账户请求至客户存款账户服务器中;⑤客户存款账户服务器根据该调用客户存款账户请求,对客户存款账户进行增加处理,但增加时出现了异常,未增加成功,将处理结果发送至交易处理服务器中。
分布式服务器数据一致性的过程包括:
(1)在上述过程执行过程中,分布式协调器拦截交易开始注解,拦截成功后,生成全局ID,并将其发送至中央协调器。
(2)中央协调器接收全局ID,并生成全局ID队列。
(3)分布式协调器拦截事务开始注解,拦截成功后,生成事务信息(事务ID、全局ID及事务处理结果),并将其发送至中央协调器。拦截事务开始注解时从事务开始注解中获取回退操作的方法名称,根据回退操作的方法名称,确定回退操作方法的地址,将回退操作的名称及地址存储于数据库中。
(4)中央协调器接收事务信息,按照上段描述的过程,中央协调器首先接收到的事务信息1,因事务1调用状态为结束,则将事务ID1记录至全局ID队列中。
中央协调器其次接收到的是事务信息2,因事务2调用状态为异常,则根据全局ID队列中的已完成事务(即事务ID1),生成回退指令,发送至分布式协调器。
(5)分布式协调器根据回退操作中的事务ID,从数据库中获取回退操作的名称及地址,根据获取的回退操作名称及地址,发起回退操作。
本发明一实施例中,还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现分布式协调器侧的分布式服务器数据一致性的方法。
本发明一实施例中,还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行计算机程序,所述计算机程序被处理器执行时实现分布式协调器侧的分布式服务器数据一致性的方法。
本发明一实施例中,还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现中央协调器侧的分布式服务器数据一致性的方法。
本发明一实施例中,还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行计算机程序,所述计算机程序被处理器执行时实现中央协调器侧的分布式服务器数据一致性的方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅用于说明本发明的技术方案,任何本领域普通技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围应视权利要求范围为准。
Claims (14)
1.一种分布式服务器数据一致性方法,其特征在于,预先在交易程序中建立交易开始注解及事务开始注解,其中,交易程序中包括多个事务,所述方法包括:
通过交易程序中的交易开始注解识别交易开始,当交易开始时,创立全局ID并将其发送至中央协调器,由中央协调器建立全局ID队列;
通过事务开始注解识别事务开始,事务开始时,创立事务信息并将其发送至中央协调器,其中,事务信息包括:事务ID、全局ID及事务调用状态,由中央协调器于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据相应全局ID队列中所有已完成事务ID队列生成回退指令;
根据回退指令中的事务ID,确定事务开始注解,从事务开始注解中获取回退操作的方法名称;
根据回退操作的方法名称,确定回退操作方法的地址;
根据回退操作方法的方法及地址,发起回退操作。
2.如权利要求1所述的方法,其特征在于,通过交易程序中的交易开始注解识别交易开始,包括:
通过SpringAop对交易程序中的交易开始注解进行拦截;
拦截到交易开始注解时,确定交易开始。
3.如权利要求1所述的方法,其特征在于,通过事务开始注解识别单个事务开始,包括:
通过SpringAop对事务开始注解进行拦截;
拦截到事务开始注解时,确定事务开始。
4.如权利要求1所述的方法,其特征在于,通过事务开始注解识别事务开始的同时,还从事务开始注解中获取回退操作的方法名称,根据回退操作的方法名称,确定回退操作方法的地址,将回退操作的名称及地址存储于数据库中;
接收回退指令,发起回退操作,包括:根据回退指令中的事务ID,从数据库中获取回退操作的名称及地址;根据获取的回退操作名称及地址,发起回退操作。
5.一种分布式服务器数据一致性的方法,其特征在于,包括:
接收全局ID,并建立全局ID的队列;
接收事务信息,事务信息包括事务ID、全局ID及事务调用状态;
于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据全局ID队列中所有已完成事务ID队列,生成回退指令;
发送回退指令至分布式协调器,以使分布式协调器根据回退指令中的事务ID,确定事务开始注解,从事务开始注解中获取回退操作的方法名称;
根据回退操作的方法名称,确定回退操作方法的地址;
根据回退操作方法的方法及地址,发起回退操作。
6.一种分布式协调器,其特征在于,预先在交易程序中建立交易开始注解及事务开始注解,其中,交易程序中包括多个事务,包括:
第一识别模块,用于通过交易程序中的交易开始注解识别交易开始,当交易开始时,创立全局ID并将其发送至中央协调器,由中央协调器建立全局ID队列;
第二识别模块,用于通过事务开始注解识别事务开始,事务开始时,创立事务信息并将其发送至中央协调器,其中,事务信息包括:事务ID、全局ID及事务调用状态,由中央协调器于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据相应全局ID队列中所有已完成事务ID队列生成回退指令;
回退模块,用于根据回退指令中的事务ID,确定事务开始注解,从事务开始注解中获取回退操作的方法名称;根据回退操作的方法名称,确定回退操作方法的地址;根据回退操作方法的方法及地址,发起回退操作。
7.如权利要求6所述的协调器,其特征在于,第一识别模块通过交易程序中的交易开始注解识别交易开始,包括:
通过SpringAop对交易程序中的交易开始注解进行拦截;
拦截到交易开始注解时,确定交易开始。
8.如权利要求6所述的协调器,其特征在于,第二识别模块通过事务开始注解识别单个事务开始,包括:
通过SpringAop对事务开始注解进行拦截;
拦截到事务开始注解时,确定事务开始。
9.如权利要求6所述的协调器,其特征在于,第二识别模块通过事务开始注解识别事务开始的同时,还从事务开始注解中获取回退操作的方法名称,根据回退操作的方法名称,确定回退操作方法的地址,将回退操作的名称及地址存储于数据库中;
回退模块接收回退指令,发起回退操作,包括:根据回退指令中的事务ID,从数据库中获取回退操作的名称及地址;根据获取的回退操作名称及地址,发起回退操作。
10.一种中央协调器,其特征在于,包括:
第一接收模块,用于接收全局ID,并建立全局ID的队列;
第二接收模块,用于接收事务信息,事务信息包括事务ID、全局ID及事务调用状态;
处理模块,用于于事务调用状态为结束时记录事务ID至相应全局ID队列中,若事务调用状态为失败时,根据全局ID队列中所有已完成事务ID队列,生成回退指令;
发送回退指令至分布式协调器,以使分布式协调器根据回退指令中的事务ID,确定事务开始注解,从事务开始注解中获取回退操作的方法名称;根据回退操作的方法名称,确定回退操作方法的地址;根据回退操作方法的方法及地址,发起回退操作。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述的分布式服务器数据一致性的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行计算机程序,所述计算机程序被处理器执行时实现权利要求1至4任一项所述的分布式服务器数据一致性的方法。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求5所述的分布式服务器数据一致性的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行计算机程序,所述计算机程序被处理器执行时实现权利要求5所述的分布式服务器数据一致性的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911415793.2A CN111143041B (zh) | 2019-12-31 | 2019-12-31 | 一种数据一致性方法、分布式协调器及中央协调器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911415793.2A CN111143041B (zh) | 2019-12-31 | 2019-12-31 | 一种数据一致性方法、分布式协调器及中央协调器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143041A CN111143041A (zh) | 2020-05-12 |
CN111143041B true CN111143041B (zh) | 2023-12-22 |
Family
ID=70522737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911415793.2A Active CN111143041B (zh) | 2019-12-31 | 2019-12-31 | 一种数据一致性方法、分布式协调器及中央协调器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143041B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813791B (zh) * | 2020-06-17 | 2024-05-21 | 上海万物新生环保科技集团有限公司 | 一种分布式补偿事务的方法及设备 |
CN113191767B (zh) * | 2021-05-10 | 2024-08-20 | 京东科技控股股份有限公司 | 分布式系统的数据处理方法及相关设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426552A (zh) * | 2017-09-05 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 事务处理方法、装置和系统以及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10942823B2 (en) * | 2018-01-29 | 2021-03-09 | Guy Pardon | Transaction processing system, recovery subsystem and method for operating a recovery subsystem |
-
2019
- 2019-12-31 CN CN201911415793.2A patent/CN111143041B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426552A (zh) * | 2017-09-05 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 事务处理方法、装置和系统以及电子设备 |
WO2019047737A1 (zh) * | 2017-09-05 | 2019-03-14 | 阿里巴巴集团控股有限公司 | 事务处理方法、装置和系统以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111143041A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102072726B1 (ko) | 데이터베이스로의 미들-티어 트랜잭션 로그들의 인라인 위임을 지원하는 시스템들 및 방법들 | |
TWI706278B (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
CN111045794B (zh) | 分布式事务处理方法、装置、系统、计算机设备及存储介质 | |
KR101993432B1 (ko) | 2-단계 커미트 호출들의 엄격한 순서화에 근거하여 트랜잭션 복구를 지원하는 시스템들 및 방법들 | |
CN111833034B (zh) | 一种批量扣款方法、支付服务器、计算机设备及存储介质 | |
CN107437222B (zh) | 基于银行柜面前端的联机业务数据的处理方法及系统 | |
CN107436799B (zh) | 分布式事务一致性实现方法及装置 | |
CN110888718A (zh) | 分布式事务的实现方法及装置 | |
CN112995262B (zh) | 分布式事务提交方法、系统及计算设备 | |
CN111143041B (zh) | 一种数据一致性方法、分布式协调器及中央协调器 | |
CN110163572B (zh) | 一种链码函数处理方法、装置及设备 | |
CN112925614B (zh) | 一种分布式事务处理方法、装置、介质和设备 | |
US10768974B2 (en) | Specifying an order of a plurality of resources in a transaction according to distance | |
JP2005538460A (ja) | データ処理システム及び方法(非同種プロセスを統合するように適合されたデータ処理システム) | |
CN107038025B (zh) | 基于soa架构的系统调用方法及装置 | |
CN112596801A (zh) | 事务处理方法、装置、设备、存储介质、数据库 | |
CN111127088A (zh) | 实现最终一致性的方法、装置、计算机设备及存储介质 | |
CN111625323A (zh) | 分布式任务处理方法、装置、设备及计算机可读存储介质 | |
CN113297281A (zh) | 一种账务一致性处理方法及服务器 | |
CN111192034A (zh) | 一种业务请求数据的处理方法和装置 | |
CN115563139A (zh) | 交易请求处理方法及装置 | |
CN112598520B (zh) | 交易管理的方法、装置、电子设备以及存储介质 | |
CN114968982A (zh) | 分库分表场景业务处理方法及装置 | |
CN114896258B (zh) | 事务数据的同步方法、装置、计算机设备及存储介质 | |
CN105574020B (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 |