ZooKeeper - 安装配置
一、安装
http://archive.apache.org/dist/zookeeper/
二、单机模式
在主目录下创建data和logs两个目录用于存储数据和日志:
cd /usr/myapp/zookeeper-3.4.5 mkdir data mkdir logs
在conf目录下新建zoo.cfg文件,写入以下内容保存:
dataDir=/usr/myapp/zookeeper-3.4.5/data dataLogDir=/usr/myapp/zookeeper-3.4.5/logs
进入bin目录,启动、停止、重启分和查看当前节点状态(包括集群中是何角色)别执行:
./zkServer.sh start ./zkServer.sh stop ./zkServer.sh restart ./zkServer.sh status
二、伪集群模式
伪集群模式就是在同一主机启动多个zookeeper并组成集群,下边以在192.168.220.128主机上创3个zookeeper组集群为例。
将通过第一大点安装的zookeeper,复制成zookeeper1/zookeeper2/zookeeper3三份
2.1 zookeeper1配置
zookeeper1配置文件conf/zoo.cfg修改如下:
tickTime=2000 dataDir=/usr/myapp/zookeeper1/data dataLogDir=/usr/myapp/zookeeper1/logs clientPort=2181 initLimit=5 syncLimit=2 server.1=192.168.220.128:2888:3888 server.2=192.168.220.128:4888:5888 server.3=192.168.220.128:6888:7888
zookeeper1的data/myid配置如下:
echo '1' > data/myid
2.2 zookeeper2配置
zookeeper2配置文件conf/zoo.cfg修改如下:
tickTime=2000 dataDir=/usr/myapp/zookeeper2/data dataLogDir=/usr/myapp/zookeeper2/logs clientPort=3181 initLimit=5 syncLimit=2 server.1=192.168.220.128:2888:3888 server.2=192.168.220.128:4888:5888 server.3=192.168.220.128:6888:7888
zookeeper2的data/myid配置如下:
echo '2' > data/myid
2.3 zookeeper3配置
zookeeper3配置文件conf/zoo.cfg修改如下:
tickTime=2000 dataDir=/usr/myapp/zookeeper3/data dataLogDir=/usr/myapp/zookeeper3/logs clientPort=4181 initLimit=5 syncLimit=2 server.1=192.168.220.128:2888:3888 server.2=192.168.220.128:4888:5888 server.3=192.168.220.128:6888:7888
zookeeper3的data/myid配置如下:
echo '3' > data/myid
最后使用命令把三个zookeeper都启动即可,启动顺序随意没要求。
三、集群模式
集群模式就是在不同主机上安装zk然后组成集群的模式;配置如 伪集群模式,端口可以配置相同,因为在不同机器上。
四、测试
4.1 同步
在一zk上创建 create /project zookeeper_project ,然后查看其它 zookeeper 是否自动创建了 /project ,如果都自动创建,则表示同步成功。
4.2 leader选举
查看各zk 状态 :zookeeper-1/bin/zkServer.sh status
关闭leader,则其它zk会自动选举出leader 节点。
五、配置解读
例如:
tickTime=2000 initLimit=5 syncLimit=2 dataDir=/opt/zookeeper/server1/data dataLogDir=/opt/zookeeper/server1/dataLog clientPort=2181 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890
tickTime:zookeeper中使用的基本时间单位, 毫秒值。
initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个 tickTime 时间间隔数。这里设置为5表名最长容忍时间为 5 * 2000 = 10 秒。
syncLimit:这个配置标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2 * 2000 = 4 秒。
dataDir 和 dataLogDir 看配置就知道干吗的了,不用解释。
clientPort:监听client连接的端口号,这里说的client就是连接到Zookeeper的代码程序。
server.{myid}={ip}:{leader服务器交换信息的端口}:{当leader服务器挂了后, 选举leader的端口}
maxClientCnxns:对于一个客户端的连接数限制,默认是60,这在大部分时候是足够了。但是在我们实际使用中发现,在测试环境经常超过这个数,经过调查发现有的团队将几十个应用全部部署到一台机器上,以方便测试,于是这个数字就超过了。
posted on 2017-11-30 21:28 TrustNature 阅读(5) 评论(0) 编辑 收藏 举报