ZooKeeper 朴素疑问:核心思路
2016-01-20
1. 背景
学习研究,关键要从具体场景入手,只有贴近业务场景,才能抓住重点,灵活运用。
2. Zookeeper 核心思路
Zookeeper 是分布式协同的一个重要实现方式,在分布式协同中, ZK 能在哪些具体场景,起到什么作用呢?其背后的核心原理又是什么呢?
常见的典型问题:
- zookeeper是如何保证事务的顺序一致性的
- 怎么表示事务
- 如何唯一标识
- 如何保证顺序?集中式?
- zookeeper是如何选取主leader的?
- 什么时候 leader 选举?
- 选举的过程?
- 选举过程中,是否能提供服务?
- 选举结果,是否会丢失数据?
- zk中znode类型
- 有几种
- 每种的使用场景?
- 每种底层原理如何实现?
- zk的通知机制
- 如何实现发布/订阅
- 是否会有消息丢失?
- 机器中为什么会有master?
- 在分布式环境中,有些业务逻辑只需要集群中的某一台机器进行执行,其他的机器可以共享这个结果,这样可以大大减少重复计算,提高性能,于是就需要进行master选举。
ZK 的应用场景,以及实现基本原理:
- zk的配置管理:使用 ZK znode 进行配置管理的详细过程
- 如何修改配置?
- 如何通知其他 client 同步修改配置?
- zk的命名服务:命名服务是指通过指定的名字来获取资源或者服务的地址
- 利用 ZK 创建一个全局路径,路径就作为一个名字,映射到资源或者服务地址
- 分布式通知和协调:
- 对于系统调度来说:操作人员发送通知实际是通过控制台改变某个节点的状态,然后zk将这些变化发送给注册了这个节点的watcher的所有客户端。
- 对于执行情况汇报:每个工作进程都在某个目录下创建一个临时节点。并携带工作的进度数据,这样汇总的进程可以监控目录子节点的变化获得工作进度的实时的全局情况。
3. 参考资料
原文地址:https://ningg.top/zookeeper-general-questions/