组件

ZooKeeper集群搭建

ZooKeeper集群搭建
zookeeper
答え
16/12/23 5:19
A. 资源与参考文档
 

B. 实践

ZooKeeper集群采用选举制度,保证总是有一台机器做Leader。一般来说,集群采用奇数台机器。所以,三台机器的集群可以保证当一台机器挂掉时集群任然可用,同理,五台的集群可以保证两台挂掉集群依然可用。反之,如果是4台机器的集群,最多也只能有一台机器不可用,集群才能正常工作(与三台机器的集群相比无任何优势)。显然,集群至少需要3台机器
 
QA环境集群机器为:10.203.25.121/122/123
 
安装过程和单机安装类似,特殊步骤如下:
1. 配置文件必须指明集群中每台机器的信息,这些信息采用这种格式 server.id=host:port:port
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/midware/apps/zookeeper-3.4.9/data
dataLogDir=/midware/apps/zookeeper-3.4.9/logs
clientPort=4180
server.1=10.203.25.121:2888:3888
server.2=10.203.25.122:2888:3888
server.3=10.203.25.123:2888:3888
2. 在服务器数据目录(即配置文件中dataDir指定的目录)中创建myid文件,文件内容为一个数字,即配置文件中 server.id=host:port:port 指定的 id 值。注意,该值取值范围为 1 到 255。
 
3. 分别启动每个ZooKeeper服务
bin/zkServer.sh start
 
4. 查看集群状态
bin/zkServer.sh status
该命令可以查看服务启动情况。如果是集群,还能看到当前机器是leader还是follower。
发现启动失败
 
5. 查看系统日志
系统日志打印到 bin 目录下的 zookeeper.out,原因不详,以后研究
 
发现原因是这批机器JDK版本过低,所以需要指定JAVA_HOME
 
目前采用的方法是修改zkServer.sh文件,增加
JAVA_HOME=/midware/software/jdk1.6
 
6. 每台启动成功后尝试访问任何一台,没问题。kill掉leader服务器,集群依然可用。至此,集群搭建成功。(撒花~~~~)
 
 

C. Java客户端连接集群的方式

用逗号分隔的服务器IP:端口列表表示连接信息串,例如
new ZooKeeper("10.203.25.121:4180,10.203.25.122:4180,10.203.25.123:4180", 300000, null);
 
 
 
 
 
0 (0 投票)