分布式服务框架 Zookeeper集群

什么是zookeeper

zookeeper是一个开源的分布式协调服务。

zookeeper 的设计目标:简单的数据模型、可构建集群、顺序访问、高性能。

zookeeper的特点:顺序一致性、原子性、单一系统映像、可靠性

ZooKeeper 集群

集群角色

主节点Leader
既可以为客户端提供写服务又能提供读服务,主节点跟踪从节点状态和任务的有效性,并分配任务到从节点。如果是写请求,那么节点就会向 Leader 提交事务,Leader 接收到事务提交,会广播该事务。 只要超过半数节点写入成功,该事务就会被提交。
从节点 Follower 
只能提供读服务
观察者Observer 
只能提供读服务,不参与选举,不参与“过半写成功”策略

Leader选举算法-ZAB 协议

1、每次投票会包含所推举的服务器的myid和ZXID,然后各自将这个投票发给集群中其他机器。
2、各服务器接收到投票之后会进行进行检查,如检查是否是本轮投票、是否来自LOOKING状态的服务器。
3、规则是优先检查ZXID。ZXID比较大的服务器优先作为Leader。
4、如果ZXID相同,那么就比较myid。myid较大的服务器作为Leader服务器

zookeeper结构

zNode数据节点

Zookeeper将所有数据存储在内存中,这也就保证了 高吞吐量和低延迟。数据模型是一棵节点树,由斜杠(/)的进行分割的路径,就是一个Znode。 每个节点保存自己的数据内容,同时还会保存一系列属性信息

节点类型

持久节点:一旦这个ZNode被创建了,除非主动进行ZNode的移除操作,否则这个ZNode将一直保存在Zookeeper上
临时节点 :生命周期和客户端会话绑定,一旦客户端会话失效,那么这个客户端创建的所有临时节点都会被移除

zookeeper客户端命令

#打开客户端
zkCli.sh
zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.01:2183

#查看znode节点
ls /

#创建znode节点
create /workers ""

#删除节点
delete /workers

#退出
quit

#创建临时节点
create -e /master "192.168.1.158:2223"

#获取节点信息
get /master

#设置监视点 stat命令得到一个znode节点的属性,并允许我们设置监视点
stat /master true
发布了32 篇原创文章 · 获赞 15 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/okxuewei/article/details/95185981