ZooKeeper_2_初识ZooKeeper
来源:互联网 发布:桂和几松 知乎 编辑:程序博客网 时间:2024/06/10 18:01
ZooKeeper是什么
Zookeeper是一个典型的分布式数据一致性的解决方案。
分布式应用程序可以基于它实现诸如 数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理等等
ZooKeeper有如下特性:
a. 顺序一致性
从同一个客户端发起的事务请求,最终将会严格的按照其发起顺序被应用到ZooKeeper中。
b. 原子性
所有事务请求的处理结果在整个集群所有机器上的应用情况是一致的。也就是说,整个集群要么都成功应用了某一事务,要么都没有应用。
一定不会出现集群中部分机器应用了该事物,而另一部分没有应用的情况。
c. 单一视图
无论客户端连接的是哪个ZooKeeper服务器,其看到的服务端数据模型都是一致的。
d. 可靠性
一旦服务端成功应用了一个事务,并完成对客户端的响应,那么该事务所引起的服务端状态变更会一直保留下来;除非有另一个事务又对其进行了变更。
e. 实时性
通常人们看到事实性的第一反应是:一旦一个事务被成功应用,那么客户端能够立即从服务端上读取到这个事务变更后的的最新数据。
这里需要注意:ZooKeeper仅仅保证在一定的时间段内,客户端最终一定能从服务端上读取到最新的数据状态
ZooKeeper的设计目标
目标一:简单的数据模型
目标二:可以构建集群
目标三:顺序访问
目标四:高性能
ZooKeeper的基本概念
1. 集群角色
ZooKeeper中有三种角色:Leader、Follower和Observer
Leader服务器为客户端提供读写服务。
Follower和Observer角色服务器都能提供读服务。
2. 会话(Session)
客户端与服务器第一次链接之后,因为网络压力造成客户端与服务端主动断开,只要在sessionTimeout规定的时间内能够重连集群中任意一台服务器,
那么之前创建的会话仍然有效.
3. 数据节点(Znode)
在ZooKeeper中,节点有两层概念。
a. 集群中的某一台服务器,称为一机器个节点
b. 数据模型中的数据单元,称为数据节点--Znode;(结构像是Linux系统中的文件目录)
4. 版本
在ZooKeeper的每个ZNode节点上都会存储数据,对应每个ZNode;
ZooKeeper都会为其维护一个叫做Stat的数据结构,Stat中记录了三个数据版本:
version:当前ZNode版本
cversion:当前ZNode子节点的版本
aversion:当前ZNode的ACL版本
5. Watcher
Watcher事件监听器,是ZooKeeper中的一个很重要的特性。
ZooKeeper允许用户在指定节点上注册一些Watcher,并且在一些特定事件触发时,ZooKeeper服务端会将事件通知到客户端上。
6. ACL
ZooKeeper采用ACL策略进行权限控制。
create:创建子节点的权限
read:获取节点数据和子节点列表的权限
write:更新节点数据的权限
delete:删除子节点的权限
admin:设置节点ACL的权限
- ZooKeeper_2_初识ZooKeeper
- 初识ZooKeeper
- ZooKeeper 初识
- 初识ZooKeeper
- 初识ZooKeeper
- 初识ZooKeeper
- zookeeper 初识
- 初识ZooKeeper。
- ZooKeeper学习笔记:初识zookeeper
- 【ZooKeeper 基础篇】初识
- dubbo/zookeeper初识
- kafka 的 zookeeper 初识
- 初识zookeeper和Dubbo
- 初识Hive,Zookeeper
- Zookeeper笔记(一)初识Zookeeper
- 从Paxos到ZooKeeper-初识ZooKeeper
- Zookeeper学习笔记-1-初识
- 初识Lily, Lily=Hadoop+Zookeeper+HBase+Solr
- 根据hash统计数组中各个元素的数量
- AtCoder Beginner Contest 072
- c++之指针作为函数参数传递的问题
- 51Nod 1069 Nim游戏
- 求最大价值
- ZooKeeper_2_初识ZooKeeper
- HTML页面反向显示
- 基于Dlib和OpenCV的人脸姿态估计(HeadPoseEstimation)
- 最佳加法表达式
- HUSTOJ 1110: 查找单词
- Linux常用命令总结
- 微信小程序 地址 三级联动 回显 根据数据库的值 显示三级联动的值
- 二叉树前序,中序,后序遍历详解
- appium python-client代码分析(三)