搭建Zookeeper集群非常的简单,主要是在zoo.cfg配置文件上改一些东西
1. 了解zoo.cfg基本配置
tickTime | 发送心跳时间间隔 |
initLimit | client同步阶段与server建立连接的时间为tickTike的n倍 |
syncLimit | client发出request与获得ack通知之间的时间间隔同样是tickTime的n倍 |
dataDir | 数据目录 |
server.1 | 1为myId |
2. 配置myid文件
将myid设置成与server.1一致,也就是说设置为1.并且将myId文件放在dataDir目录下。
3. 集群中的角色
Leader:
Leader作为整个ZooKeeper集群的主节点,负责响应所有对ZooKeeper状态变更的请求。它会将每个状态更新请求进行排序和编号,以便保证整个集群内部消息处理的FIFO,写操作都走leader,zk里面leader只有一个
Follower :
Follower的逻辑就比较简单了。除了响应本服务器上的读请求外,follower还要处理leader的提议,并在leader提交该提议时在本地也进行提交。 另外需要注意的是,leader和follower构成ZooKeeper集群的法定人数,也就是说,只有他们才参与新leader的选举、响应leader的提议。 帮助leader处理读请求,投票权
Observer :
如果ZooKeeper集群的读取负载很高,或者客户端多到跨机房,可以设置一些observer服务器,以提高读取的吞吐量。Observer和Follower比较相似,只有一些小区别:首先observer不属于法定人数,即不参加选举也不响应提议;其次是observer不需要将事务持久化到磁盘,一旦observer被重启,需要从leader重新同步整个命名空间。 没有投票权利,可以处理读请求