鹤壁市淇县网站建设,甘肃网站建设域名注册公司,怎么做网站才能吸引人,网站建设 数据库购买集群角色
通常在分布式系统中#xff0c;构成一个集群的每一台机器都有自己的角色#xff0c;最典型的集群模式就是Master/Slave模式(主备模式)。在这种模式中#xff0c;我们把能够处理所有写操作的机器称为Master机器#xff0c;把所有通过异步复制方式获取最新数据构成一个集群的每一台机器都有自己的角色最典型的集群模式就是Master/Slave模式(主备模式)。在这种模式中我们把能够处理所有写操作的机器称为Master机器把所有通过异步复制方式获取最新数据并提供读服务的机器称为Slave机器。而在ZooKeeper中这些概念被颠覆了。它没有沿用传统的Master/Slave概念而是引入了Leader、 Follower 和Observer 三种角色。ZooKeeper 集群中的所有机器通过一个Leader选举过程来选定一台被称为“Leader”的机器Leader 服务器为客户端提供读和写服务。除Leader外其他机器包括Follower 和Observer。Follower 和Observer都能够提供读服务唯一的区别在于Observer机器不参与Leader选举过程也不参与写操作的“过半写成功”策略因此Observer可以在不影响写性能的情况下提升集群的读性能。 会话 (Session)
Session是指客户端会话在讲解会话之前我们首先来了解一下客户端连接。在ZooKeeper中一个客户端连接是指客户端和服务器之间的一个TCP长连接。ZooKeeper对外的服务端口默认是2181客户端启动的时候首先会与服务器建立一个TCP连接从第一次连接建立开始客户端会话的生命周期也开始了通过这个连接客户端能够通过心跳检测与服务器保持有效的会话也能够向ZooKeeper服务器发送请求并接受响应同时还能够通过该连接接收来自服务器的Watch事件通知。Session的sessionTimeout值用来设置一个客户端会话的超时时间。当由于服务器压力太大、网络故障或是客户端主动断开连接等各种原因导致客户端连接断开时只要在sessionTimeout规定的时间内能够重新连接上集群中任意一台服务器那么之前创建的会话仍然有效。 数据节点(Znode)
在谈到分布式的时候我们通常说的“节点”是指组成集群的每一台机器。然而在
ZooKeeper中“节点”分为两类第一类同样是指构成集群的机器我们称之为机器节
点;第二类则是指数据模型中的数据单元我们称之为数据节点一ZNode。 ZooKeeper
将所有数据存储在内存中数据模型是一棵树(ZNode Tree) 由斜杠(/) 进行分割的
路径就是一个Znode例如/foo/pathI。每个ZNode.上都会保存自己的数据内容同时
还会保存一系列属性信息。 在ZooKeeper中ZNode可以分为持久节点和临时节点两类。所谓持久节点是指一旦这个ZNode被创建了除非主动进行ZNode的移除操作否则这个ZNode将一直保存在ZooKeeper上。而临时节点就不一样了它的生命周期和客户端会话绑定一旦客户端会话失效那么这个客户端创建的所有临时节点都会被移除。另外ZooKeeper还允许用户为每个节点添加一个特殊的属性SEQUENTIAL。一旦节点被标记上这个属性那么在这个节点被创建的时候ZooKeeper会自动在其节点名后面追加上一个整型数字这个整型数字是一个由父节点维护的自增数字。 版本
在前面我们已经提到ZooKeeper 的每个ZNode上都会存储数据对应于每个ZNodeZooKeeper都会为其维护一个叫作Stat的数据结构Stat中记录了这个ZNode的三个数据版本分别是version(当前ZNode的版本)、cversion (当前ZNode子节点的版本)和aversion(当前ZNode的ACL版本)。 Watcher
Watcher (事件监听器)是ZooKeeper中的一个很重要的特性。ZooKeeper 允许用户在指定节点上注册一些Watcher并且在一些特定事件触发的时候ZooKeeper服务端会将事件通知到感兴趣的客户端上去该机制是ZooKeeper实现分布式协调服务的重要特性。 ACL
ZooKeeper采用ACL (Access Control Lists) 策略来进行权限控制类似于UNIX文件系统的权限控制。ZooKeeper 定义了如下5种权限。
CREATE创建子节点的权限。
READ获取节点数据和子节点列表的权限。
WRITE更新节点数据的权限。
DELETE删除子节点的权限。
ADMIN设置节点ACL的权限。 其中尤其需要注意的是CREATE和DELETE这两种权限都是针对子节点的权限控制。