上一篇梳理一下 CAP定理:https://blog.csdn.net/Soinice/article/details/96782876 著名的CAP理论指出,一个分布式体系不大概同时满足C(同等性)、A(可用性)、和P(分区容错性)。由于分区容错性P在分布式体系中必须要包管的,因此我们只能在A和C之间举行衡量。 因此: 但是对CAP/AP/CP很不明确,于是查阅资料,做一个简单的相识。 Zoopkeeper包管CP当向注册中央查询服务列表时,我们可以容忍注册中央返回的是几分钟从前的注册信息,但是不能继承服务直接down掉不可用。也就是说,服务注册功能对可用性的要求要高于同等性。但是zk会出现如许的一种情况,当master节点因网路故障与其他节点失去接洽时,剩余的节点会重新举行leader推选。标题在于,推选leader的时间太长,30~120s,且推选期间整个zk集群是都是不可用的,这就导致在推选期间注册服务瘫痪,在云摆设的情况下,因网络标题使得zk集群失去master节点是较大概率会发生的事,固然服务可以大概终极规复,但是漫长的推选时间导致的注册恒久不可用是不能容忍的。 Eureka包管APEureka看明确了这一点,因此在筹划时就优先包管可用性。Eureka各个节点都是同等的,几个节点挂掉不影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册时假如发现毗连失败,则会主动切换至其他的节点,只要有一台Eureka还在,就能包管注册服务可用(包管可用性),只不外查到的信息大概不是最新的(不包管同等性)。除此之外,Eureka尚有一种自我掩护机制,假如在15分钟内凌驾85%的节点都没有正常的心跳,那么Eureka就以为客户端与注册中央出现了网络故障,此时会出现以下几种情况: Eureka服务管理机制与Dubbo服务管理机制的比力Eureka支持康健查抄,自我掩护等。 Zookeeper为CP筹划,Eureka为AP筹划。 作为服务发现产物,可用性优先级较高,同等性的特点并不紧张,宁愿返回错误的数据,也比不反回效果要好得多。 服务列表变更Zookeeper服务端会有关照,Eureka则通过长轮询来实现,Eureka未来会实现watch机制。 取与舍CAP理论提出就是针对分布式数据库情况的,以是,P这个属性是必须具备的。 最常见的例子是读写分离,某个节点负责写入数据,然后将数据同步到别的节点,别的节点提供读取的服务,当两个节点出现通讯标题时,你就面临着选择A(继承提供服务,但是数据不包管正确),C(用户处于等候状态,不绝比及数据同步完成)。 文章参考: https://blog.csdn.net/zhumengguang/article/details/80156792 ! |