.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); border-top-left-radius: 7px; border-top-right-radius: 7px; color: rgba(255, 255, 255, 1); height: 1.8em; line-height: 1.8em; padding: 5px }

1.介绍

  使用集群的方式避免单点故障时目前分布式应用实现高可用的重要手段,ZooKeeper同样可以搭建集群环境。

2.说明

  1)服务器名称与地址:

    集群信息(服务器编号,服务器地址,LF通信端口,选举端口);

    配置项的格式为:server.N=IP:A:B

    N:服务器编号

    IP:服务器的IP地址

    A:LF通信端口,用来和leader交换信息

    B:leader挂掉后选举新leader的端口

  注:一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。

  2)搭建集群的环境的两种方式:

    ①同一主机的不同服务;

      例:

      server.1=127.0.0.1:2018:6008

      server.2=127.0.0.1:2017:6007

      server.3=127.0.0.1:2019:6009

    ②不同主机的相同或不同服务

      例:

      server.1=233.34.9.145:2019:6009

      server.2=233.34.9.146:2019:6009

      server.3=233.34.9.147:2019:6009

3.搭建步骤

  这里以同一主机的不同服务为例。

  总体思路为:将原始的zookeeper压缩包解压;将解压复制后的zookeeper01修改一些公共配置,然后再复制两份;最后逐个修改各个服务的配置文件

  1)解压,复制

    ①tar -xzvf zookeeper-3.4.9.tar.gz

    ②cp -r zookeeper-3.4.9 zookeeper01

  2) 创建data数据文件和myid文件(myid文件定位服务)

    ①cd zookeeper01/

    ②mkdir data  //建数据目录文件

    ③cd data/

    ④touch myid  //创建myid文件

    ⑤echo 1 >> myid  //将服务器的编号写在这里面

  3)修改zookeeper01/conf/下的配置文件

    ①cp zoo_sample.cfg zoo.cfg

    ②vim zoo.cfg

      将其中的dataDir修改为之前建的data的所在路径;然后再其末尾加上  集群信息(服务器编号,服务器地址,LF通信端口,选举端口)保存退出。如下图:

  4)再复制两份

    cp -r zookeeper01/ zookeeper02

    cp -r zookeeper01/ zookeeper03

  5)将复制的修改其中的myid的2和3;

    echo 2 > /opt/zookeeper02/data/myid

    echo 3 > /opt/zookeeper03/data/myid

  6)复制后的再修改zoo.cfg中的dataDir和clientPort对应的值,如图:

    

4. 分别启动服务

  /opt/zookeeper03/bin/zkServer.sh start

  /opt/zookeeper02/bin/zkServer.sh start

  /opt/zookeeper01/bin/zkServer.sh start

  分别查看启动的状态

  /opt/zookeeper03/bin/zkServer.sh status

  /opt/zookeeper02/bin/zkServer.sh status

  /opt/zookeeper01/bin/zkServer.sh status

  若其状态为:Mode: follower 或 Mode: leader 表示启动成功。

  注意有时候,执行了启动命令,但是并未真的启动,所以需要查看状态。单个启动一个时可能会报错,需要一起启动其他的服务后,才能正常启动。

5.启动客户端,连接服务器

  在 -server 参数中指定要连接的服务器

  打开三个终端,分别输入

  /opt/zookeeper01/bin/zkCli.sh -server 127.0.0.1:2181

  /opt/zookeeper02/bin/zkCli.sh -server 127.0.0.1:2182

  /opt/zookeeper03/bin/zkCli.sh -server 127.0.0.1:2183

  如下图:

至此,三台服务搭建完成。在任何一台服务器上操作(增删节点,设置、修改节点值),在其他的服务器均能看到同步的数据

zookeeper的集群搭建的更多相关文章

  1. 分享知识-快乐自己:zookeeper 伪集群搭建

    1):单一 zookeeper  搭建步骤 2):zookeeper 伪集群搭建 1):新建一个集群目录 [root@zoodubbo opt]# mkdir zookeeper_cluster 2) ...

  2. zookeeper伪集群搭建

    zookeeper伪集群搭建 1. 下载zookeeper: https://zookeeper.apache.org/ 2. 解压: tar -zxvf zookeeper-3.4.14.tar.g ...

  3. Zookeeper分布式集群搭建

    实验条件:3台安装linux的机子,配置好Java环境. 步骤1:下载并分别解包到每台机子的/home/iHge2k目录下,附上下载地址:http://mirrors.cnnic.cn/apache/ ...

  4. 初始zookeeper与集群搭建实例

    zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务, ...

  5. Zookeeper + Kafka 集群搭建

    第一步:准备 1. 操作系统 CentOS-7-x86_64-Everything-1511 2. 安装包 kafka_2.12-0.10.2.0.tgz zookeeper-3.4.9.tar.gz ...

  6. [dubbo实战] dubbo+zookeeper伪集群搭建

    zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协 ...

  7. [dubbo实战] dubbo+zookeeper伪集群搭建 (转)

    zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一 个主控. ...

  8. 初识ZooKeeper与集群搭建实例

    原文链接:http://www.linuxidc.com/Linux/2015-02/114230.htm zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Ch ...

  9. Zookeeper+ActiveMQ集群搭建

    搭建三台虚拟机安装centos7.要提前安装好jdk环境 1.环境准备,搭建三台虚拟机ip分别是 192.168.192.130 192.168.192.131 192.168.192.134 Zoo ...

  10. JAVAEE——宜立方商城08:Zookeeper+SolrCloud集群搭建、搜索功能切换到集群版、Activemq消息队列搭建与使用

    1. 学习计划 1.solr集群搭建 2.使用solrj管理solr集群 3.把搜索功能切换到集群版 4.添加商品同步索引库. a) Activemq b) 发送消息 c) 接收消息 2. 什么是So ...

随机推荐

  1. 27、Tomcat服务的安装与配置

    服务器名称 ip地址 slave-node1 172.16.1.91 27.1. Tomcat简介: Tomcat是Apache软件基金会(Apache Software Foundation)的Ja ...

  2. nginx开启tls1.2及一些注意问题

    因为http传输是明文,通过抓包很容易获取到报文, 所以现在很多站点都开启了https,HTTPS在HTTP的基础上加入了SSL协议,对传输的数据进行加密. 目前主流的ssl协议是tlsv1.2 ng ...

  3. <jsp:param>传递参数,出现乱码问题

    今天在学习<jsp:forward>和<jsp:param>时,用<jsp:param>传递参数时,出现乱码问题,部分代码如下: 1 <jsp:forward ...

  4. STM32笔记一

    1.脉冲宽度调制是(PWM):用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量.通信到功率控制与变换的许多领域中.一般用于直流电机调速. 2.外部中断:外部中断是单片机实 ...

  5. if语句 条件测试 shell编程之条件语句

    shell 编程之条件语句一.条件测试  ① test命令 测试  ② 文件测试  ③ 整数值比较  ④ 字符串比较  ⑤ 逻辑测试二.if语句的结构  单分支结构  双分支结构  多分支结构三.ca ...

  6. c语言:putchar

    函数:1.C语言是一门函数语言,由多个函数组成,至少有一个主函数.2.主函数的写法:下面四种写法都正确 main() main(void) int main() int main(void):int表 ...

  7. MySQL主从复制的简单搭建

    @ 目录 1.MySQL一主一从的简单搭建 1.1.主从复制简介 1.2.MySQL主从复制简介 1.3.主从复制的架构 1.4.前期准备 1.5.主要配置实现 1.5.1.测试环境 1.5.2.配置 ...

  8. 前端开发入门到进阶第五集【安装SublimeServer】

    参考:https://www.cnblogs.com/jf-67/p/8031614.html 1.我们可以直接在sublime text里面安装,Ctrl+shift+p进入命令模式,输入insta ...

  9. 国产计算框架Mindspore1.3.0 gpu源代码中的cmake文件存在问题(bug),openmpi的url错误,导致不能正常编译——成功解决mindspore-gpu-1.3.0版本不能从源代码中编译的问题

    mindspore 的 r1.3 分支 在gpu方式编译下存在问题,无法编译,具体编译结果参考: https://www.cnblogs.com/devilmaycry812839668/p/1505 ...

  10. 【转载】PHP 程序员进阶之路

    原文:没有Nginx,你还能做什么? PHP程序员的未来不是Java,Java拯救不了你. 已经1368年了,你扪胸自问,没有了Nginx的你,还能用PHP做什么.有一些高端的刁民会愤怒地说:&quo ...