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中记录每台服务器访问数,访问数最少的服务器去处理新的客户端请求。

posted @ 2021-12-14 09:10  稷下学员  阅读(14)  评论(0)    收藏  举报