zookeeper
一、zookeeper介绍
1.zooKeeper 是一个开源的分布式协调服务。
分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能
2.zookeeper工作机制
2.1 zookeeper = 文件系统 + 通知机制
2.2 观察者模式
3.zookeeper
3.1集群角色
Leader:主
Follower:从
Observer:观察者
3.2.特点
1) 一个leader,多个跟随者组成的集群
2) 半数存活
3)全局数据一致
4)更新请求顺序进行
5)原子性
6)实时性
4.数据结构 树
5.应用场景
1)统一命名
2)统一配置管理
3)统一集群管理
4)服务器动态上下线
5)软负载均衡
三、zookeeper内部原理
1.选举机制:半数存活,集群可用。leader、follower
2.监听器原理:connect、listener。心跳
3.写数据流程
四、zookeeper实战
1.服务器动态上下线案例分析
1)协议:
eureka内部是AP协议,即它可以保证服务的高可用,但是对于一致性的要求不高
zookepper内部是CP协议,即它可以保证服务的数据一致性,但是对于服务的可用性要求不高
nacos内部是AP/CP协议,默认AP协议,如果对一致性的要求比较高可以切换为CP协议
2)雪崩保护:
eureka是存在雪崩保护机制的,服务注册列表会缓存在调用方的本地
zookepper没有雪崩保护机制
nacos的雪崩保护机制和eureka的原理相同,将服务的注册列表保存在调用方的本地
3)容器化部署:
eureka和zookepper暂时不支持k8s
nacos在这方面是支持的