分布式环境各类问题 与 CAP/BASE

通讯异常sql

  • 单机内存延时在纳秒级(10ns)
  • 正常一次网络通讯延时在(0.1ms--1ms)   
  • 相差100倍

网络分区数据库

  • 因为网络发生异常,致使分布式系统中部分网络延时加大,最终致使仅仅有部分系节点能使用,叫作网络分区

三态网络

  • 三种状态,每次请求存在三种状态:成功、失败、超时
    • 超时的缘由:
      • 可能根本没发送到接收方
      • 接收方返回的结果没发回发送方

节点故障并发

  • 分布式系统节点出现宕机或僵死的现象

ACID事务的隔离性、一致性、原子性、持久性分布式

  • 原子性
    • 所有成功、所有失败
  • 一致性
    • 一个事务执行先后、数据必须保持先后一致的
  • 隔离性
    • 标准sql 定义了4个隔离级别
      1. 未受权读
        • 一个事务还没完成,另外一个事务能够读取其正在操做的数据
      2. 受权读
        • 只容许读取已被提交的数据
      3. 可重复读取
        • 读取值都和事务开始时刻一致,可能致使幻读
        • 幻读:不一样时刻,同一事务执行结果不一样
      4. 串行化
        • 最严格的事务隔离级别
        • 全部事务都串行执行,不能并发执行

  • 事务隔离级别越高,完整性一致性越强,同时对并发性能影响越大
  • 对于绝大多数应用程序,设置为受权读取
    • 既保证一致性完整性,兼顾并发性能

持久性性能

  • 对数据的变动是永久的

分布式事务blog

  • 也称嵌套型事务
  • 实现严格的事务,就要牺牲分布式系统可用性
  • 可用性与一致性的妥协

CAP理论进程

  • 分布式系统不能同时知足C(consitency)一致性、A(availablity)可用性、P(partition tolerance)分区容错性
  • 最多只能同时知足俩
  • 一致性
    • 数据在多个副本之间是否保持一致
    • 一个节点上数据更新后,在其余节点上能读到更新后的数据,称为一致
  • 可用性
    • 用户的操做须要在“有限的时间内”  “返回结果”(两者缺一 都不叫可用)
      • 有限时间:用户对于不一样系统的指望值是不同的
  • 分区容错性
    • 分布式系统遇到任何网络分区故障的时候,仍然能提供一致性和可用性的服务

  • 分区容错性每每是分布式系统的一个基本要求,所以,大多数分布式系统都是在一致性可用性之间作平衡

BASE 理论事务

  • BA(基本可用)、S(软状态)、E(最终一致性)
  • BASE 是对CAP 理论可用性、一致性权衡的结果,是大型互联网系统分布式实践的总结
  • 基本可用
    • 是指系统遇到不可预知故障时,容许损失部分可用性(好比双十一,部分次要功能下线)
      • 好比时间上损失(搜索结果不是0.5秒返回结果,1--2秒返回)
      • 好比双十一部分消费者被引导到降级页面
  • 软状态
    • 容许出现中间状态,容许在不一样节点之间复制数据延时
  • 最终一致性
    • 五大类变种:
      • 因果一致性
        • A更新数据后通知B,B操做要基于A更新后的值
        • 不相关的 C操做无限制
      • 读本身所写
        • 本身只能看到本身更新的最新数据
      • 会话一致性
        • 同一会话中总能读到更新后的最新值
      • 单调读一致性
        • 一个进程从系统中读取数据项某个值,该进程不能读到比这个值更旧的值
      • 单调写一致性
        • 系统保证同一进程全部写顺序执行
    • 能够将上述5项中,部分项结合起来构建最终一致性的分布式系统
      • ​​​​​​​关系型数据库,提供最终一致性典范
相关文章
相关标签/搜索