美文网首页
分布式知识梳理

分布式知识梳理

作者: JimmyPan | 来源:发表于2021-01-31 14:23 被阅读0次

    什么是分布式系统?

    多台协同计算机,用于大型网站的存储、MapReduce、对等共享和
    许多关键的基础设施都是分布式的

    为什么要建立分布式系统?

    1.通过并行增加容量 (增加性能,例如更快的响应速度,更大的存储空间)
    2.通过复制容忍故障 (增加容错)
    3.将计算物理上靠近外部实体
    4.通过隔离实现安全 (一致性)

    分布式难点

    想要高性能,就需要让数据分片存在多个服务器上,
    更多的服务器,意味着必须要有容错,因为出错成了大概率事件
    很好的容错就需要主从复制,将数据复制多份来做容错
    数据复制多份就带来了一致性的问题。
    做更多的通信来保证一致性,又会产生最初的性能问题

    分布式问题主要围绕着如何解决以下几个问题的平衡

    1. 性能提升
      可拓展的吞吐量,意思就是有N台机器就能带来,N倍的性能提升
    2. 容错
      1000台的机器意味着总是会有机器挂掉,需要一个办法能有效的解决-复制数据
    3. 一致性
      通用基础架构需要定义明确的行为,一致性和性能跟容错总会有冲突,更多的分片意味着一致性问题的产生,更强的一致性意味着更多的通信

    1.解决容错的办法-Primary/Backup Replication(主从复制)

    主从复制能解决什么样的问题? “停机问题” 例如一台机器因为各种原因挂掉

    主从复制有两种方法
    1.状态转移

    主备份执行服务,主备份将新的状态发送给子节点 ,但状态可能很大,无法通过网络传输

    2.状态机复制

    客户端发送操作给主节点,主节点按序号将操作排序,并且发送备份
    所有从节点按顺序执行所有的操作,如果所有节点有相同的开始状态,相同的操作,相同的顺序,都有着不可改变的特性,那么最终他们的状态是一样的
    发送操作往往需要的发送的数据比较小,不会造成网络拥堵,但是一般来说更难维护正确的结果

    主从复制需要解决的问题

    1.需要复制什么状态?
    2.主节点需要等待子节点备份完成么?
    3.什么时候切换的子节点?
    4.切换时异常可见么
    5.如何加速替换备份过程?

    在哪个层级做状态同步?

    应用层级? 操作系统层?
    gfs是这样做的:

    相关文章

      网友评论

          本文标题:分布式知识梳理

          本文链接:https://www.haomeiwen.com/subject/elccuktx.html