.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. JavaScript基础以及进阶知识

    JavaScript基础知识回顾: 目录: 比较运算符 多行字符串,模板字符串 严格模式 函数定义和调用 变量作用域与解构赋值.NameSpace.块级作用域let.const 方法 高阶函数 闭包 ...

  2. gitlab找回管理员密码

    1.登陆后台服务器,切换git用户 su - git 2.登录GitLab的Rails控制台 gitlab-rails console production 另一种 切换root账户 执行:  git ...

  3. Linux创建ftp并设置权限以及忘记ftp帐号(密码)修改 (转)

      忘记ftp密码修改方法:1.登录服务器 cd  /etc/vsftpdcat ftpusers找到对应的ftp用户名 (如果用户名也忘记了 那么 cd /etc 然后cat passwd 查看用户 ...

  4. [开源名人访谈录] Philippe Gerum

    译至:http://www.advogato.org/article/803.html 译者按:这篇采访的时间很早,但有助于你了解Xenomai相关的背景. 这是对菲利普格鲁姆,ADEOS项目的共同领 ...

  5. HAL库直流电机编码测速(L298N驱动)笔记

    主函数开始后的处理流程: 1.外设初始化:HAL_Init() 2.系统时钟配置 RCC振荡器初始化:HAL_RCC_OsConfig() RCC时钟初始化:HAL_RCC_ClockConfig() ...

  6. Kong的API管理方式

    目录 Kong 的管理方式 1. kong的关键术语 Service: Route: Upstream: Target: API: Consumer: Plugin: 2. 如何通过配置KONG AP ...

  7. Django基础-002 Models的属性与字段

    1.models字段类型 AutoField():一个IntegerField,根据可用ID自动递增.如果没指定主键,就创建它自动设置为主键. IntegerField():一个整数: FloatFi ...

  8. WIN10 GMSSL编译

    从git上拉取GMSSL代码 从http://gmssl.org/上可以拉取,或者直接从git上https://github.com/guanzhi/GmSSL拉也行. 我是在git上下的,文件为gm ...

  9. C语言:渔夫打鱼晒网问题

    //如果一个渔夫从 2011 年 1 月 1 日开始三天打渔,两天晒网,编程实现当输入 2011 1 月 1 日以后的任意一天,输出该渔夫是在打渔还是在晒网. #include <stdio.h ...

  10. ZooKeeper 分布式锁 Curator 源码 02:可重入锁重复加锁和锁释放

    ZooKeeper 分布式锁 Curator 源码 02:可重入锁重复加锁和锁释放 前言 加锁逻辑已经介绍完毕,那当一个线程重复加锁是如何处理的呢? 锁重入 在上一小节中,可以看到加锁的过程,再回头看 ...