《软件架构基础》- 分布式系统与计算

放肆的年华 提交于 2020-02-25 23:50:42

分布式系统与计算

什么是分布式系统

  • 建立在网络和分散节点上的软件系统
  • 网络和分布式的区别在于高层软件
  • 每一个节点高度自治
  • 分布式节点对用户透明,用户感知不到数据是分布的

为什么要使用分布式

  • 单机容量有限

    • 计算容量
    • 存储容量
  • 分布式模块高度自治,可以使用异构系统

  • 每个模块关注自身业务,更适合大型团队开发

  • 容错,高可用

分布式第一原则

  • 不要使用分布式系统

##分布式的类型

  • 应用的分布式
    • 系统模块的分布式 如:数据库
    • 业务模块的分布式
    • 负载均衡
  • 计算的分布式
  • 存储的分布式

Actor模型

  • 可以收发消息的对象
  • 消息通信是Actor唯一的通信手段
  • 支持极高的并行
  • 易于分布式
  • AKKa

CAP原理

  • 一致性(Consistency)

    任何一个读操作总是能读取到之前完成的写操作结果

  • 可用性(Availability)

    每一个操作总是能够在确定的时间内返回

  • 分区容忍性(Partition tolerance)

    在出现网络分区的情况下,仍然能够满足一致性和可用性

一致性的理解角度

  • 客户端:多并发访问时更新过的数据如何获取
  • 服务端:是更新如何复制分布到整个系统,以保证数据最终一致

一致性的分类

  • 强一致性

    • 要求更新过的数据能被后续的访问都能看到
  • 弱一致性

    • 能容忍后续操作访问不到更新

    • 最终一致性

      • 经过一段时间后要求能访问到更新后的数据
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!