Zookeeper(一)——简介

Zookeeper简介

Zookeeper 是一个 开源的、分布式的、为分布式框架提供协调服务的Apache项目,是一个基于观察者模式的分布式服务管理框架,负责存储和管理重要数据,接受观察者的注册。一旦数据的状态发生变化,Zk就负责通知在ZK上注册的那些观察者做出响应的反映。

zookeeper=文件系统+通知机制

特点:

  • Zookeeper是一个领导者(Leader),多个跟随者(Follower)组成的集群
  • 集群上只要有半数以上节点存活,Zookeeper集群就可以正常服务,建议安装奇数台服务器
  • 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个server,数据都是一致的。
  • 更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。
  • 数据更新原子性,依次数据更新要么成功,要么失败。
  • 实时性,在一定时间范围内,Client能读取到最新数据。

Zookeeper数据结构

Zookeeper数据结构模型与Unix系统比较类似,整体可以看做一棵树,每个节点称作ZNode,每个ZNode默认存储1MB的数据,每个ZNode都可以通过其路径作为唯一标识

应用场景

统一命名服务

分布式环境下,经常需要对应用/服务进行统一命名。

配置统一管理
  • 分布式环境下,配置文件同步非常常见
    • 一般要求一个集群中,所有节点信息的配置时一致的(Kafka集群)
    • 对配置文件修改后,希望能快速同步到各个节点上
  • 配置管理可交给Zookeeper实现
    • 可以将配置信息写入Zookeeper上的一个Znode
    • 各个客户端服务器监听这个Znode
    • 一旦Znode的数据被修改,Zookeeper将通知各个客户端服务器。
统一集群管理
  • 分布式环境中,实时掌握每个节点的状态时必要的,可以根据节点状态做出一些调整
  • zookeeper可以实现实时监控节点状态变化
    • 可以将节点信息写入到ZNode上
    • 监听Znode可以获取实时状态变化
服务器动态上下线
  • 客户端能实时洞察到服务器上下线变化
软负载均衡

在ZK中记录每台服务器访问数,访问数最少的服务器去处理新的客户端请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

稷下学员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值