分布式基础理论笔记

分布式系统的特点以及问题

分布式系统的概念是,机器之间仅仅通过网络进行通信。有4个特性:

  • 分布性
  • 对等性:计算机之间没有主从之分,计算机节点之间是对等的。数据副本是在不同的节点持久化相同的数据,主节点丢失时,可以从从节点读取数据。
  • 并发性
  • 缺乏全局安全时钟:核心问题是,无法确定两个事件到达的先后顺序。
  • 故障总会发生:设计阶段考虑的bug,生产阶段一定发生;还有很多未考虑到的bug;设计阶段不能放过任何异常情况

分布式环境的问题

  • 通信异常:主要指消息丢失和消息延迟
  • 网络分区:只有部分节点之间可以通信,脑裂,出现局部小集群
  • 三态问题:指请求与响应存在3种状态,分别是
    • 成功:获取请求
    • 失败:收到失败的响应,比如处理方挂掉了
    • 超时:请求发起方无法确定是请求否被成功处理
      • 发送过程中数据丢失
      • 请求被处理,但是回发出问题

ACID到CAP

事务的4个特性

  • 原子性(Atomicity):一组操作只能全部成功或者全部不成功,保证原子性才能回滚
  • 一致性(Consistency):数据库执行事务后,需要从一个状态转换到另一个状态
  • 隔离性(Isolation):事务的执行过程不能被打断
  • 持久性(Duration):事务对数据库的影响是持久性的

数据库的4个隔离级别

  • 未授权读:最低的隔离级别,允许脏读。即事务执行时,读的一方可以看到事务的执行的中间状态。
  • 授权读:不允许出现脏读,不能读取中间状态的数据,只能读取事务执行完毕后的状态。但是,如果有多个事务并发执行,该级别会读到事务执行之间的中间态,比如C读取x,A事务更新x状态到10,B又更新x到20,则C可以读到x是10的情况,这种也是幻读
  • 可重复读:不允许幻读
  • 串行化:事务严格串行执行

CAP定理

  • 一致性(Consistency):多个副本保持一致
  • 可用性(Availability):系统在规定的时间内响应用户
  • 分区容错性(Partition tolerance):系统出现网络分区,仍然可以对外提供一致性和可用性服务,除非整个网络都故障

CAP不可能同时满足,最多只有满足两个的情况。对于分布式系统来说,必须要有分区容错性,网络故障是必然的。我们要在A和C之间寻求平衡。

BASE理论
Basically Availability(基本可用)、 Soft state(软状态)、 Eventually consistent(最终一致性)。核心思想是:即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式使得系统到达最终一致性。

基本可用:分布式系统出现部分不可预知的故障时,允许损失部分性能,比如损失部分响应时间和损失部分功能(一般非核心)。
弱状态:数据有中间状态,比如副本存在数据同步不及时
最终一致性:系统所有的副本数据,在经过一定时间同步后,最终达到相同的状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值