一文读懂分布式事务原理

上一篇文章《3分钟读懂分布式CAP理论》中,我们讲到了CAP理论的特点,三者中只能存两。而基于分布式系统的特点,分区容错性是必要的选择。所以我们只能在CP与AP两者之间做权衡。而BASE理论在此之上进行了扩展,放宽了强一致性的保证,通过最终一致性来尽可能提高服务的可用性。

BASE理论

Base理论组成

1.Basically Available:(基本可用)

2.Soft state(软状态)

3.Eventually consistent(最终一致性)

Base理论由这3个特性组成,什么意思呢,别急,来让我们看一则故事吧。

新龟兔赛跑

动物森林新一年度的赛跑大赛开始了, 与 再次报名了比赛,熊二与鸽子每人负责一只,进行实时播报。这时鸽子不愧它的名字,它鸽了。播报员少了一个,比赛要不要继续,那必须的呀(这就是基本可用,碰到故障时,允许损失部分可用功能,保证核心功能可用)。

与 再次跑开了差距,熊二只有一只熊,他先采访完兔子,才能掉过头采访乌龟,整合完两人的状况后,再统一向观众播报。这就导致他播报的不是最新的状况,他在镜头前说兔子已经跑到了操场附近,实际上兔子又在哪睡着了。(这就是软状态,允许系统中存在中间状态,这个状态不影响系统可用性

经过一场激烈的角逐,最终乌龟还是战胜了兔子,熊二也终于完成播报,把最终的结果呈现给了观众。(这就是最终一致性,经过一段时间后,所有节点数据都将会达到一致

说了上面的理论,让我们来看看对于保证CP与AP都有哪些实现方式吧。

基于 XA 协议的两阶段提交

为了保持CP, 基于XA协议两阶段提交的分布式事务被提了出来。原理很简单,我专门独立出来一个协调者,它就对事务进行统一管理,其他啥事都丢给参与者去做。大家都知道《红楼梦》里面,秦可卿死后,王熙凤协理宁国府这件事吧。王熙凤就是这个协调者,她安排的吹号子的、撒纸钱的、哭丧的都是参与者。

阶段一:王熙凤首先问这几个参与者,你们都知道要干啥了吗?能开始干了吗?参与者都回答了yes,才能下一步,只要有一个人回答No,就停止下一步。

阶段二:王熙凤给这些撒纸钱,哭丧、吹喇叭的发出具体指令,动起来。这些下人(参与者),把执行的结果同步给她。如果发现有人执行出错了,她直接叫所有人停下手中所有动作,回宁国府重新开始(回滚)。

这个二阶段提交的缺点也很明显,阶段一完成了,王熙凤有事情走开了(协调者宕机),作为下人就只能一直在边上等她回来,执行阶段二,不敢离开也不知道什么时候能离开(阻塞住了)。

二阶段提交

三阶段提交协议

我们充满的王熙凤肯定想到了上面的问题,所以她想出了更好的解决方案——三阶段提交。

第一阶段:跟上面一模一样,也是王熙凤大姐询问下人们能干活了吗

第二阶段:王熙凤大姐发出执行让下人们动起来

第三阶段:下人们如果发现联系不上王熙凤,就停止手中的活回去宁国府(回滚)。王熙凤如果发现其中一个下人联系不上了,就给所有人发通知,回宁国府重新从长计议(回滚)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分布式数据库原理是指将数据分散存储在不同的物理节点上,通过网络进行通信和数据同步的数据库系统。它可以提高数据库的可扩展性、容错性和性能。 分布式数据库的设计思想是将数据划分为多个分片,每个分片存储在不同的节点上。通过数据划分,可以将数据存储在离用户更近的节点上,提高数据的访问速度。同时,分布式数据库可以通过数据复制和数据分发来提供容错性。数据复制可以将数据备份到多个节点上,当某个节点发生故障时,系统可以自动切换到其他节点上继续提供服务。数据分发可以将请求分发到不同的节点进行处理,提高系统的并发处理能力。 PostgreSQL是一种开源的关系型数据库管理系统,具备分布式架构。PostgreSQL的分布式架构包括一个主节点和多个从节点。主节点负责接收用户的请求,并将数据同步到从节点上。从节点可以进行操作,提高系统的并发处理能力。如果主节点发生故障,从节点可以自动切换为主节点,保证系统的可用性。 PostgreSQL的分布式架构基于流复制技术。主节点将产生的日志记录(WAL日志)通过流复制传输到从节点,从节点会将这些日志记录应用到自己的数据库中。这样可以确保主节点和从节点之间的数据一致。同时,PostgreSQL还支持逻辑复制和扩展查询,可以根据实际需求对数据进行同步和查询的优化。 总之,分布式数据库原理是通过数据的划分、复制和分发,提高数据库的可扩展性、容错性和性能。PostgreSQL的分布式架构基于流复制技术,通过多个节点的协作来提供可靠的数据存储和高效的数据访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值