电子说
分布式系统中,这三个特性只能满足其中两个。
对于二选一模型
一致性强,但是伸缩性差
关于二阶段提交协议和TCC
分成提交请求阶段(投票阶段)和提交执行阶段(完成阶段)。
第一个阶段,每个参与者投票表决事务是放弃还是提交
第二个阶段,事务的每个参与者都执行最终统一的决定
Tty(预留)、Confirm(确认),Cancel(撤销)
核心思想是针对每一个操作都要注册一个与基对应的确认操作和补偿操作(撤销操作)
一致性弱,伸缩性强
基本可用(Basic Availability):分布式系统出现故障时,允许损失部分可用性,保证核心可用。
软状态(Soft-state):允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有3个副本,允许不同节点间副本同步的延时就是软状态的体现。
最终一致性((Eventual Consistency):指所有副本经过一定时间后,最终能达到一致的状态
ACID:大家在买同一本书的过程中,每个用户的购买请求都把库存锁住,等减完库存,把锁释放,后续的人才能进行购买。于是我们同是时间不可能有多个用户下单,订单流程要有排队的情况,这样就不能做出性能比较高的系统来
BASE:大家可以同时下单,这个时间不需要真正的去分配库存,然后系统异步地处理订单,而且是批量的处理。因为下单的时候没有扣减库存,所以有可能会有超卖的情况。而后台的系统在处理订单时,发现库没有了,才会告诉用户你没有购买成功。
BASE和ACID代表两种截然相反的设计理念,ACID注重一致性,是传统关系型数据库(MySQL)的设计思路,BASE关注高可用,大多数分布式事务适合BASE.
编辑:hfy
全部0条评论
快来发表一下你的评论吧 !