搭建 zookeeper 集群,笔者这里使用3台 centos7 服务器,它们 ip 分别是 192.168.0.125;192.168.0.123;192.168.0.117,后面简称 125,123,117

然后为3台服务器配置 java 环境,笔者这里的3台服务器已经成功安装 java 环境,没有安装 java 环境的朋友可以参考:https://blog.csdn.net/wsjzzcbq/article/details/82818826

目录

1、官网下载 zookeeper

2、安装 zookeeper

3、启动集群

4、添加 nginx

5、集群测试

5.1、测试集群间数据同步

5.2、测试集群中 leader 节点挂掉的情况


1、官网下载 zookeeper

zookeeper 官网地址:https://zookeeper.apache.org/

下载最新稳定版本3.7.0

点击下载

2、安装 zookeeper

下载完成后,将安装包上传到3台服务器中的一台,笔者这里上传到 125 服务器

然后将安装包上传到其他2台服务器,或者通过 scp 命令将安装包复制到另外2台服务器

笔者这里使用 scp 命令进行复制

scp /root/apache-zookeeper-3.7.0-bin.tar.gz root@192.168.0.123:/root
scp /root/apache-zookeeper-3.7.0-bin.tar.gz root@192.168.0.117:/root

3台服务器都有 zookeeper 安装包后,分别创建 zookeeper 安装目录

分别在 3 台服务器的 /usr/local 目录下创建 zookeeper 目录

mkdir -p /usr/local/zookeeper

然后将 zookeeper 安装包解压到新创建的 zookeeper 安装目录

tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /usr/local/zookeeper

解压完成后,分别进入 3 台服务器的 zookeeper 安装目录,修改配置文件

进入安装目录

cd /usr/local/zookeeper/apache-zookeeper-3.7.0-bin/

进入conf目录

cd conf

复制修改文件名

分别将 3 台服务器的 zoo_sample.cfg 复制为 zoo.cfg

cp zoo_sample.cfg zoo.cfg

查看配置文件 zoo.cfg

vi zoo.cfg

dataDir 配置 zookeeper 数据存放目录,笔者这里使用默认的 /tmp/zookeeper,此时 /tmp 目录下还没有 /zookeeper 目录

知道默认的数据存放目录后,进入/tmp 目录,创建 zookeeper 目录

cd /tmp

创建 zookeeper 目录

mkdir zookeeper

然后进入创建的 zookeeper 目录

cd zookeeper

创建一个 myid 的文件

这个 myid 的文件是搭建集群用的,需要放在 dataDir 指定的目录下(即默认的 /tmp/zookeeper)

touch myid

创建后,编辑 myid

vi myid

125 的 myid 是1, 123 的 myid 是2, 117 的 myid 是3,这个 myid 相当于是节点在集群中的唯一标识 ,后面会用到

3 台机器的 myid 都配置完成后,分别在3台机器的 zoo.cfg 文件中配置集群信息

cd /usr/local/zookeeper/apache-zookeeper-3.7.0-bin/conf

编辑 zoo.cfg

vi zoo.cfg

配置节点集群信息

server.1=192.168.0.125:2888:3888
server.2=192.168.0.123:2888:3888
server.3=192.168.0.117:2888:3888

server. 后面的 1、2、3 是上面的 myid,这个 myid 要和后面的 ip 地址保持一致

2888 端口和 3888 端口是随意的,也可以使用其他端口号

配置集群信息后

开放防火墙 2181 2888 3888 端口

firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent

开放后,更新防火墙规则(无需断开连接,动态添加规则)

firewall-cmd --reload

3、启动集群

分别进入 3 台服务器的 bin 目录,启动 zookeeper

进入bin目录

cd /usr/local/zookeeper/apache-zookeeper-3.7.0-bin/bin

启动

./zkServer.sh start

启动后查看各个节点状态

./zkServer.sh status

可以看到,117成为了 leader 另外2个是 follower

集群搭建成功

4、添加 nginx

nginx 配置如下,监听 2181 端口

stream {server {listen 2181;proxy_pass zookeepers;}upstream zookeepers {server 192.168.0.125:2181;server 192.168.0.123:2181;server 192.168.0.117:2181;}
}

5、集群测试

5.1、测试集群间数据同步

新增一条数据,测试集群间数据同步

新建 maven 项目,添加依赖

<dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>5.2.1</version>
</dependency>

新建 Demo 类

package com.learn.zookeeper;import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.data.Stat;/*** Demo** @author wsjz* @date 2022/05/10*/
public class Demo {public static void main(String[] args) throws Exception {CuratorFramework curator =CuratorFrameworkFactory.builder().connectString("localhost:2181").retryPolicy(new ExponentialBackoffRetry(1000, 3)).build();curator.start();curator.create().creatingParentsIfNeeded().forPath("/name", "hello world".getBytes());byte[] bytes = curator.getData().storingStatIn(new Stat()).forPath("/name");System.out.println(new String(bytes));}
}

运行 Demo

创建 /name 节点

使用 zkCli zookeeper客户端查看各个节点数据

./zkCli.sh

查看 /name 节点数据

get /name

查看3台服务器的节点数据

3 台服务器的 zookeeper 中都有 /name 数据,说明集群间数据同步没问题

5.2、测试集群中 leader 节点挂掉的情况

这里将 117 上的 zookeeper 关闭,看其他 2 个节点的情况

./zkServer.sh stop

查看 zookeeper 状态

./zkServer.sh status

可以看到,123 成为了新的 leader

至此完

linux 使用 nginx 搭建 zookeeper 集群相关推荐

  1. linux下搭建zookeeper集群

    linux下搭建zookeeper集群 1.准备 1.下载zookeeper压缩包 (注:下载3.4.14版本,3.5以上运行时会少jar包) 2.系统:centOS7 安装好java环境 3.将压缩 ...

  2. 微信公众号 多台服务器,在多台 Linux 服务器上搭建 Pulsar 集群

    作者:高天赐 编辑:Irene Pulsar 是一个支持多租户的.高性能的消息中间件.上一篇我们介绍了如何在 Mac 上搭建 Pulsar 集群,本文详细介绍如何在 3 台 Linux 服务器上搭建 ...

  3. 在Linux内网搭建K8s集群

    文章目录 前言 准备工作 安装步骤 设置主机名 配置系统环境 添加 hosts(主) Docker安装 K8s组件安装 集群初始化(主) 工作节点加入集群(工) 安装容器网络插件(主) 测试 等待集群 ...

  4. 使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇

    使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用Cloudera Manager搭建zo ...

  5. 集群(三)——haproxy+nginx搭建web集群

    集群(三)--haproxy+nginx搭建web集群 一.Haproxy 前言 二.Haproxy 简介 1.常见的web集群调度器 2.Haproxy应用分析 3.Haproxy高性能负载均衡的主 ...

  6. 基于docker搭建zookeeper集群、kafka集群(多台真机之间的集群)

    基于docker搭建zookeeper集群.kafka集群---二(多台真机之间的集群) https://blog.csdn.net/diebiao6526/article/details/10143 ...

  7. dockerer-compose搭建zookeeper集群,工作中最新亲测能用,超详细

    作为一名菜鸟Java工程师,公司这几天让我搭建zookeeper集群,对于搭建过的人来说十分简单,对zookeeper不太熟悉的人来说还是有一定难度的,这一周我在公司的角色更像是运维人员搭建各种集群, ...

  8. 基于docker搭建zookeeper集群、kafka集群

    zookeeper集群搭建 https://www.cnblogs.com/znicy/p/7717426.html     #Docker中搭建zookeeper集群,昵称:zni.feng htt ...

  9. 基于centos8搭建zookeeper集群

    [README] 本文基于centos8 搭建 1,其他linux版本,命令可能不同: 2,集群包括3个节点,如下(因为采用NAT模型进行网络连接,需要让windows和linux机器在同一个网段): ...

最新文章

  1. 网易智慧企业Node.js实践(1) | Node应用架构设计和React同构
  2. 51单片机开发板(W25Q16学习)
  3. 线上故障如何快速排查?来看这套技巧大全
  4. HDU - 5008 Boring String Problem(后缀数组+二分)
  5. yarn安装依赖包报错 error An unexpected error occurred: “https://registry.npm.taobao.orgnpm/element-ui: get
  6. CRITIC法之python
  7. 我最开始学dancing link的HTML5的时候
  8. 给大家讲一个被社区团购小程序套路的经历吧
  9. PyTorch学习笔记(七):PyTorch可视化
  10. 牛客——数据库实战(31~61)
  11. Jupyter Notebook 快速入门
  12. 手机怎么用外嵌字幕_iphone 12发布 ! “预购、定金、尾款、换手机”用英语怎么说?...
  13. 小米笔记安装双系统linux,小米笔记本电脑怎么安装双系统?-小米win7
  14. java 定时为每月10号,Spring 定时任务如何实现每周一某个时间执行?
  15. 一句话道破X64和X86的区别
  16. 吴家坟女子专修学院郭杜校区计算机分院的学年总结
  17. yxc_第二章 数据结构(一)_栈和队列
  18. Go语言经典库使用分析(六)| Negroni 中间件(二)
  19. Python学习资源
  20. linux qt 字体哪个好,QT的的字体使用(全局自带字体特别好用)

热门文章

  1. 【pyhon】理想论坛爬虫1.05版,将读取和写DB分离成两个文件
  2. 【设计】电流偏置设计
  3. 计算机专业的创意文案,高考借势广告文案又双叒叕来了,这些借势扎心了!
  4. 跨境电商货源采购平台有哪些?
  5. vga转html电脑打不开,VGA切换器使用方法和常见问题说明
  6. Neuron:自动优化TMS线圈放置,实现个性化靶向功能网络刺激
  7. 解决ios下的微信页面背景音乐无法自动播放问题
  8. cmd 更改计算机名
  9. 任务16:16_Flume案例_断点续传文件(案例测试)
  10. 靠谱的HEVC方案-软编解码器