由于公司服务器数量的限制,我们往往没有那么多的服务器用来搭建zookeeper的集群,所以产生了伪集群的搭建,也就是将多个zookeeper搭建在同一台机器上。

准备工作:

1,一台服务器,我们这里用虚拟机来代替,虚拟机上将jdk安装好。

2,将zookeeper安装包上传到虚拟机上。

3,将Zookeeper解压 ,创建data目录(存放数据的目录) ,将 conf下zoo_sample.cfg 文件改名为 zoo.cfg

4,建立/usr/local/zookeeper-cluster目录,将解压后的Zookeeper复制到以下三个目录(当然也可以自己定义目录)

[root@localhost ~]# mkdir /usr/local/zookeeper-cluster
[root@localhost ~]# cp -r zookeeper-3.4.6 /usr/local/zookeeper-cluster/zookeeper-1
[root@localhost ~]# cp -r zookeeper-3.4.6 /usr/local/zookeeper-cluster/zookeeper-2
[root@localhost ~]# cp -r zookeeper-3.4.6 /usr/local/zookeeper-cluster/zookeeper-3

5,配置每一个Zookeeper 的dataDir(zoo.cfg) clientPort 分别为2181  2182  2183

修改/usr/local/zookeeper-cluster/zookeeper-1/conf/zoo.cfg,  同理修改其他两个。

clientPort=2181
dataDir=/usr/local/zookeeper-cluster/zookeeper-1/data

配置集群:

1,在每个zookeeper的 data 目录下创建一个 myid 文件,内容分别是1、2、3 。这个文件就是记录每个服务器的ID

echo "1" > /usr/local/zookeeper-cluster/zookeeper-1/data/myid
echo "2" > /usr/local/zookeeper-cluster/zookeeper-2/data/myid
echo "3" > /usr/local/zookeeper-cluster/zookeeper-3/data/myid

2,在每一个zookeeper 的 zoo.cfg配置客户端访问端口(clientPort)和集群服务器IP列表。即在每个zoo.cfg的末尾加上(机器的ip是你自己的机器ip):

server.1=192.168.25.140:2881:3881
server.2=192.168.25.140:2882:3882
server.3=192.168.25.140:2883:3883

3,启动集群:

./zkServer.sh start

4,查看zookeeper状态

./zkServer.sh status

PS:

当集群中的主服务器挂了,集群中的其他服务器会自动进行重新选举状态,然后产生新得leader。当领导者产生后,再次有新服务器加入集群,不会影响到现任领导者。

集群中挂掉的最大数不能超过半数,不然集群就不能投票选举leader了,集群就gg了。

Dubbox连接zookeeper集群

修改服务提供者和服务调用者的spring 配置文件

<!-- 指定注册中心地址 -->
<dubbo:registry
protocol="zookeeper" address="192.168.25.140:2181,192.168.25.140:2182,192.168.25.140:2183">
</dubbo:registry>

最新文章

  1. nginx 添加nginx-http-concat模块
  2. 使用SQL Server 扩展事件来创建死锁的时间跟踪
  3. Gnu C的不同于标准C的语法
  4. Python之路,day5-Python基础
  5. 封装自己的printf函数
  6. Linux中升级更新命令yum upgrade和yum update的区别
  7. oracle 11g不能连接报ORA-12537+ora-609解决
  8. 必胜宅急送Web app设计背后的思考
  9. bootstrap新闻模块样式模板
  10. 【转】C++ stringstream介绍,使用方法与例子
  11. Android生存指南:Eclipse快捷键
  12. 多重集组合数 (DP)
  13. 九 Android基本知识介绍
  14. Numpy 基础运算1
  15. ios下,&lt;input type=&quot;checkbox&quot;&gt; 点击时出现黑色块
  16. SpringBoot+logback实现日志打印
  17. 继承Tcalendar控件,让当天日期醒目显示
  18. PHP 图片处理类 错误处理方法:
  19. 用 GSL 求解超定方程组及矩阵的奇异值分解(SVD) 2
  20. Python闲谈(一)mgrid慢放

热门文章

  1. Could not publish to the server.Please assign JRE to the server
  2. 可视化CNN神经网路第一层参数
  3. Raspberry Pi 配置
  4. c++ 基础知识 0001 const 知识2
  5. Chrome 的书签太多如何分类整理比较好
  6. 【转】C# Socket编程(5)使用TCP Socket
  7. 不得不注意tornado多进程部署的副作用
  8. 一个工程实例来学习 Makefile
  9. (转)Android 使用com.j256.ormlite
  10. (转)setTextColor()的参数设置方式