主题 | 链接 |
---|---|
Java基础知识 | 面试题 |
Java集合容器 | 面试题 |
Java并发编程 | 面试题 |
Java底层知识 | 面试题 |
Java常用框架 | 面试题 |
计算机网络 | 面试题 |
数据库 | 面试题 |
RabbitMQ | 面试题 |
Redis | 面试题 |
Elasticsearch | 面试题 |
Zookeeper | 面试题 |
系统设计 | 面试题 |
文章目录
-
- ZooKeeper 是什么?
- Zookeeper 文件系统
- 四种类型的数据节点 Znode
- Zookeeper Watcher 机制
- Zookeeper 工作原理?
- Zookeeper 下 Server 工作状态
- zookeeper zab算法
- zookeeper 的选主算法
- zookeeper 是如何保证事务的顺序一致性的?
- zk 节点宕机如何处理?
- zookeeper 负载均衡和 nginx 负载均衡区别
- 集群最少要几台机器,集群规则是怎样的?集群中有 3 台服务器,其中一个节点宕机,这个时候 Zookeeper 还可以使用吗?
- ZAB 和 Paxos 算法的联系与区别?
- Zookeeper 的典型应用场景
- Zookeeper 都有哪些功能?
- Zookeeper 和 Dubbo 的关系?
ZooKeeper 是什么?
ZooKeeper 是一个开源的分布式协调服务。它是一个为分布式应用提供一致性服务的软件,分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
Zookeeper 保证了如下分布式一致性特性:
- 顺序一致性
- 原子性
- 单一视图
- 可靠性
- 实时性(最终一致性)
Zookeeper 文件系统
Zookeeper 提供一个多层级的节点命名空间(节点称为 znode)。与文件系统不同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放数据而目录节点不行。
Zookeeper 为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得 Zookeeper 不能用于存放大量的数据,每个节点的存放数据上限为1M。
四种类型的数据节点 Znode
1)PERSISTENT-持久节点
除非手动删除,否则节点一直存在于 Zookeeper 上
(2)EPHEMERAL-临时节点
临时节点的生命周期与客户端会话绑定,一旦客户端会话失效(客户端与zookeeper 连接断开不一定会话失效),那么这个客户端创建的所有临时节点都会被移除。
(3)PERSISTENT_SEQUENTIAL-持久顺序节点
基本特性同持久节点,只是增加了顺序属性,节点