ZooKeeper 概述
Posted jhxxb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZooKeeper 概述相关的知识,希望对你有一定的参考价值。
ZooKeeper:分布式应用程序的分布式协调服务
ZooKeeper:是用于分布式应用程序的分布式开源协调服务 可以简单理解:ZooKeeper = 文件系统 + 通知机制 从设计模式角度理解:Zookeeper 是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。
特点
1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。 2)集群中只要有半数以上节点存活,Zookeeper 集群就能正常服务。 3)全局数据一致:每个 Server 保存一份相同的数据副本,Client 无论连接到哪个 Server,数据都是一致的。 4)更新请求顺序进行,来自同一个 Client 的更新请求按其发送顺序依次执行。 5)数据更新原子性,一次数据更新要么成功,要么失败。 6)实时性,在一定时间范围内,Clicnt 能读到最新数据。
数据结构
采用数据模型和分层命名空间 ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个节点称做一个 ZNode。每一个 ZNode 默认能够存储 lMB 的数据,每个 ZNode 都可以通过其路径唯一标识。 节点类型: 一、持久(Persistent,默认):客户端和服务器端断开连接后,创建的节点不删除 (1)持久化目录节点(PERSISTENT),客户端与 Zookeeper 断开连接后,该节点依旧存在 (2)持久化顺序编号目录节点(PERSISTENT_SEQUENTIAL),客户端与 Zookeeper 断开连接后,该节点依旧存在,只是 Zookeeper 给该节点名称进行顺序编号 二、短暂(Ephemeral):客户端和服务器端断开连接后,创建的节点自己删除 (1)临时目录节点(EPHEMERAL),客户端与 Zookeeper 断开连接后,该节点被删除 (2)临时顺序编号目录节点(EPHEMERAL_SEQUENTIAL),客户端与 Zookeeper 断开连接后,该节点被删除,只是 Zookeper 给该节点名称进行顺序编号 说明:创建 znode 时设置顺序标识,znode 名称后会附加一个值,顺序号是一个单调递增的计数器,由父节点维护 注意:在分布式系统中,顺序号可以被用于为所有的事件进行全局排序,这样客户端可以通过顺序号推断事件的顺序
常见应用场景
统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等
https://zookeeper.apache.org/doc/r3.4.14/zookeeperOver.html
以上是关于ZooKeeper 概述的主要内容,如果未能解决你的问题,请参考以下文章