1、什么是分布式?

  • 权威定义
  • 利用物理架构形成多个自治的处理元素,不共享主内存,但是通过发送信息合作。
  • 实际项目的演进过程

    • 一个项目,大而全
    • 多台机器,部署同样的应用
    • 分布式:权限系统、员工系统、请假系统

      2、分布式的作用

  • 为什么需要分布式?

    • 实际工作中的痛点
      • 工程臃肿
      • 测试、上线繁琐
      • 开发效率低
    • 单体应用的问题
      • 应用代码耦合严重,功能扩展难
      • 新需求开发交互周期长,测试工作量大
      • 新加入的开发人员需要很长时间才能熟悉系统
      • 升级维护也很困难(改动任何一点地方都要升级整个系统)
      • 系统性能升级艰难,可用性低,不稳定
  • 分布式的好处
    • 增大了系统的容量
    • 加强系统的可用性
    • 因为模块化,所以系统重用度更高
    • 因为软件服务模块被拆分,开发和发布速度可以并行而变得很快
    • 系统扩展性更高
    • 团队协作流程也会得到改善、
    • 技术升级

      3、分布式与单体结构的对比

      | | 传统单体架构 | 分布式架构 | | —- | —- | —- | | 新人的学习成本 | 业务逻辑成本高 | 架构逻辑成本高 | | 部署、运维 | 容易 | 发布频繁,发布顺序复杂、运维难 | | 隔离性 | 一损俱损,殃及池鱼 | 故障影响范围小 | | 架构设计 | 难度低 | 难度指数级上升 | | 系统性能 | 响应块、吞吐量小 | 响应慢、吞吐量大 | | 测试成本 | 低 | 很高 | | 技术多样性 | 技术单一且封闭 | 技术多样且开放 | | 系统扩展性 | 扩展性差 | 扩展性很好 | | 系统管理成本 | 成本低 | 成本高 |

4、CAP定理

CAP的重要性

  • CAP只能同时满足两个,三者不可兼得

    CAP理论是什么?

    分区容错 p (Partition tolerance,分区容错性):当出现网络分区现象后,系统能够继续运行

    一致性 c (Consistency,一致性 ):读操作是否能读到前一个写操作的结果

    可用性 a (Availability,可用性):非故障节点应该在合理的时间内做出合理的响应(不是错误或超时的响应),但是可能不是最新的shu’ju

    CAP怎么选择?

  • CP或者AP

  • 在什么场合,可用性高于一致性? 网页发布
  • 在支付的场合下,一致性要高于可用性
  • 适合的才是最好的。

    5、集群、分布式、微服务的区别

  • 集群和分布式的区别

    • 分布式:一个业务分拆多个子业务,部署在不同的服务器上。机器与机器之间必须要有通信,它们相互协调工作。
    • 集群:同一个业务,部署在多个服务器上。一台机器可以完成所有的事情(负载均衡)
  • 集群和微服务的区别
    • 集群:分散压力,通过复制机器的方式分散
    • 微服务:分散能力,
  • 微服务和分布式区别
    • 微服务:是架构设计方式,从逻辑的角度
    • 分布式:是系统部署方式,是物理的角度
    • 分布式是部署之后,微服务是在此之前的一个逻辑上的架构。在去做架构设计的时候,会先去做逻辑架构,再去做物理架构
    • 在当前的生产环境下,微服务肯定是通过分布式去部署的,