zookeeper
什么是zookeeper?开源的,为分布式应用提供协调服务的Apache项目。zookeeper的工作机制?采用观察者设计模式,获取存储服务器的状态信息,然后接受客户端的注册,一旦客户端观的这些数据的状态发生了变化,就通知客户端。zookeeper = 文件系统 + 通知机制 ;就是这么理解的zookeeper特点:一个Leader,多个Followers组成的集群;集群只要半数以上的服务器存活,
什么是zookeeper?
开源的,为分布式应用提供协调服务的Apache项目。
zookeeper的工作机制?
采用观察者设计模式,获取存储服务器的状态信息,然后接受客户端的注册,一旦客户端观的这些数据的状态发生了变化,就通知客户端。
zookeeper = 文件系统 + 通知机制 ;就是这么理解的
zookeeper特点:
一个Leader,多个Followers组成的集群;
集群只要半数以上的服务器存活,zookeeper集群就能正常服务;
每台server的数据都是一样的,#这些数据是配置文件,所以内存不大,
同一个client的更新请求按其发送的顺序依次执行
实时性,更新数据非常快
zookeeper的数据结构:
数结构,每个节点叫ZNode,每个ZNode只能存1MB数据,每个ZNode路径唯一
应用场景:
统一命名:多个ip对应相同的域名,域名也就是url,例如:www.baidu.com
统一配置管理:所有节点的配置信息是一致的、对配置文件修改,能快速同步到各个节点上
统一集群管理:
服务器动态上下线:
客户端能实时观察到服务器上下线的变化
软负载均衡:
让访问数最少的服务器去访问最新的客户请求
zookeeper的内部原理:
集群半数以上机器存活,集群就可用,适合安装奇数台服务器
选举机制:第一次都选自己,不行就选id最大的,一旦半数以上票马上当选,后来者也改变不了
节点的类型:
持久的(persistent):客户端与服务器断开连接后,创建的节点不删除。
持久化目录节点:客户端与服务器断开连接后,创建的节点不删除。
持久化顺序编号目录节点:客户端与服务器断开连接后,创建的节点不删除,对节点进行顺序编号
短暂的(ephemeral):客户端与服务器断开连接后,创建的节点删除
临时目录节点:连接断开,节点删除
临时顺序编号目录节点:连接断开,节点删除,不过zookeeper对节点名称进行顺序编号
启动zookeeper:
bin下执行:zkServer.sh start # 启动服务器
bin下执行:zkServer.sh stop # 停止服务器
要启动过半服务器,zookeeper才能工作
jps # 产看服务器
zkServer.sh status # 查看zookeeper的服务器状态
bin下执行:zkCli.sh # 启动客户端
客户端命令行操作:
quit:退出
创建节点:create /znode1 "data" # 创建节点必须同时在节点存数据,不然会失败
get /znode1 # 获取节点znode1的内容
创建短暂节点:create -e /znode1 "data"
创建顺序编号节点:create -s /znode1 "data"
ls /znode1 # 可以查看有哪些节点
set /znode1 "data2" #修改为data2
注册监听是在客户端执行:get /znode1 watch 注册一次,只能监听一次,当其他客户端修改了监听点,马上收到通知。
ls /znode1 watch # 监听节点变化 ,依然是只能监听一次变化
delete /znode1 # 删除节点
rmr /znode1 # 递归删除节点
stat / # 查看结点的详细信息
更多推荐



所有评论(0)