目录
Eventually consistent(E:最终一致性)
Zookeeper介绍与重点划分
Zookeeper介绍
Zookeeper是 Apache(阿帕奇)软件基金会的一个软件项目。它是一个为分布式应用提供一致性服务的软件,分布式应用程序可以基于Zookeeper实现数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。 Zookeeper现在是一个独立的顶级项目,而它曾经是Hadoop下的一个子项目。
重点划分
学习Zookeeper驻点要掌握Paxos算法,理清Zookeeper是如何实现自己集群内数据一致性 和 主要节点如何选主;
理解Zookeeper在大数据中扮演的角色,以及Zookeeper如何帮助大数据其他组件完成选主。
集群与分布式介绍
集群
将一个任务部署在多个服务器,每个服务器都能独立完成该任务。例如:饭店后厨有三个厨师,他们每个人都会洗菜、切菜和炒菜,即使饭店同时来了很多客人也能轻松应对,这就是集群
分布式
从概念上就可以看出两者最主要的区别就是分布式是将一种业务拆分成多个子业务部署在多台服务器上,进而对外提供服务;而集群就是将多台服务器组合在一起提供同一种服务。
总结
CAP原则
CAP 原则又称 CAP 定理,指的是在一个分布式系统中,
Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)
,三者不可得兼。
取舍策略
CAP的三个特征只能满足其中两个,那么取舍策略就有三种:
CA without P
如果不要求 P(不允许分区),则 C(强一致性)和 A(可用性)是可以保证的。但放弃 P 的同时也就意味着放弃了系统的扩展性,也就是分布式节点受限,没办法部署子节点,这是违背分布式系统设计的初衷的。
CP without A
APwithout C
总而言之,没有最好的策略,好的系统应该是根据业务场景来进行架构设计的,只有适合的才是最好的。
BASE理论
BASE理论全称是:
Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)三个短语的缩写,来自ebay 的架构师提出。
BASE理论是对CAP中一致性和可用性权衡的结果,其来源对于大型互联网分布式实践的总结,是基于CAP定理逐步演化而来的,核心思想是:.
Basically Available(BA:基本可用)
基本可用是指分布式系统在出现故障的时候,允许损失部分可用性(例如响应时间、功能上的可用性、服务限流、服务降级、服务熔断……)。需要注意的是,基本可用绝不等价于系统不可用。
响应时间上的损失:正常情况下搜索引擎需要在 0.5 秒之内返回给用户相应的查询结果,但由于出现故障(比如系统部分机房发生断电或断网故障),查询结果的响应时间增加到了 1~2 秒。
功能上的损失::购物网站在购物高峰(如双十一)时,为了保护系统的稳定性,部分消费者可能会被引导到一个降级页面。
Soft state(S:软状态)
软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据会有多个副本,允许不同副本数据同步的延时就是软状态的体现。
必须大于二分之一的服务器同时写入
相对于原子性而言,要求多个节点的数据副本都是一致的,这是一种 “硬状态”。
Eventually consistent(E:最终一致性)
总结
数据的一致性
定义
在数据有多份副本的情况下,如果网络、服务器或者软件出现故障,会导致部分副本写入成功,部分副本写入失败。这就造成各个副本之间的数据不一致,数据内容冲突。
模型
强一致性
要求无论更新操作实在哪一个副本执行,之后所有的读操作都要能获得最新的数据。
弱一致性
用户读到某一操作对系统特定数据的更新需要一段时间,我们称这段时间为“不一致性窗口”。
最终一致性
从客户端来看,有可能暂时获取的不是最新的数据,但是最终还是能访问到最新的
今天就先写这些,关于Paxos算法,我还要在整理一下