一.zookeeper的原理
1. zookeeper是一个数据库 是一个使用树形结构的数据库,可以拥有高可用的集群,80%在读 ,20%在写,只允许在一台机器上写,机器分为两种角色 leader(领导者)+foollower(追随者),写由leader写入,读由foollower负责 ,一个集群只能有一个leader,leader由paxos算法选举出来,票数最高的机器成为leader。leader写入的数据通过paxos算法将所有数据同步,zookeeper的集群必须是2n+1台,最少n=1。
2. zookeeper的path表示一个znode,/表示根节点,树结构包含多个znode,每个节点都可以有一个值和多个子节点。
3. zookeeper有三种znode
1 永久节点 数据被持久化 用户不调用删除,就不会被删除 ,默认是永久节点
2 临时节点 客户端连接时 才保留数据,客户端断开 数据就删除。create -e / ,一般应用在注册中心
3 顺序节点 按顺序生成 ,create -s /,一般应用在抢票+秒杀+分布式主键
二 zookeeper安装
1.下载 安装包(http://www.apache.org/dyn/closer.cgi/zookeeper/) 这里建议下载3.4以上版本 (将事务日志和快照数据拆分为不同目录 自动清除过期文件)
点击add 输入http://www.massedynamic.org/eclipse/updates/
点击OK选择
2.安装jdk 设置javahome bin目录设置到path中
3.拷贝 conf/zoo_sample.cfg 命名为 zoo.cfg ,zoo.cfg的参数
# 心跳的时间间隔
tickTime=2000
# 初始化同步数据要花费的时间 10个tickTime
initLimit=10
# leader和foollower互相发送心跳检查对方失效的时间间隔
syncLimit=5
# 数据存储的位置
dataDir=D:\zookeeper-3.4.10\data
# 端口号
clientPort=2181
#默认的连接数
#maxClientCnxns=60
4.
运行 bin/zkServer