.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. Error in render: "TypeError: Cannot read property '' of undefined"

    描述 在用Vue的时候出现了一个令人窒息的错误 报错显示 "avatar" 未定义,但在postman中测试返回的数据确实有"avatar",可是为什么未找到? ...

  2. Https:证书生成 .p12 .keyStore 和 .truststore文件理解

    当我们需要SSL证书时,可以自动生成SSL证书,但是每个系统都申请一次证书会比较麻烦,所以用到了如下几个文件格式:   .p12(PKCS #12) 我们的每一个证书都可以生成一个.p12文件,这个文 ...

  3. MySQL 卡死的问题

    1. 执行show full processlist观察state和info两列,查看有哪些线程在运行. 2.使用kill命令+对应线程前面id杀死卡死的线程. 其他的方式: -- 查询是否锁表 sh ...

  4. GIS坐标系测绘原理:大地水准面/基准面/参考椭球体/EPSG/SRI/WKT

    预热文章系列:<GIS历史概述与WebGis应用开发技术浅解>.<GIS坐标系:WGS84,GCJ02,BD09,火星坐标,大地坐标等解析说与转换>.<OGC标准WMTS ...

  5. iOS基于AVFoundation实现朗读文字

    iOS基于AVFoundation实现朗读文字 1.心理建设 众所周知AVFoundation的朗读是个智障语气,所以想不花钱就只能忍着. 2.speechManager @import AVFoun ...

  6. 前端009-vue框架

    vue-admin-element https://panjiachen.github.io/vue-element-admin-site/zh/ 基于vue的生态做的很好,提供的很多的文档,中文.并 ...

  7. BPDU、Hybrid、MSTP

    BPDU.Hybrid.MSTP      一.BPDU         1)BPDU概述         2)BPDU类型         3)BPDU报文字段      二.Hybrid     ...

  8. JAVA基础之JDK、JRE、JVM关系

    什么是JRE和JDK JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE.所以安装了JDK,就不 ...

  9. Linux从入门到进阶全集——【第十四集:Shell编程-export命令】

    参考: https://www.cnblogs.com/guojun-junguo/p/9855356.html 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量 ...

  10. 微信小程序云开发-数据库表创建和操作

    一.新建云数据库 进入[云开发]界面,点击[数据库]>添加>创建集合>确定. 二.向数据库中添加数据 选中[数据库],点击[添加记录],向数据库中添加记录 添加[字段]和[值],并选 ...