zookeeper集群版搭建
首先zookeeper的集群搭建是基于单机版搭建的,如没搭建过zookeeper单机版请查看我之前的一篇文章
zookeeper 搭建集群一般是奇数台服务器,因为zookeeper只要有半数以上的服务器没有挂就可以使用,如我们有5台,挂了2台,还剩3台,剩下半数以上,可以继续使用。但是如果挂了3台,剩两台就不行了,假设我们再加一台,现在变为6台了,这时挂了3台,正好是半数,这种情况是不可以使用的,所以5台和6台都仅仅允许挂3台,所以我们在搭建的时候往往会选择搭建奇数台。
首先给linux配置几个虚拟ip,作为与docker的映射
zk1 192.168.46.237
zk2 192.168.46.238
zk3 192.168.46.239
进入之前单机版安装了zookeeper的docker容器,做以下修改
在根目录 下 创建文件夹 zk ,在zk下创建 两个文件夹一个 为data,一个为 log,在 data下创建一个文件夹 touch myid
修改 zookeeper目录下的conf文件下的 zoo.cfg配置文件
保存退出,然后退出容器 ctrl + D
将zookeeper这个容器 打包成镜像
docker ps -a 查看容器
docker commit 容器id zookeeper:v1
删除之前配置的容器
docker stop 容器id 先暂停
docker rm 容器id 再删除
通过刚才打包好的镜像,生成新的docker容器
docker run --privileged=true -itd -p 192.168.46.237:2181:2181 -p 192.168.46.237:2888:2888 -p 192.168.46.237:3888:3888 7d1aaaf4a688 /bin/bash
进入容器 docker exec -it 7d1aaaf4a688 /bin/bash
# cd /zk/data/
# vi myid
里面写个1,代表配置的第一个 zookeeper
保存退出
关闭防火墙 service iptables stop
启动服务 zkServer.sh start
然后退出容器
通过镜像创建第二个容器
docker run --privileged=true -itd -p 192.168.46.238:2181:2181 -p 192.168.46.238:2888:2888 -p 192.168.46.2
5954f4ff835d0acb37f642985165bc741c18321dc1db7614e0ec4be179d92278
同样, cd /zk/data 然后 vi myid ,这次里面写个2 代表第二个zookeeper服务器
保存退出
关闭防火墙 service iptables stop
启动服务 zkServer.sh start
再退出容器,创建第三个容器,同理,不再赘述
如果 主节点挂了,由从节点代替,其中的一个从节点会成为主节点,这个从节点是主节点没有挂之前选出来的。就像古代皇帝没死之前会先选出太子一个道理。
测试
public static void main(String[] args) {
//配置连接地址
ZkClient client = new ZkClient("172.17.0.15:2181,172.17.0.16:2181,172.17.0.17:2181");
//创建一个目录
client.createPersistent("/zzh/abc");
//向这个目录中写信息
client.writeData("/zzh/abc", "aaaaa");
//从这个目录中读信息
Object readData = client.readData("/zzh/abc");
//打印输出
System.out.println(readData);
}
结果
如果报错,说socket 连接失败,那么需要在命令提示符(管理员) 添加路由
上一篇: 12个进程管理命令介绍
下一篇: 数据库相关
推荐阅读
-
搭建MongoDB集群
-
Hadoop集群(CDH4)实践之 (3) Hive搭建
-
标准版Eclipse搭建PHP环境的详细步骤_PHP
-
ActiveMQ基于zookeeper的主从(levelDB Master/Slave)搭建
-
spring boot + quartz集群搭建的完整步骤
-
SpringCloud用Zookeeper搭建配置中心的方法
-
详解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
-
spring boot + quartz集群搭建的完整步骤
-
使用docker快速搭建Spark集群的方法教程
-
SpringCloud用Zookeeper搭建配置中心的方法