- [分布式与微服务的区别](#_13)
+ [什么是CAP?为什么不能三者同时拥有](#CAP_32)
+ - [分区容错性](#_40)
- [一致性](#_44)
- [可用性](#_50)
+ [Base理论了解吗](#Base_56)
+ - [基本可用](#_59)
- [软状态](#_69)
- [最终一致性](#_73)
+ [什么是分布式事务](#_78)
+ [分布式事务有哪些常见的实现方案?](#_83)
+ - [2PC(Two Phase Commit)](#2PCTwo_Phase_Commit_85)
- [3PC(Three Phase Commit)](#3PCThree_Phase_Commit_118)
- [TCC(Try Commit Cancel)](#TCCTry_Commit_Cancel_122)
- [2PC、3PC、TCC区别](#2PC3PCTCC_138)
- [2PC存在问题](#2PC_144)
- [TCC存在问题](#TCC_147)
- [TCC的优点](#TCC_152)
- [对比2PC,3PC有什么优点](#2PC3PC_158)
+ [有哪些分布式锁的实现方案?](#_164)
+ - [一、 分布式锁场景](#__165)
- [二、分布式锁特点](#_168)
- [基于缓存实现分布式锁,以Redis为例](#Redis_177)
+ [感谢阅读](#_252)
分布式系统面试全集通第一篇
什么是分布式?和微服务的区别
什么是分布式
- 一个系统各组件分别部署在不同服务器。彼此通过网络通信和协调的系统。
- 也可以指多个不同组件分布在网络上互相协作,比如说电商网站
- 也可以一个组件的多个副本组成集群,互相协作如同一个组件,比如数据存储服务中为了数据不丢失而采取的多个服务备份冗余,当数据修改时也需要通信来复制数据
- 分布式最早出现的目地首先是解决单点问题,避免单点故障,然后解决了性能问题
分布式与微服务的区别
分布式和微服的架构很相似,只是部署的方式不一样而已。
- 分布式服务架构与微服务架构概念的区别与联系:
- 分布式:分散压力。
不同模块部署在不同服务器上;
作用:分布式解决网站高并发带来问题;
集群:相同的服务;
多台服务器部署相同应用构成一个集群;
作用:通过负载均衡设备共同对外提供服务;
业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力;
通过服务的组合和编排来实现上层的业务流程;
作用:简化维护,降低整体风险,伸缩灵活; - 微服务:分散能力。
微服务[找到服务/微服务网关open API];
架构设计概念:各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合),其它特性(单一职责,边界,异步通信,独立部署)
是分布式概念更加严格的执行;
SOA到微服务架构的演进过程;
作用:各服务可独立应用,组合服务也可系统应用(巨石应用[monolith]的简化实现策略-平台思想).
- 分布式:分散压力。