一种确保分布式事务最终数据一致性的方法、装置及介质制造方法及图纸

技术编号:23212524 阅读:20 留言:0更新日期:2020-01-31 21:46
本发明专利技术公开了一种确保分布式事务最终数据一致性的方法、装置及介质,所述方法包括获取业务请求,获取所述业务请求关联的各个服务构成的服务集,所述服务器集中至少包括两个服务;获取每个服务与所述业务请求相关的参数以得到所述服务对应的参数子集,基于所述服务集中各个服务所对应的参数子集得到所述服务集对应的参数集;根据所述参数集生成幂等任务,所述幂等任务用于对所述参数集中的各个参数进行幂等操作;执行所述幂等任务,返回所述幂等任务的执行结果。本发明专利技术显著减少达到最终数据一致性状态所需的时间,在确保高成功率执行分布式事务的同时降低了时滞。

A method, device and medium to ensure the final data consistency of distributed transaction

【技术实现步骤摘要】
一种确保分布式事务最终数据一致性的方法、装置及介质
本专利技术涉及分布式事务领域,尤其涉及一种确保分布式事务最终数据一致性的方法、装置及介质。
技术介绍
随着业务复杂度的提升,越来越多的业务需要依赖于分布式系统中不同节点的交互实现,不同的节点可以提供不同的服务。在分布式系统中,各个节点之间在物理上相互独立,通过网络进行沟通和协调。但是,相互独立的节点之间无法准确地知道其他节点的事务执行情况,因此难以保证各个节点之间的最终数据一致性,所述最终数据一致性意指随着时间的迁移,不同节点上的相对应数据总是在向趋同的方向变化,从而达到最终一致的状态。现有技术中保证各个节点之间的最终数据一致性的方案主要有:(1)基于二阶段提交协议确保最终数据一致性。二阶段提交协议可以概括为:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。二阶段是指:第一阶段为请求阶段(表决阶段),第二阶段为提交阶段(执行阶段)。这种协议对参与业务的各个节点的要求十分严格,容错率低,成功率也低。(2)基于对账确保最终数据一致性。受限于对账频率的影响,实现最终数据一致性的周期较长,从而降低用户体验。
技术实现思路
为了解决现有技术中无法提供低时滞,高成功率的确保分布式事务最终数据一致性的方案的技术问题,本专利技术实施例提供一种确保分布式事务最终数据一致性的方法、装置及介质。一方面,本专利技术提供了一种确保分布式事务最终数据一致性的方法,所述方法包括:获取业务请求,获取所述业务请求关联的各个服务构成的服务集,所述服务器集中至少包括两个服务;获取每个服务与所述业务请求相关的参数以得到所述服务对应的参数子集,基于所述服务集中各个服务所对应的参数子集得到所述服务集对应的参数集;根据所述参数集生成幂等任务,所述幂等任务用于对所述参数集中的各个参数进行幂等操作;生成用于处理所述业务请求的分布式事务,在所述分布式事务中执行所述幂等任务,返回所述幂等任务的执行结果。另一方面,本专利技术提供一种确保分布式事务最终数据一致性的装置,所述装置包括:服务集获取模块,用于获取业务请求,获取所述业务请求关联的各个服务构成的服务集,所述服务器集中至少包括两个服务;参数集获取模块,用于获取每个服务与所述业务请求相关的参数以得到所述服务对应的参数子集,基于所述服务集中各个服务所对应的参数子集得到所述服务集对应的参数集;幂等任务生成模块,用于根据所述参数集生成幂等任务,所述幂等任务用于对所述参数集中的各个参数进行幂等操作;幂等任务执行模块,用于生成用于处理所述业务请求的分布式事务,在所述分布式事务中执行所述幂等任务,返回所述幂等任务的执行结果。另一方面,本专利技术提供了一种确保分布式事务最终数据一致性的设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现一种确保分布式事务最终数据一致性的方法。另一方面,本专利技术提供了一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行一种确保分布式事务最终数据一致性的方法。本专利技术提供了一种确保分布式事务最终数据一致性的方法、装置及介质。本专利技术通过获取实施分布式事务所需的各种参数,并基于所述参数生成并执行幂等任务,使得在幂等任务执行完毕后,参与所述分布式事务的各项相关数据均具备最终数据一致性,而不再需要进行对账处理,从而显著减少达到最终数据一致性状态所需的时间,在确保高成功率执行分布式事务的同时降低了时滞,从而显著提升用户的粘度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图1是本专利技术提供的一种确保分布式事务最终数据一致性的方法的实施环境示意图;图2是本专利技术提供的区块链系统的一个可选的结构示意图;图3是本专利技术提供的区块结构(BlockStructure)一个可选的示意图;图4是本专利技术提供的一种确保分布式事务最终数据一致性的方法的流程图;图5是本专利技术提供的生成用于处理所述业务请求的分布式事务,在所述分布式事务中执行所述幂等任务流程图;图6是本专利技术提供的按照第一执行策略在所述分布式事务中执行所述幂等任务流程图;图7是本专利技术提供的根据分布式事务的状态继续执行所述幂等任务流程图;图8是本专利技术提供的按照第二执行策略在所述分布式事务中执行所述幂等任务流程图;图9是本专利技术提供的根据分布式事务的状态继续执行所述幂等任务流程图;图10是本专利技术提供的按照第二执行策略在所述分布式事务中执行所述幂等任务流程图;图11是本专利技术提供的一种确保分布式事务最终数据一致性的方法的逻辑示意图;图12是本专利技术提供的一种确保分布式事务最终数据一致性的装置框图;图13是本专利技术提供的一种用于实现本专利技术实施例所提供的方法的设备的硬件结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。为了使本专利技术实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本专利技术实施例,并不用于限定本专利技术实施例。以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。为了便于理解本专利技术实施例所述的技术方案及其产生的技术效果,本专利技术实施例首先对于相关专业名词进行解释:最终数据一致性:本文档来自技高网...

【技术保护点】
1.一种确保分布式事务最终数据一致性的方法,其特征在于,所述方法包括:/n获取业务请求,获取所述业务请求关联的各个服务构成的服务集,所述服务器集中至少包括两个服务;/n获取每个服务与所述业务请求相关的参数以得到所述服务对应的参数子集,基于所述服务集中各个服务所对应的参数子集得到所述服务集对应的参数集;/n根据所述参数集生成幂等任务,所述幂等任务用于对所述参数集中的各个参数进行幂等操作;/n生成用于处理所述业务请求的分布式事务,在所述分布式事务中执行所述幂等任务,返回所述幂等任务的执行结果。/n

【技术特征摘要】
1.一种确保分布式事务最终数据一致性的方法,其特征在于,所述方法包括:
获取业务请求,获取所述业务请求关联的各个服务构成的服务集,所述服务器集中至少包括两个服务;
获取每个服务与所述业务请求相关的参数以得到所述服务对应的参数子集,基于所述服务集中各个服务所对应的参数子集得到所述服务集对应的参数集;
根据所述参数集生成幂等任务,所述幂等任务用于对所述参数集中的各个参数进行幂等操作;
生成用于处理所述业务请求的分布式事务,在所述分布式事务中执行所述幂等任务,返回所述幂等任务的执行结果。


2.根据权利要求1所述的方法,其特征在于,所述在所述分布式事务中执行所述幂等任务,包括:
判断所述幂等任务中是否存在无限使用参数;
若不存在无限使用参数,则按照第一执行策略在所述分布式事务中执行所述幂等任务;
若存在无限使用参数,则按照第二执行策略在所述分布式事务中执行所述幂等任务。


3.根据权利要求2所述的方法,其特征在于,所述按照第一执行策略在所述分布式事务中执行所述幂等任务,包括:
由事务管理进程标记所述分布式事务的状态为执行状态,所述分布式事务由所述事务管理进程创建;
由事务管理进程开始执行所述分布式事务中以触发执行幂等任务,预扣所述幂等任务中的各个参数,根据预扣结果修改分布式事务的状态;
根据分布式事务的状态继续执行所述幂等任务,当所述分布式事务状态被修改为结束状态后,返回幂等任务的执行结果。


4.根据权利要求3所述的方法,其特征在于,所述所述根据分布式事务的状态继续执行所述幂等任务,包括:
若所述分布式事务的状态为正常执行状态,则循环对所述幂等任务中的各个参数进行幂等消费,直至各个参数均被消费成功,将所述分布式任务的状态修改为结束状态;
若所述分布式事务的状态为非正常执行状态,则循环对所述幂等任务中的各个参数进行幂等释放,直至各个参数均被释放,将所述分布式任务的状态修改为结束状态。


5.根据权利要求2所述的方法,其特征在于,所述按照第二执行策略在所述分布式事务中执行所述幂等任务,包括:
由事务管理进程标记所述分布式事务的状态为执行状态,所述分布式事务由所述事务管理进程创建;
由事务管理进程开始执行所述分布式事务以触发执行所述幂等任务,预扣所述幂等任务中的各个有限使用参数,根据预扣结果修改分布式事务的状态;
根据分布式事务的状态继续执行所述幂等任务,当所述分布式事务状态被修改为结束状态后,返回幂等任务的执行结果。


6.根据权利要求5所述的方法...

【专利技术属性】
技术研发人员:卓达城
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1