Zookeeper介绍与部署(Linux)

Zookeeper介绍与部署(Linux)

一、Zookeeper 是什么

1 、Zookeeper 是一个 分布式协调服务。

它本身是一个 分布式中间件 ,主要用来解决分布式系统中节点之间的协调、数据一致性和服务发现问题。

2 、常见用法包括:

注册中心(Dubbo、Kafka、Hadoop 等都会用)

分布式锁

配置管理

Leader 选举

3 、中间件

它是一个独立的软件,提供协调和注册的能力。

不直接承载业务逻辑,但为分布式应用提供关键能力(注册、发现、同步、协调)。

可以理解为分布式系统的 "大脑 + 电话簿"。

4 、在 Dubbo 里的作用

在 Dubbo 架构中,Zookeeper 主要用作 注册中心

  1. 服务注册
    • Provider 启动后,把自己的信息(服务名、地址、端口、版本号)注册到 Zookeeper。
  2. 服务发现
    • Consumer 启动时,去 Zookeeper 查找 Provider 的信息。
    • 如果有多个 Provider,Zookeeper 会把所有可用地址都返回,Dubbo 框架做负载均衡。
  3. 动态感知
    • Provider 下线或挂掉 → Zookeeper 立刻通知 Consumer,让 Consumer 自动切换到别的 Provider。
    • 保证服务的 高可用性
  4. 数据一致性
    • Zookeeper 内部用 ZAB 协议 保证数据一致性,所有服务的注册信息在整个集群里是一致的。

二、zookeeper 的部署

官网下载地址:Apache ZooKeeper

下载安装包到本地:

利用终端工具将其上传到虚拟机

解压到当前文件夹:(作者将求其放到了opt文件夹下)

tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz

进入到

cd apache-zookeeper-3.6.3-bin/conf

将zoo_sample.cfg 改名为zoo.cfg

mv zoo_sample.cfg zoo.cfg

添加配置:

clientPortAddress=0.0.0.0

添加环境

vi /etc/profile

#这里写刚刚下载的路径

export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.6.3-bin

export PATH=PATH:ZOOKEEPER_HOME/bin

保存并退出,刷新环境变量

source /etc/profile

启动zookeeper

zkServer.sh start

查看状态,如图启动成功

三、集群部署

准备三台虚拟机:

master:192.168.81.131

slave1:192.168.81.132

slave2:192.168.81.133

在master虚拟机上

cd apache-zookeeper-3.6.3-bin/conf

添加配置:

dataDir=/opt/apache-zookeeper-3.6.3-bin/data

server.1=master:2888:3888

server.2=slave1:2888:3888

server.3=slave2:2888:3888

(注意:要把之前默认的dataDir=/var/lib/zookeeper注释掉。)

如果要像我一样写主机名,要在/etc/hosts配置里要添加映射:如:

192.168.81.131 master

192.168.81.132 slave1

192.168.81.133 slave2

将部署的zookeeper分发到slave1和slave2

scp -r /opt/apache-zookeeper-3.6.3-bin @slave1:/opt/

scp -r /opt/apache-zookeeper-3.6.3-bin @slave2:/opt/

将环境变量分发到其他:

scp /etc/profile @slave1:/etc

scp /etc/profile @slave2:/etc

到其他两台机器上

source /etc/profile

在master上

echo 1 > /opt/apache-zookeeper-3.6.3-bin/data/myid

echo 2 > /opt/apache-zookeeper-3.6.3-bin/data/myid

echo 3 > /opt/apache-zookeeper-3.6.3-bin/data/myid

在三台虚拟机上分别启动zookeeper

zkServer.sh start

如果已启动,则重启:

zkServer.sh restart

查看状态(注意一定要是都关闭防火墙的状态!!)

zkServer.sh status'

会有两台台follower 和 一台leader

如图:

就此,zookeeper部署完毕。。。。。。

相关推荐
艾莉丝努力练剑7 分钟前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
小天源11 分钟前
Cacti在Debian/Ubuntu中安装及其使用
运维·ubuntu·debian·cacti
Trouvaille ~33 分钟前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
芷栀夏41 分钟前
深度解析 CANN 异构计算架构:基于 ACL API 的算子调用实战
运维·人工智能·开源·cann
全栈工程师修炼指南1 小时前
Nginx | stream 四层反向代理:SSL、PREREAD 阶段模块指令浅析与实践
运维·网络·网络协议·nginx·ssl
旖旎夜光1 小时前
Linux(13)(中)
linux·网络
威迪斯特2 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.2 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔2 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
m0_694845572 小时前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp