记录下zookeeper学习笔记,作为以后的工具使用。
主要学习资源来自:
- 《从Paxos到Zookeeper 分布式一致性原理与实践 》。
- 极客学院-ZooKeeper 介绍与实战分析 -收费
- csdn前辈们的博客,不一一列举。
一、zookeeper的基本概念
1.集群角色
Leader: 为客户端提供读写服务
Follower:为客户端提供读服务,所有的写服务都要转交给leader; 参与选举
Observer:观察者.参与读服务,不参与选举
2.会话(session)
客户端通过TCP与服务器建立一个连接(Session),通过心跳检测与服务器保持会话,也可向服务器请求获取数据。
可以设置timeout时间,接收服务端watch时间事件通知
3.节点
1).集群中一台服务器称之为一个节点
2).数据模型中数据单元znode:分为持久节点和临时节点(session失效后,临时节点删除)
4.版本
- version:当前znode的版本
- cversion:当前znode的子节点的版本
- aversion:当前Znode的ACL(控制访问)变更版本号
5.watcher
作用于Znode上,
多种事件监听:数据更新,子节点状态等
6.ACL访问权限控制
- CREATE: 创建子节点的权限
- READ: 获取节点数据和子节点列表的权限
- WRITE: 更新节点数据的权限
- DELETE: 删除子节点的权限
- ADMIN: 设置节点ACL的权限
二、zookeeper的搭建安装环境
1.配置(conf/zoo.cfg)
1.设置dataDir
dataDir=/var/zookeeper
2.配置端口号
server.1d=host:port1:port2
--server.id:id集群中服务器的序号,同时要在$dataDir/下创建myid文件, 文件内容写下id的值即可。
--第一个端口:follower和leader服务器的通信端口
--第二个端口:leader选举过程的投票通信端口
2.服务器启动与检测
./zkServer.sh start --启动
./zkServer.sh stop --停止
----检测服务有无启动
telnet ip port
输入:ruok
输出:iamok
3.重点内容
- 集群环境
- 单机环境
- 伪集群环境: 同一台机器部署多个节点(端口号不同)