一、什么是分布式
权威定义:
利用物理架构形成多个自治的处理元素,不共享主内存,但是通过发送消息合作。
实际项目的演进过程
一个项目,大而全
多台机器,部署同样的应用
分布式:权限系统、员工系统、请假系统
二、分布式的作用
1、为什么需要分布式
实际工作中的痛点
工程臃肿
测试、上线繁琐
开发效率低
单体应用的问题
应用代码耦合严重,功能扩展难
新需求开发交互周期长,测试工作量大
新加入的开发同事需要很长时间才能熟悉系统
升级维护也很困难(改动任何一点地方都要升级整个系统)
系统性能提升艰难,可用性低,不稳定
2、分布式的好处
增大系统容量
加强系统可用
因为模块化,所以系统模块重用度更高
因为软件服务模块被拆分,开发和发布速度可以并行而变得更快
系统扩展性更高
团队协作流程也会得到改善
技术升级
三、分布式和单体结构的对比
四、CAP定理
1、CAP理论是什么?
C(Consistency,一致性):读操作是否能读到前一个写操作的结果
A(Availability,可用性):非故障节点应该在合理的时间内做出合理的响应
P(Partition tolerance,分区容错性):当出现网络分区现象后,系统能够继续运行
2、CAP怎么选择?
CAP定理只能满足其中的两个,不可能全都满足,应根据自己的业务的侧重点选择其中两个。
五、集群、分布式、微服务的区别
分布式:一个业务分拆多个子业务,部署在不同的服务器上
集群:同一个业务,部署在多个服务器上
集群:分散压力
微服务:分散能力
微服务:微服务是架构设计方式
分布式:分布式是系统部署方式