政务网站建设办法,wordpress文章缩略图地址标签,网页设计做网站,网页版微信二维码传送助手Zookeeper是一个典型的分布式数据一致性的结局方案#xff0c;分布式应用程序可以基于它实现注入数据发布、订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能#xff0c; Zookeeper可以保证如下分布式一致性特性#xff1a; 顺… Zookeeper是一个典型的分布式数据一致性的结局方案分布式应用程序可以基于它实现注入数据发布、订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能 Zookeeper可以保证如下分布式一致性特性 顺序一致性 从同一个客户端发起的事务请求最终将会严格地按照其发起顺序被应用到Zookeeper中去 原子性 所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的也就是说要么整个集群所有机器都成功应用了某一个事务要么都没有应用一定不会出现集群中部分机器应用了该事务而另外一部分没有应用的情况 单一视图 无论客户端连接的是那个Zookeeper服务器其看到的服务端数据模型都是一致的 可靠性 一但服务端成功地应用了一个事务并完成对客户端的响应那么该事务所引起的服务端状态变更将会被一直保留下来除非有另外一个事务又对其进行了变更。 实时性 Zookeeper仅仅保证在一定的时间段内客户端最终一定能够从服务端上读取到最新的数据状态
Zookeeper基本概念
三种角色Leader Follower Observer三种角色。Leader提供读写服务Follower和Observer都能提供读服务Obserever不参与选举。
会话SessionSession是指的客户端会话在Zookeeper中一个客户端连接指的是客户端和服务端之间的一个TCP长连接ZooKeeper对外的服务端端口默认是2181客户端启动的时候首先会与服务器建立一个TCP连接从第一次连接建立开始客户端会话的生命周期也就开始了。通过这个连接客户端能够通过心跳检测与服务器保持有效的绘画也能够接受服务器的Wacher事件通知。
数据节点Znode 在Zookeeper中Znode可以分为持久节点和临时节点两类持久节点创建之后除非进行移除操作会一直存在。临时节点跟生命周期和客户端会话绑定一旦客户端会话失效这个客户端创建的所有临时节点都会被移除。
版本 Zookeeper上的Znode都会维护一个Stat的数据结构包含三个数据版本 version当前Znode的版本、cversion(当前Znode子节点的版本)和avesion当前Znode的ACL版本
Watcher
Watcher事件监听器是Zookeeper中的一个很重要的特性Zookeeper允许用户在指定节点上注册一些Watcher,并且在一些特定事件触发的时候Zookeeper服务端会将时间通知到感兴趣的客户端上。
ACL
Zookeeper采用ACL策略进行权限控制定义下边5种权限
Create 创建子节点的权限Read 获取节点数据和子节点列表的权限Write 更新节点数据的权限Delete 删除子节点的权限Admin 设计节点ACL的权限
ZooKeeper的ZAB协议
ZAB是Zookeeper设计的崩溃客可恢复的原子消息广播算法。
Zookeeper使用一个单一的主进程来接受并处理客户端的所有请求并采用ZAB的原子广播协议将服务数据的状态变更以事务Proposal的形式广播到所有的副本进程上去。