面试题之分布式存储

本文介绍了CAP理论,探讨了一致性、可用性和分区容错性的权衡,并详细讲解了分布式事务的基本概念及其属性AICD。同时,文章还列举了几种常见的分布式事务应用场景并提出了两种解决方案:两阶段提交协议及消息中间件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TODO
https://baijiahao.baidu.com/s?id=1595258823905766203&wfr=spider&for=pc

1.CAP理论
CAP理论: 在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼得
2。事务属性AICD
原子性(Atomicity):整体不可分割性,要么全做要不全不做;
一致性(Consistency) :事务执行前、后数据库状态均一致;
隔离性(Isolation) :在事务未提交前,它操作的数据,对其它用户不可见(从其他session读取的数据还是commit之前的数据状态);
持久性(Durability):一旦事务成功,将进行永久的变更,记录与redo日志;

分布式事务
指事务的每个操作步骤都位于不同的节点上,需要保证事务的 AICD 特性。
1. 产生原因
数据库分库分表;
SOA 架构,比如一个电商网站将订单业务和库存业务分离出来放到不同的节点上。
2. 应用场景
下单:减少库存同时更新订单状态。库存和订单不在不同一个数据库,因此涉及分布式事务。
支付:买家账户扣款同时卖家账户入账。买家和卖家账户信息不在同一个数据库,因此涉及分布式事务。

  1. 解决方案
    3.1 两阶段提交协议
    两阶段提交协议可以很好得解决分布式事务问题,它可以使用 XA 来实现,XA 它包含两个部分:事务管理器和本地资源管理器。其中本地资源管理器往往由数据库实现,比如 Oracle、DB2 这些商业数据库都实现了 XA 接口,而事务管理器作为全局的协调者,负责各个本地资源的提交和回滚。
    3.2 消息中间件
    消息中间件也可称作消息系统 (MQ),它本质上是一个暂存转发消息的一个中间件。在分布式应用当中,我们可以把一个业务操作转换成一个消息,比如支付宝的余额转如余额宝操作,支付宝系统执行减少余额操作之后向消息系统发一个消息,余额宝系统订阅这条消息然后进行增加账户金额操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值