如不雅对应到交易和账务分别的项目中,流程如下:
第二阶段: 账务资本锁定成功,交易提交事务成功,然后发送confirm 给账务。 如不雅交易提交掉败,则发送cancel对资本进行释放。如不雅在confirm或者cancel出现异常情况下,同样须要对异常进行处理来包管数据一致性。
回滚机制
总结: 这种方法实现难度不算太高,比较合适传统的单体应用,在同一个办法中存在跨库操作的情况。
在分布式架构中,功能 X,须要去调和后端的 A、B 甚至更多的原子办事。那么问题来了,假如 A 和 B 个一一个调用掉败了,那可怎么办呢? 这个时刻,可以用回滚机制来包管一致性。 该机制应用在 钱包合营信贷做的结合放贷项目 中。 该项目中总共有两个原子操作,如下图所示。

两个原子操作,分别是资金归集和资金到卡。所谓资金归集,是将商户A的钱和商户B的钱归集到中心商户C。而资金到卡,是将中心商户C的钱,经由过程银行体系打入到D用户的银行卡。这两个操作要知足一致性,即资金归集成功,然后打款到用户的卡成功。或者是商户A和B的钱没变更,资金到卡掉败。 总而言之,是不许可资金逗留在中心商户C的。
针对这种情况,经由过程回滚机制,供给一个强大年夜的回滚操作来实现上述的一致性。比如资金归集成功,而资金到卡掉败,那么对归集的资金操作做回滚处理,也就是资金大年夜中心商户C分别回到商户A和B中。
总结: 这种方法缺点比较多,平日在复杂场景下是不推荐应用的,除非是异常简单的场景,异常轻易供给回滚,并且依附的办事也异常少的情况。这种实现方法会造成代码量宏大年夜,耦合性高。并且异常有局限性,因为有很多的营业是无法很简单的实现回滚的,如不雅串行的办事很多,回滚的成本实袈溱太高。
本地消息表
这种实现方法的思路,其实是源竽暌冠 ebay,后来经由过程付出宝等公司的布道,在业内广泛应用。其根本的设计思惟是将长途分布式事务拆分成一系列的本地事务。如不雅不推敲机能及设计优雅,借助关系型数据库中的表即可实现。本地消息的方法,在应用在 钱包非核心营业异步化改革项目 中。该项目当时改革的筹划如下:
- 核心营业及时写入交易表
- 非核心营业非及时异步写入交易表按照用户维度的交易萌芽表。

如图所示,是应用本地消息表保持最终一致性的应用。 具体如下:
- 营业A将本地消息和A营业数据以本地事务的方法写入DB1;
- 营业A写完本地事务后,发送消息给MQ。
- MQ推送消息给营业B,营业B履行消息,写入DB2.
- 因为MQ不克不及包管消息不丢,如不雅消息损掉了,则须要经由过程营业C,攫取DB1的消息,然后rpc发送给营业B从新履行。
当然,若何断定DB1的消息已经花费,这个可以经由过程DB2的事务履行结不雅来断定。
总结: 上诉的方法是一种异常经典的实现,根本避免了分布式事务,实现了“最终一致性”。然则,关系型数据库的吞吐量和机能方面存在瓶颈,频繁的读写消息会给数据库造成压力。所以,在真正的高并发场景下,该筹划也会有瓶颈和限制的。
补偿机制
补偿机制在分布式体系中,应用最为广泛。在钱包应用的场景比较多,比如 核心收银台和付款到卡 。 核心收银台中,当请求银行扣款,扣款成功后,自身体系挂掉落了。这个时刻就会有一个后台法度榜样,我们也称作补单法度榜样来开端处理这类流程,让本来中心断掉落的流程持续走下去。
一般成熟的体系中,对于级别较高的办事和接口,整体的可用性平日都邑很高。如不雅有些营业因为瞬时的收集故障或调用超时等问题,那么这种补偿机制其实是异常有效的。
总结
交易表是交易维度的,而为了知足用户的萌芽机能,须要备份复制雷同的按照用户维度的交易萌芽表。 大年夜营业属性上来看,交易表是核心营业,交易萌芽表长短核心营业(萌芽应用)。而实现上,交易表是核心数据库,而萌芽表则属于非核心数据库。 然则, 这两者须要知足一致性。 关于这类一致性保障,如不雅有不丢消息的消息队列,则很轻易解决。万一没有这类消息队列呢? 其实,应用本地消息表,也一样可以解决。
本文经由过程核心体系的几个具表实际项目,阐述了若何包管分布式体系的一致性。每一种筹划都有必定的特点和应用处景。 其实分布式体系的事务一致性本身是一个技巧难题,今朝没有一种很简单很完美的筹划可以或许应对所有场景。具体照样要应用者根据不合的营业场景去决定。
【编辑推荐】
- 一图秒懂中国数据库的40年江湖
- MySQL组复制技巧实现与数据库机能测试对象
- 关于数据库“状况”字段设计的思虑与实践
- 若何应用AWR申报来诊断数据库机能问题
- Oracle数据库中直方图对履行筹划的影响
推荐阅读
【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦! 买新照样买旧?似乎很多的网友都邑直不雅的说“买新不买旧”。当然,8代的“Coffee >>>详细阅读
本文标题:分布式系统一致性保障方案总结
地址:http://www.17bianji.com/lsqh/37590.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示