分布式第一讲

分布式系统的特点

 

CAP代表什么含义CAP理论可以表述为,一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容忍性(PartitionTolerance)...

 

一致性是指“所有节点同时看到相同的数据”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,等同于所有节点拥有数据的最新版本

拉勾教育版权所有:https://kaiwu.lagou.com/course/courseInfo.htm?courseId=69

 

可用性是指“任何时候,读写都是成功的”,即服务一直可用,而且是正常响应时间。我们平时会看到一些IT公司的对外宣传,比如系统稳定性已经做到3个9、4个9,即99.9%、99.99%,这里...

的N个9就是对可用性的一个描述,叫做SLA,即服务水平协议。比如我们说月度99.95%的SLA,则意味着每个月服务出现故障的时间只能占总时间的0.05%,如果这个月是30天,那么...

就是 21.6 分钟。

分区容忍性具体是指“当部分节点出现消息丢失或者分区故障的时候,分布式系统仍然能够继续运行”,即系统容忍网络出现分区,并且在遇到某节点或网络分区之间网络不可达的情况下,仍然能够对外提供满足一致性和可用性...

的服务。

在分布式系统中,由于系统的各层拆分,P是确定的,CAP的应用模型就是CP架构和AP架构。分布式系统所关注的,就是在PartitionTolerance的前提下,如何实现更好的A,和

和更稳定的 C。

CP 和 AP 架构的取舍

业务上对一致性的要求会直接反映在系统设计中,典型的就是 CP 和 AP 结构。

CP 架构:对于 CP 来说,放弃可用性,追求一致性和分区容错性。

我们熟悉的 ZooKeeper,就是采用了 CP 一致性,ZooKeeper 是一个分布式的服务框架,主要用来

解决分布式集群中应用系统的协调和一致性问题。其核心算法是 Zab,所有设计都是为了一致性。在

CAP 模型中,ZooKeeper 是 CP,这意味着面对网络分区时,为了保持一致性,它是不可用的。关于

Zab 协议,将会在后面的 ZooKeeper 课时中介绍。

AP 架构:对于 AP 来说,放弃强一致性,追求分区容错性和可用性,这是很多分布式系统设计

时的选择,后面的 Base 也是根据 AP 来扩展的。

和 ZooKeeper 相对的是 Eureka,Eureka 是 Spring Cloud 微服务技术栈中的服务发现组件

Eureka 的各个节点都是平等的,几个节点挂掉不影响正常节点的工作,剩余的节点依然可以提供注册

和查询服务,只要有一台 Eureka 还在,就能保证注册服务可用,只不过查到的信息可能不是最新的

版本,不保证一致性。

 

posted @ 2020-04-02 20:28  liuxw666  阅读(225)  评论(0编辑  收藏  举报