(一)分布式系统的经典基础理论

概要: 分布式系统设计理念 、 CAP定理 、 BASE理论

一、分布式设计理念

目标:提升性能和吞吐量,尽量保证容错性

1、中心化设计:

干活的/领导:  leader分发任务并监督“干活的”,“干活的”劳累倒了,不“医治”踢出去,任务分给其他人,Kubernetes 设计思路。

问题: 1)“领导”安危问题,热备或者冷备自动选举切换或者手动切换解决

            2)“领导”能力问题:领导10个人并不意味着可以领导100个

2、去中心化设计  

众生地位平等,由节点来自由选择中心,集群成员自发选领导,如zk

问题: 脑裂:集群由于网络的故障,被分两个单独集群各自工作冲突和错误。较自杀

3、分布式与集群的区别是什么?

分布式: 多个子业务部署不同服务器上

集群: 同一个业务部署在多个服务器上。如redis集群

二、CAP定理

不可能同时满足以下三点

一致性(Consistence) :所有节点访问同一份最新的数据副本 

可用性(Availability):每次请求都能获取到非错响应——但不保证最新数据 

分区容错性(Partition tolerance) : 故障时,仍满足一致性和可用性。网络分区时,继续服务,强一致性和可用性只能2选1

《分布式系统之CAP理论》 : http://www.cnblogs.com/hxsyl/p/4381980.html

三、BASE理论 

BASE 是 Basically Available(基本可用) 、Soft-state(软状态) 和 Eventually Consistent(最终一致性) 三缩写。基于CAP定理逐步演化而来的,大大降低对系统的要求

牺牲一致性来满足高可用,做法:1)按功能划分数据库、2)分片(如开源的Mycat、Amoeba等)。

1.基本可用:1)时间: 正常0.5秒,故障1~2秒2)功能:大促保护购物系统的稳定性,部分消费者引导到降级页面

2. 软状态 :允许系统数据有中间状态,即允许不同节点数据同步延时

你可能感兴趣的:((一)分布式系统的经典基础理论)