本文主要记录日常学习,和工作中使用ZooKeeper时遇到的疑点。
Zookeeper架构
zookeeper中存在主从与主备架构
Zookeeper的特性
1.数据一致性
2.可靠性
3.顺序性
4.数据更新要么全部成功,要么全部失败
5.实时性
ZooKeeper 节点
节点类型 | 说明 | 创建命令 |
---|---|---|
永久节点 (Persistent Node) | 会一直存在 | create /abc 123 |
顺序节点(Sequential Node) | 有序的创建节点 | create -s /abc1 456 |
临时节点 (Ephemeral Node) | 当前连接客户端退出就销毁,配合watch机制使用 | create -e /temp 789 |
顺序节点与临时节点,永久节点可以组合创建。
Zookper watch 机制
客户端先向服务器注册监听 ,当服务器满足一定条件时(Znode的值发生改变),就会通知客户端。
客户端的回调中会收到服务端的通知信息。
get /abc watch
给/abc节点添加watch,然后
临时节点 + watch 机制
临时节点 + watch 机制 可以实现服务器的监控功能。
当集群中的服务器启动时,向ZooKeeper服务端创建临时节点,并注册监听,当服务器挂掉的时候,ZooKeeper临时节点会消失,通过watch,就可以告知服务端挂掉了。从而实现监控。
ZooKeeper端口说明
1、2181:对cline端提供服务
2、3888:选举leader使用
3、2888:集群内机器通讯使用(Leader监听此端口)
端口 | 作用 |
---|---|
2181 | 对cline端提供服务 |
3888 | 选举leader使用 |
2888 | 集群内机器通讯使用(Leader监听此端口) |