了解Zookeeper

一. 介绍

1. Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现数据发布/订阅,负载均衡,命名服务,分布式协调/通知,集群管理,Master选举,分布式锁和分布式队列等功能;

2. 设计目标

简单的数据模型:通过一个共享的,树型结构的名字空间来进行相互协调;

可以构建集群:集群中超过一半的机器能够正常工作,整个集群就能正常对外服务;

顺序访问:来自客户端的每个更新请求都会分配一个全局唯一的递增编号;

高性能:全量数据存储在内存中,直接服务于客户端的所有非事务请求;

2. 基本概念

集群角色:

Leader,为客户端提供读和写的操作;

Follower,提供读操作,参与Leader选举过程;

扫描二维码关注公众号,回复: 10058935 查看本文章

Observer,提供读服务,不参与Leader选举过程,也不参与写操作“过半写成功”策略;

会话Session:客户端能够通过心跳检测与服务器保持有效的会话;

数据节点Znode:数据模型中的数据单元;数据模型是一棵树,由斜杠分割的路径就是一个Znode;节点分为持久节点和临时节点;

版本:每个Znode会维护一个叫做stat的数据结构,记录当前Znode版本,当前节点的子节点版本,当前Znode的ACL版本;

事件监听器Watcher:在指定节点上可以注册一些Watcher,在特定事件触发的时候执行;

ACL:用来进行权限控制;

3. ZAB协议

Zookeeper Atomic Broadcast,Zookeeper原子消息广播协议,保证Zookeeper数据一致性的核心算法;

猜你喜欢

转载自www.cnblogs.com/bbbbs/p/12546266.html