.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. 解决WebStorm开发vue提示Module is not installed、Unresolved variable or type

    WebStorme2021.1版本: Setting->Languages->JavaScript->Webpack由原先的disable选为Automatically即可(右下角弹 ...

  2. 前端 JavaScript 实现一个简易计算器

    前端使用 JavaScript 实现一个简易计算器,没有难度,但是里面有些小知识还是需要注意的,算是一次基础知识回顾吧. 题目 实现一个简易版的计算器,需求如下: 1.除法操作时,如果被除数为0,则结 ...

  3. 【Azure 应用服务】Azure Function App 执行PowerShell指令[Get-Azsubscription -TenantId $tenantID -DefaultProfile $cxt]错误

    问题描述 使用PowerShell脚本执行获取Azure订阅列表的指令(Get-Azsubscription -TenantId $tenantID -DefaultProfile $cxt).在本地 ...

  4. 信息论估计工具jidt基本使用

    JIDT基本介绍 JIDT是 Java Information Dynamics Toolkit的简称,用于研究复杂系统中信息论相关度量的计算,它是一个基于java的开源工具库,也可以在Matlab. ...

  5. Docker安装单点RabbitMQ

    环境准备 Centos 7.5 docker环境 安装步骤 拉取镜像 $ docker pull rabbitmq:management 说明: 获取rabbiymq镜像的时候要记得获取managem ...

  6. ExtJs4学习(八)数据代理Proxy

    ExtJs数据代理我们介绍常用的四种,但会着重介绍ajax代理,因为日常开发中,这个最为常用 Ext.data.proxy.Ajax AjaxProxy(Ajax数据代理类)是你的应用程序中使用最广泛 ...

  7. mysql日期时间处理

      获得当前周的周一到周日 select subdate(curdate(),date_format(curdate(),'%w')-1)//获取当前日期在本周的周一 select subdate(c ...

  8. JDK环境配置: javac is not recognized as an internal or external command, operable program or batch file

    相信大家在配置TestNG的时候,首先都会去确认JDK的安装是否正确,两个命令缺一不可. 打开'cmd' --> 1. 输入'java -version', 返回java home当前路径. j ...

  9. python得到当前版本号

    import sys print(sys.winver) 3.7 # 导入sys模块的argv,winver成员,并为其指定别名v.wv from sys import argv as v, winv ...

  10. Day2基本数据类型 字节 和类型转换

    Java基础语法 注释 1.单行注释:// 加内容 2.多行注释:/* 多行注释 */ 3.文档注释: /** * * */ 有趣的注释 标识符 关键字 基本数据类型 八大基本数据类型 //整数​in ...