开发者学堂课程【精通 Spring Cloud Alibaba: Eureka 与 Zookeeper 的区别】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/634/detail/10099
Eureka 与 Zookeeper 的区别
内容简介:
一、Eureka 与 Zookeeper 的相同点
二、Eureka 与 Zookeeper 的不同点
一、Eureka 与 Zookeeper 的相同点
Eureka 与 Zookeeper 都可以实现分布式服务注册中心。
二、Eureka 与 Zookeeper 的不同点
Zookeeper 采用 CP 保证数据的一致性的问题,原理采用 Zab 原子广播协议,当我们的 zk 领导因为某种原因宏机的情况下,会自动出发重新选一个新的领导角色,整个选举的过程为了保证数据的一致性问题,
在选举的过程中整个 zk 环境是不可以使用,可以短暂可能无法只用到 zk ,以为者微服务采用该模式的情况下,可能无法实现通讯。(本地有缓存除外)
解释:
因为这个时候在使用 Nginx 做选举的时候,要选举出一个 Nacos 出来,在整个选举服务中是不可以使用的,现在假设在 web上使用 Zookeeper 注册中心的话,是会出现的缺点,也就是 Zookeeper 一旦在选举功能下,整个微服务是无法通讯的,除非执行一个缓存
ZK 中必须有一个领导者
注意:
可运行的节点必须满足过半机制,整个 zk 才能使用。
Eureka 采用 ap 的设计理念架构注册中心,完全去中心化思想,也就是没有主从之分。
每一个节点都是均等的,采用相互注册原理,你中有我,我中有你,只要最后有一个 eureka 节点存在就可以保证整个微服务可以实现通讯。
举例:搭建 Eureka 集群
它的模式就是没有主从之分,你中有我,我中有你
就算有一个 Eureka 宕机也没有影响,Eureka 之间的信息可以相互拿到。采用相互注册的方式,每一个节点都是均等的,没有主从之分,它不像选举,他都是同一个级别,所以只要抱枕最后有一个 Eureka 在的情况下,整个微服务就是可以通讯的。
中心化 :必须围绕一个领导角色作为核心,选举为领导和跟随者
去中心化 :每个角色都是均等
Zookeeper 最大的一个缺点:
如果说当前存活的一个 zk 节点没有满足节点数过半的情况下,那么就不会使用。
我们在使用注册中心,可用性在优先级最高在可以读取数据短暂暂时不一致性,但是至少要能够保证注册中心可用性。
这就是 Nacos 在1.0.0版本中默认服务器集群模式是 Ap