zoukankan      html  css  js  c++  java
  • 分布式

    一、什么是分布式

    权威定义:
      利用物理架构形成多个自治的处理元素,不共享主内存,但是通过发送消息合作。
    实际项目的演进过程
      一个项目,大而全
      多台机器,部署同样的应用
      分布式:权限系统、员工系统、请假系统

    二、分布式的作用

    1、为什么需要分布式

    实际工作中的痛点
      工程臃肿
      测试、上线繁琐
      开发效率低
    单体应用的问题
      应用代码耦合严重,功能扩展难
      新需求开发交互周期长,测试工作量大
      新加入的开发同事需要很长时间才能熟悉系统
      升级维护也很困难(改动任何一点地方都要升级整个系统)
      系统性能提升艰难,可用性低,不稳定

    2、分布式的好处

    增大系统容量
    加强系统可用
    因为模块化,所以系统模块重用度更高
    因为软件服务模块被拆分,开发和发布速度可以并行而变得更快
    系统扩展性更高
    团队协作流程也会得到改善
    技术升级

    三、分布式和单体结构的对比

    四、CAP定理

    1、CAP理论是什么?

    C(Consistency,一致性):读操作是否能读到前一个写操作的结果
    A(Availability,可用性):非故障节点应该在合理的时间内做出合理的响应
    P(Partition tolerance,分区容错性):当出现网络分区现象后,系统能够继续运行

    2、CAP怎么选择?

    CAP定理只能满足其中的两个,不可能全都满足,应根据自己的业务的侧重点选择其中两个。

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

    分布式:一个业务分拆多个子业务,部署在不同的服务器上
    集群:同一个业务,部署在多个服务器上

    集群:分散压力
    微服务:分散能力

    微服务:微服务是架构设计方式
    分布式:分布式是系统部署方式

  • 相关阅读:
    ZR#954 分组
    Hdu5178
    最大熵模型
    Mysql学习
    稀疏编码(Sparse Coding)的前世今生(一) 转自http://blog.csdn.net/marvin521/article/details/8980853
    机器学习中的相似性度量
    ORACLE的字符串操作函数
    spark shuffle
    sprak 环境搭建的坑
    python 安装cx_Oracle模块, MySQLdb模块, Tornado
  • 原文地址:https://www.cnblogs.com/michealyang/p/14143662.html
Copyright © 2011-2022 走看看