分布式常见问题
1.分布式CAP定理
- CAP定理:对于一个分布式系统来说,不可能同时满足以下三点
- 一致性(C):分布式中所有数据备份,在同一时刻具有相同的值
- 可用性(A):保证每个请求不管成功或失败都有响应
- 分区容忍性(P):系统中任意信息的丢失或失败不会影响系统的继续运作
- 所有分布式系统只能满足两个:
- CP:当分布式系统中无副本,必然就满足C,此时CP具备,因为无副本就无法满足高可用性
- AP:与上面恰好相反,使用副本就难以满足一致性,但可以保证可用性。
- Base理论:是Bascially Available(基本可用),soft state(软状态),Eventually consistent(最终一致性)的缩写。虽然根据CAP定理我们无法做到强一致性(一般都会有副本),但每个应用都可以根据自身业务特点,采用适当方式使系统达到最终一致性。Base三元素:
- 基本可用:分布式系统在常出现不可预知的故障时,允许损失部分可用性。不等于不可用,知识可能服务慢了或者降级。
- 软状态:允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的副本之间进行数据同步的过程中存在延迟。
- 最终一致性:强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能达到一个一致的状态。
2.数据库分库分表的坑------用于扩容
- 概念:
- 分库:以为一个数据库支持的最高并发数是有限的,可以将一个数据库的数据拆分到多个库中,来增加最高并发访问数。(增加并发能力)。这里又要考虑集群了吧,怎么确定什么数据在哪里
- 分表:当一张表的数据量太