相关问题:
配置同步服务etcd和zookeeper,选哪个呢?
https://baijiahao.baidu.com/s?id=1599455829515318791&wfr=spider&for=pc
是什么?
分布式数据一致性的解决方案。
分布式应用程序可以基于它实现:
- 数据发布/订阅。
- 负载均衡
- 命名服务
- 分布式协调/通知
- 集群管理
- Master选举
- 分布式锁
- 分布式队列
只要有过半节点正常工作,ZooKeeper就能提供服务。ZooKeeper保证以下特性:
- 客户端永远不会取得老数据
- 在有限时间内,客户端能够获得数据变化的通知
- 从同一个客户端发起的事务请求,最终将会严格地按照发起顺序被应用到ZooKeeper。
- 无论客户端连接到哪个ZooKeeper服务器,看到的服务端数据模型都是一致的。
数据结构
zookeeper 的基本数据结构为一个类似文件系统的状结构,我们称每一个节点为 ZNode。节点可以通过路径标识,类似于文件夹 path:/Project/Polestar。
ZNode 的类型:
- 持久型
- 临时型
- 持久/临时顺序节点。ZooKeeper允许节点被创建时追加一个数字,该数字是被父节点维护的单调递增数字。
临时型,需要解释下。客户端与服务器建立连接创建会话(Session),断开连接后会话失效。一旦客户端会话失效,那么客户端所创建的临时节点(Ephemeral)都将会被移除。
监听器
zookeeper 需要监听器才能完成这么多事。ZooKeeper运行用户在Znode上注册Watcher,以监听节点的变更。常见的包括:
- 节点的数据变化。
- 自节点的增删变化。
待更。。。