Zookeeper入门(一)介绍

1 概述
Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。

2 Zookeeper工作机制在这里插入图片描述
3 特点
1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
2)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。(如果有四台机器,挂掉两台,不能正常服务,因为存活机器没有达到半数以上)
3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。(有几个节点备份几份数据,而hdfs默认备份3份)
4)更新请求顺序进行,来自同一个Client的更新请求按其发送顺序依次执行。
5)数据更新原子性,一次数据更新要么成功,要么失败。(此处和事务的特点之原子性类似)
6)实时性,在一定时间范围内,Client能读到最新数据。(因为zookeeper存放的数据量少)
4 zookeeper数据结构
ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一 个ZNode。每一个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识
数据结构图
5 应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。

  • zookeeper统一命名服务
    在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。 例如:IP不容易记住,而域名容易记住。 统一命名服务
  • zookeeper统一配置管理
  • 分布式环境下,配置文件同步非常常见。
    (1)一般要求一个集群中,所有节点的配置信息是 一致的,比如 Kafka 集群。
    (2)对配置文件修改后,希望能够快速同步到各个 节点上。
  • 配置管理可交由ZooKeeper实现。
    (1)可将配置信息写入ZooKeeper上的一个Znode。
    (2)各个客户端服务器监听这个Znode。
    (3)一旦Znode中的数据被修改,ZooKeeper将通知 各个客户端服务器。

统一配置管理

  • zookeeper统一集群管理

  • 分布式环境中,实时掌握每个节点的状态是必要的。
    (1)可根据节点实时状态做出一些调整。

  • ZooKeeper可以实现实时监控节点状态变化
    (1)可将节点信息写入ZooKeeper上的一个ZNode。
    (2)监听这个ZNode可获取它的实时状态变化。
    统一集群管理

  • zookeeper服务器动态上下线
    客户端能实时洞察到服务 器上下线的变化
    服务器动态上下线

  • zookeeper软负载均衡
    在Zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求
    软负载均衡6.zookeeper的节点类型

  • 持久(Persistent):客户端和服务器端断开连接后,创建的节点不删除
    (1)持久化目录节点客户端与Zookeeper断开连接后,该节点依旧存在
    (2)持久化顺序编号目录节点 客户端与Zookeeper断开连接后,该节点依旧存 在,只是Zookeeper给该节点名称进行顺序编号

  • 短暂(Ephemeral):客户端和服务器端断开连接后,创建的节点自己删除
    (1)临时目录节点 客户端与Zookeeper断开连接后,该节点被删除
    (2)临时顺序编号目录节点 客户端与Zookeeper断开连接后, 该节点被删除 , 只是 Zookeeper给该节点名称进行顺序编号。

说明:创建znode时设置顺序标识,znode名称后会附加一个值,顺序号是一个单调递增的计数器,由父节点维护
注意:在分布式系统中,顺序号可以被用于为所有的事件进行全局排序,这样客户端可以通过顺序号推断事件的顺序
7.客户端命令行操作

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值