zookeeper 3.6.2 集群搭建(docker环境)

zookeeper 3.6.2 集群搭建(docker环境)

一、Zookeeper简介:

1.什么是zookeeper

​ ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

简单来说:Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目,在集群起协调作用

  • 接收观察者(集群中各个节点)的注册
  • 负责存储数据和管理数据
  • 存储的数据一旦发生变化,负责将这个信息告诉已在Zookeeper注册的观察者

2、zookeeper特点

  • Zookeeper: 一个领导者(leader),多个跟随者(Follower)组成的集群(一种主从架构)
  • Zookeeper集群中只要半数节点存活,Zookeeper集群就能正常服务(一般来说建议,集群中节点水量为奇数,最少3台)
  • 全局数据一致:只用leader节点提供读写服务,其他节点只提供读服务,每个Server保存的的都是leader上的副本,无论连接那一个Server,数据都是一致的
  • 更新请求顺序执行:来自同一个Client的更新请求都是按其发送顺序依次执行
  • 数据更新原子性:要么都成功,要么都失败
  • 实时性:在一定的时间范围内(较短),Client能读到最新的数据

3、应用场景

  • 统一命名服务
  • 统一配置管理
  • 统一集群管理
  • 服务器节点动态上下线
  • 软负载均衡

二、集群搭建

​ 需要一定的linux基础和Docker基础知识

2.1、环境准备

  • docker
  • centos 7 可以自己虚拟机,也可使用云服务器
  • xshell

2.2、安装docker

Docker安装比较简单,按照官网文档说明即可

官方安装说明各个版本都有
在这里插入图片描述

2.3、测试安装成功

在这里插入图片描述

输入docker --version出现如上版本信息即Docker安装成功

2.4、设置镜像加速器

docker提供的镜像需要从外网拉取,速度较慢,可以使用镜像加速器aliyuntianghuahuawei等都可

以aliyun加速器为例
在这里插入图片描述

注册阿里云账号,找的容器镜像服务可免费获取一个加速器地址

2.5、拉取Zookeeper镜像

执行命令将zookeepr的镜像拉取到本地(也可使用自己制作的zookeeper镜像)

docker pull zookeeper:latest

查看本地拉取到的镜像

docker images

在这里插入图片描述

创建容器网络通道,在docker中如果创建多个相不关联的集群,可为每个集群创建容器间的网络通道(非必须默认桥接模式)

docker network create -d bridge my-net

2.6、创建zookeeper容器

docker run -d --name zookeeper1 -p 2181:2181 --network=my-net --hostname zookeeper1 zookeeper
docker run -d --name zookeeper2 -p 2182:2181 --network=my-net --hostname zookeeper2 zookeeper
docker run -d --name zookeeper3 -p 2183:2181 --network=my-net --hostname zookeeper3 zookeeper

也可编写docker-compose.yml脚本,通过执行脚本一键搭建

–name: 指定容器名

–hostname: 指定容器主机名

-p: 端口映射

–network:指定容器间的通信网络

-d: 后台运行

如上创建了三个zookeeper容器并运行

在这里插入图片描述

端口说明:

  • 2181:对cline端提供服务

  • 3888:选举leader使用

  • 2888:集群内机器通讯使用(Leader监听此端口)

2.7、zookeeper集群配置

2.7.1、查看zookeeper的目录

进入容器zookeeper1中

docker exec -it zookeeper1 /bin/bash

~~在这里插入图片描述
进入根目录
image-20201102193340458
如图:为zookeeper的主要目录(其中conf为配置文件夹,data存放了节点数据信息)
配置集群时,主要配置这两了文件夹中的 zoo.cfg和myid文件
从容器中将文件拷贝到宿主机中进行修改后,再拷贝回去

docker cp zookeeper1:/conf/zoo.cfg zoo.cfg
docker cp zookeeper1:/data/myid myid

image-20201102193947243
在这里插入图片描述

2.7.2、修改zoo.cfg

在这里插入图片描述

如上配置配置文件,集群中所有节点的配置文件都是相同的所以,将其拷贝到各个节点即可

docker cp  zoo.cfg zookeeper1:/conf/zoo.cfg

配置文件配置完成

2.7.3、修改mybi文件

每个节点的mybi是不一样的(默认为1),且要与zoo.cfg中的节点序号对应

即:

zookeepeer1  --------->       1
zookeepeer2  --------->       2
zookeepeer3  --------->       3
echo 2 > mybi
docker  myid cp zookeeper2:/data/myid
echo 3 > mybi
docker  myid cp zookeeper3:/data/myid

mybi配置完成

2.7.4、重启容器

docker restart zookeeper1
docker restart zookeeper2
docker restart zookeeper3

2.7.5、查看容器IP

docker inspect zookeeper1

image-20201102200030824

依次查看zookeeper1zookeeper2zookeeper3

则:

zookeeper1  172.18.0.2
zookeeper2  172.18.0.3
zookeeper3  172.18.0.4

2.7.5、查看zookeeper运行状态

echo stat | nc 172.18.0.2 2181

在这里插入图片描述

image-20201102200439406

可知集群搭建完成,并选举zookeeper2为leader,zookeeper1、zookeeper3为Follower

接着便可以使用java调用zookeeper api进行后续开发

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值