分布式原理和分布式事务方案

1. 分布式原理

CAP 原理

一致性(Consistency):客户端知道一系列的操作都会同时发生。
可用性(Availability):每个操作都必须以可预期的响应结束。
分区容错性(Partition tolerance):即使出现单个组件无法可用,操作依然可以完成。

在分布式系统中,CAP 原理最多能保证两个,在分布式系统中,分区容错性是一定要保证的,否则它就不是一个分布式系统,所以整个 CAP 原理其实就是围绕如何在一致性和可用性当中去做取舍。

有些时候需要保证一致性,牺牲掉可用性,让整个系统阻塞住,以达到最强的一致性后才能对外访问,这种情况称为强一致性。而有些时候为了提供吞吐,一般来说都是保证可用性,牺牲一致性,这种情况称为弱一致性。

结合 CAP 原理我们又得到另外一个 Base 原理,Base 原理是基于 CAP 原理之上总结出的保护可用性,牺牲一致性的方案。

基本可用(Basically Available)
软状态(Soft state):最常见的软状态就是处理中
最终一致性(Eventually consistent)

2. 分布式事务方案

只有两阶段提交可以保证 CAP 原理中对应的强一致性和分区容错性,其余都是保证了可用性和分区容错性,不能绝对意义上保证强一致,但是保证了最终一致性。

2.1 两阶段提交

两阶段提交主要包括两个关键字,第一阶段的 prepare 和第二阶段的 commit 和失败后的 rollback。

使用两阶段提交会锁定对应的资源到整个二阶段时间范畴,非常影响性能,所以生产中两阶段提交方案用的很少。

2.2 TCC协议

TCC 协议主要包括三个关键字,第一阶段的 try、第二阶段的 confirm 和失败后的 cancel。整个 TCC 协议就是仿照了两阶段提交,与两阶段提交不同的是,在任何一个 try、confirm、cancel 当中,都可以执行一个完整的本地事务,因此整个 TCC 协议相较于两阶段提交无需锁定对应的资源到整个二阶段时间范畴,而仅仅需要锁定资源在对应的 try、confirm、cancel 的独立事务当中,所以 TCC 协议被广泛的用于应用层分布式事务实现方案,用来取代两阶段提交方案。

2.3 异步确保型

2.4 事务型消息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值