一种事务的最终一致性保障方法及系统技术方案

技术编号:19543110 阅读:36 留言:0更新日期:2018-11-24 20:30
本发明专利技术提供了一种事务的最终一致性保障方法,包括:检测目标事务所属的应用场景;当所述目标事务属于同步调用应用场景时,解析所述同步调用应用场景中的异常类型,确定与所述异常类型对应的回滚操作,保障所述目标事务的最终一致性;当所述目标事务属于异步调用应用场景时,确保所述异步调用应用场景中幂等性要求和重试机制,保障所述目标事务的最终一致性。上述的方法,分别为同步应用场景针对异常的类型设置回滚操作,为异步应用场景设置了幂等或者重试等操作来实现一致性,均不需要轮询来保证一致性。避免了在高并发场景下,过于频繁的定时轮询操作,对数据库吞吐量和性能有较高的要求,当数据库不能满足要求时,导致处理效率低下的问题。

A Method and System for Ensuring the Ultimate Consistency of Transactions

The invention provides a method for ensuring the ultimate consistency of transactions, including: detecting the application scenario belonging to the target transaction; when the target transaction belongs to the application scenario of synchronous invocation, parsing the exception type in the application scenario of synchronous invocation, determining the rollback operation corresponding to the exception type, and guaranteeing the target. When the target transaction belongs to the asynchronous invocation application scenario, the idempotency requirement and the retry mechanism in the asynchronous invocation application scenario are ensured to ensure the final consistency of the target transaction. The methods mentioned above set up rollback operations for synchronous application scenarios and idempotent or retry operations for asynchronous application scenarios to achieve consistency, without polling to ensure consistency. In high concurrency scenarios, too frequent timing polling operations are avoided, which requires high throughput and performance of the database. When the database can not meet the requirements, the processing efficiency is low.

【技术实现步骤摘要】
一种事务的最终一致性保障方法及系统
本专利技术涉及移动业务支撑
,尤其涉及一种事务的最终一致性保障方法及系统。
技术介绍
在分布式事务场景中,事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,因此,为了保证分布式事务流程的有效进行,通过获取本地消息来实现事务的最终一致性,其中,本地消息是将分布式事务拆成一系列的本地事务,通过定时轮询的方式,检查数据库中的本地消息,当发现新数据时,则通知对方。专利技术人对现有的事务的最终一致性的保障方法进行研究发现,在高并发场景下,过于频繁的定时轮询操作,对数据库吞吐量和性能有较高的要求,当数据库不能满足要求时,导致处理效率低下。
技术实现思路
有鉴于此,本专利技术提供了一种事务的最终一致性保障方法及系统,用以解决现有技术中在高并发场景下,过于频繁的定时轮询操作,对数据库吞吐量和性能有较高的要求,当数据库不能满足要求时,导致处理效率低下的问题。具体方案如下:一种事务的最终一致性保障方法,包括:检测目标事务所属的应用场景;当所述目标事务属于同步调用应用场景时,解析所述同步调用应用场景中的异常类型,确定与所述异常类型对应的回滚操作,保障所述目标事务的最终一致性;当所述目标事务属于异步调用应用场景时,确保所述异步调用应用场景中幂等性要求和重试机制,保障所述目标事务的最终一致性。上述的方法,可选的,当所述目标事务属于同步调用应用场景时,解析所述同步调用应用场景中的异常类型,确定与所述异常类型对应的回滚操作,保障所述目标事务的最终一致性包括:当所述异常类型为被调方异常时,主调方反馈回滚失败;当所述异常类型为超时异常时,进行稽核回滚;当所述异常类型为多方业务中的至少一方失败时,对所述多方业务全部进行回滚。上述的方法,可选的,还包括:将与所述异常类型对应的回滚结果,保存到对应的数据表中。上述的方法,可选的,当所述目标事务属于异步调用应用场景时,确保所述异步调用应用场景中幂等性要求和重试机制,保障所述目标事务的最终一致性包括:扫描与所述异步调用应用场景对应的各个数据表,获取所述各个数据表中的异常信息和/或异常数据节点;判断与所述述异步调用应用场景对应的幂等表中是否存在与所述异常信息和/或异常数据节点对应的数据;若否,对与所述异常信息和/或异常数据节点对应的业务进行重做。上述的方法,可选的,还包括:若是,获取所述数据,将所述数据传递给所述异步调用应用场景中的对应节点。一种事务的最终一致性保障系统,包括:检测模块,用于检测目标事务所属的应用场景;同步调用模块,用于当所述目标事务属于同步调用应用场景时,解析所述同步调用应用场景中的异常类型,确定与所述异常类型对应的回滚操作,保障所述目标事务的最终一致性;异步调用模块,用于当所述目标事务属于异步调用应用场景时,确保所述异步调用应用场景中幂等性要求和重试机制,保障所述目标事务的最终一致性。上述的系统,可选的,所述同步调用模块包括:第一异常单元,用于当所述异常类型为被调方异常时,主调方反馈回滚失败;第二异常单元,用于当所述异常类型为超时异常时,进行稽核回滚;第三异常单元,用于当所述异常类型为多方业务中的至少一方失败时,对所述多方业务全部进行回滚。上述的系统,可选的,所述同步调用模块还包括:保存单元,用于将与所述异常类型对应的回滚结果,保存到对应的数据表中。上述的系统,可选的,所述异步调用模块包括:扫描单元,用于扫描与所述异步调用应用场景对应的各个数据表,获取所述各个数据表中的异常信息和/或异常数据节点;判断单元,用于判断与所述述异步调用应用场景对应的幂等表中是否存在与所述异常信息和/或异常数据节点对应的数据;重做单元,用于若否,对与所述异常信息和/或异常数据节点对应的业务进行重做。上述的系统,可选的,还包括:传递单元,用于若是,获取所述数据,将所述数据传递给所述异步调用应用场景中的对应节点。与现有技术相比,本专利技术包括以下优点:本专利技术提供了一种事务的最终一致性保障方法,包括:检测目标事务所属的应用场景;当所述目标事务属于同步调用应用场景时,解析所述同步调用应用场景中的异常类型,确定与所述异常类型对应的回滚操作,保障所述目标事务的最终一致性,当所述目标事务属于异步调用应用场景时,确保所述异步调用应用场景中幂等性要求和重试机制,保障所述目标事务的最终一致性。上述的方法,无论是同步应用场景或者是异步应用场景,均不需要轮询来保证一致性,避免了在高并发场景下,过于频繁的定时轮询操作,对数据库吞吐量和性能有较高的要求,当数据库不能满足要求时,导致处理效率低下的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例公开的一种事务的最终一致性保障方法流程图;图2为本申请实施例公开的一种事务的最终一致性保障方法示意图;图3为本申请实施例公开的一种事务的最终一致性保障方法又一示意图;图4为本申请实施例公开的一种事务的最终一致性保障方法又一方法流程图;图5为本申请实施例公开的一种事务的最终一致性保障方法又一示意图;图6为本申请实施例公开的一种事务的最终一致性保障系统结构框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本专利技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本专利技术的精神或范围的情况下,在其它实施例中实现。因此,本专利技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。本专利技术提供了一种事务的最终一致性保障方法,所述方法应用在移动业务支撑领域,本专利技术实施例中,以分布式事务场景中为例进行说明,所述保障方法的执行流程如图1所示,包括步骤:S101、检测目标事务所属的应用场景;本专利技术实施例中,首先需要确定所述目标事务的应用场景,所述应用场景的确定可以依据所述目标事务的类型。所述应用场景包括同步调用应用场景和异步调用应用场景。S102、当所述目标事务属于同步调用应用场景时,解析所述同步调用应用场景中的异常类型,确定与所述异常类型对应的回滚操作,保障所述目标事务的最终一致性;本专利技术实施例中,当所述目标事务属于同步调用应用场景时,依据所述同步调用应用场景中出现的异常的类型,进行对应的回滚操作,依据所述回滚操作,保障所述目标事务的最终一致性。S103、当所述目标事务属于异步调用应用场景时,确保所述异步调用应用场景中幂等性要求和重试机制,保障所述目标事务的最终一致性。本专利技术实施例中,当所述目标事务属于异步调用应用场景时,所述异步调用应用场景必须满足幂等性要求和重试机制,才能保证所述目标事务的最终一致性。其中,同步调用应用场本文档来自技高网...

【技术保护点】
1.一种事务的最终一致性保障方法,其特征在于,包括:检测目标事务所属的应用场景;当所述目标事务属于同步调用应用场景时,解析所述同步调用应用场景中的异常类型,确定与所述异常类型对应的回滚操作,保障所述目标事务的最终一致性;当所述目标事务属于异步调用应用场景时,确保所述异步调用应用场景中幂等性要求和重试机制,保障所述目标事务的最终一致性。

【技术特征摘要】
1.一种事务的最终一致性保障方法,其特征在于,包括:检测目标事务所属的应用场景;当所述目标事务属于同步调用应用场景时,解析所述同步调用应用场景中的异常类型,确定与所述异常类型对应的回滚操作,保障所述目标事务的最终一致性;当所述目标事务属于异步调用应用场景时,确保所述异步调用应用场景中幂等性要求和重试机制,保障所述目标事务的最终一致性。2.根据权利要求1所述的方法,其特征在于,当所述目标事务属于同步调用应用场景时,解析所述同步调用应用场景中的异常类型,确定与所述异常类型对应的回滚操作,保障所述目标事务的最终一致性包括:当所述异常类型为被调方异常时,主调方反馈回滚失败;当所述异常类型为超时异常时,进行稽核回滚;当所述异常类型为多方业务中的至少一方失败时,对所述多方业务全部进行回滚。3.根据权利要求2所述的方法,其特征在于,还包括:将与所述异常类型对应的回滚结果,保存到对应的数据表中。4.根据权利要求1所述的方法,其特征在于,当所述目标事务属于异步调用应用场景时,确保所述异步调用应用场景中幂等性要求和重试机制,保障所述目标事务的最终一致性包括:扫描与所述异步调用应用场景对应的各个数据表,获取所述各个数据表中的异常信息和/或异常数据节点;判断与所述述异步调用应用场景对应的幂等表中是否存在与所述异常信息和/或异常数据节点对应的数据;若否,对与所述异常信息和/或异常数据节点对应的业务进行重做。5.根据权利要求4所述的方法,其特征在于,还包括:若是,获取所述数据,将所述数据传递给所述异步调用应用场景...

【专利技术属性】
技术研发人员:薛浩
申请(专利权)人:亚信科技中国有限公司
类型:发明
国别省市:北京,11

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

1