Zookeeper的简单理解

zookeeper介绍

Zookeeper主要用于解决分布式数据一致性。

分布式数据一致性的相关理论,详情见 : https://www.cnblogs.com/expiator/p/9760231.html

zookeeper构成

1.会话(Session):

zookeeper的服务端口是2181。客户端启动时,首先会与服务器建立一个TCP长连接,连接建立后,会话开始。

通过这个连接,客户端能够通过心跳机制与服务器保持有效会话,也能够向zookeeper服务器发送请求并接受响应,同时还能接收来自zookeeper服务器的Watch(监听)事件通知 。

2.zookeeper具有树型结构的数据模型,具有很多数据节点。

3.数据节点(Znode):

zookeeper每个数据节点都可以存储数据,节点还可以建立子节点。

数据节点分为持久节点和临时节点。每个数据节点都有版本记录。

4.事件监听器(Watcher):

zk允许用户在指定数据节点注册一些Watcher,在节点或存储的数据发生变化时,客户端可以收到通知 。

5.ACL(Access Control Lists):

zk采用ACL策略来进行权限控制。权限包括对节点的增删改查。

6.zookeeper并没直接采用Paxos算法 。而是基于ZAB的一致性协议。

zookeeper应用

.1.在分布式服务框架Dubbo中,zookeeper可以作为注册中心。这是最常见的用法。

2.分布式消息中间件kafka,借助zookeeper,kafka能够建立生产者和消费者之间的订阅关系,并实现负载均衡。

3.在大数据生态圈Hadoop、Hbase中都有应用zookeeper。

zookeeper集群

1.zk可以构建集群。一个zk集群由多台服务器上的zk组成。

Leader选举

1..zk集群并没有使用常见的Master/Slave模式(主从模式),而是引入Leader、Follower、Observer角色。

  • Leader:提供读和写功能。
  • Follower:提供读服务。
  • Observer:提供读服务。不参考Leader选举。

2.多台服务器通过Leader选举选出Leader。

猜你喜欢

转载自www.cnblogs.com/expiator/p/9966763.html
今日推荐