赞
踩
目录
前面我们讲过zookeeper的安装,在安装过程中,我们看到当启动一个节点的时候,查看状态,提示信息是未启动,那么到底是怎么回事呢?下面我们介绍一下zookeeper的集群特性和选举的机制。
一个ZooKeeper集群中,有一个领导者Leader和多个跟随者Follower ,Leader负责进行投票的发起和决议,更新系统状 Follower用于接收客户端的请求并向客户端返回结果,在选举Leader过程中参与投票。
集群特性
集群中只要有半数以上节点存活,集群就能够正常工作,所以一般集群中的服务器个数都为奇数
集群中每台服务器保存一份相同的数据副本,不论客户端连接到哪个服务器,数据都是一致的
来自同一个客户端的更新请求,按其发送顺序依次执行
一次数据更新,要么成功,要么失败
在一定的时间范围内,客户端能读取到最新数据
ZooKeeper在提供服务时会自动选举一个节点服务器作为Leader,其他都是Follower
选举流程:假设我们选取5台机器部署
总结:
- # 在集群的A服务器,监听某个节点值的变化
- get /yyy watch
- # 在集群的B服务器,修改对应节点的值
- set /yyy myyyy
- # 此时A服务器会收到事件NodeDataChanged
- WATCHER::
- WatchedEvent state:SyncConnected type:NodeDataChanged path:/yyy
监听Watch事件是一个一次性的触发器,当数据改变时只会触发一次,如果以后这个数据再发生改变,则不会再次触发。
- # 在集群的A服务器,监听某个节点的子节点的变化
- ls /yyy watch
- # 在集群的B服务器,创建/修改/删除对应节点的子节点
- create /yyy/hello hello
- # 此时A服务器会收到事件NodeChildrenChanged
- WATCHER::
- WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/yyy
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。