集群模式
1.安装java环境
2.下载zookerper安装包解压
3.%ZK_HOME%/conf目录下zoo_sample.cfg 复制为 zoo.cfg
添加配置(集群中所有机器上zoo.cfg文件的内容都应该是一致的)
tickTime=2000 #Zookeeper客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳
dataDir=/home/xxxx/zookeeper/zookeeper-3.4.9/data #指定数据存放目录
clientPort=2181 #客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口
initLimit=5 # Zookeeper #接受客户端初始化连接时最长能忍受多少个心跳时间间隔数(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)
syncLimit=2 #标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒
#server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举
server.1=10.16.77.95:2888:3888
server.2=10.16.77.94:2888:3888
4.创建myid文件
在dataDir配置的目录下创建名为myid的文件,与zoo.cfg中的编号对应上
5.启动
sh zkServer.sh start
6.依次在其他机器上执行
7.检查
telnet 127.0.0.1 2181
telnet 127.0.0.1 2181
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
stat
Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Clients:
/127.0.0.1:56364[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x100000000
Mode: leader
Node count: 4
Connection closed by foreign host.
Mode 会显示是否为leader 或 follower, 如果是单机模式, 则为standalone
单机模式:
单机模式是特殊的集群模式,即只有一台机器的集群,安装配置步骤与集群一致,唯一的区别是zoo.cfg配置文件有差异,只有一台机器,例如:
tickTime=2000
dataDir=/home/xxxx/zookeeper/zookeeper-3.4.9/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=10.16.77.95:2888:3888
伪集群模式:
如果有一台比较好的机器, 为了充分利用资源,zookeeper也允许在一台机器上完成一个伪集群的搭建。所谓的伪集群就是集群所有机器都在一台机器上,但以集群的特性对外提供服务。只需更改zoo.cfg
tickTime=2000
dataDir=/home/xxxx/zookeeper/zookeeper-3.4.9/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=10.16.77.95:2888:3888
server.2=10.16.77.95:2889:3889
server.3=10.16.77.95:2890:3890