基于 Zookeeper 部署 Kafka 集群

文章目录

1、前期准备

本次集群搭建使用:3 Zookeeper + 3 Kafka,所以我在阿里云租了3台ECS用于本次集群搭建,服务器相关配置如下:

  • 操作系统:Ubuntu 22.04
  • 配置:2核4G
  • 硬盘:40G
  • Zookeeper 版本:3.4.14
  • Kafka 版本:2.2.0

本次部署资源分配如下:

2、安装 JDK 8

在三台服务器上,依次执行下述命令安装好 JDK 8,命令如下:

shell 复制代码
# 更新库
sudo apt update

# 安装 jdk8
sudo apt install openjdk-8-jdk

# 配置路径
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

# 保存配置
source ~/.bashrc

3、搭建 Zookeeper 集群

3.1、下载

首先在三台服务器上,依次执行下述命令,先安装好 Zookeeper 3.4.14,命令如下:

shell 复制代码
# 创建 Zookeeper 安装目录
mkdir /opt/zookeeper
cd /opt/zookeeper

# 下载 Zookeeper
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

然后3台服务器上依次进行解压缩操作:

shell 复制代码
# 解压 Zookeeper
tar -zxvf zookeeper-3.4.14.tar.gz

3.2、调整配置

首先,依次在三台服务器创建目录:

shell 复制代码
# 存放数据
mkdir /opt/zookeeper/data
# 存放日志
mkdir /opt/zookeeper/log

接着,依次在三台服务器上,将 Zookeeper 文件复制一份,改名为zoo.cfg

shell 复制代码
cd /opt/zookeeper/zookeeper-3.4.14/conf/
cp zoo_sample.cfg zoo.cfg

接着调整三台服务器上的 Zookeeper 配置文件zoo.cfg,配置内容一模一样:

shell 复制代码
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/log
clientPort=2181

# Zookeeper集群通信配置
# server.数字:其中数字是/opt/zookeeper/data/myid中的数字
server.1=172.16.0.218:2288:3388
server.2=172.16.0.219:2288:3388
server.3=172.16.0.220:2288:3388

3.3、标记节点

在三台服务器上,依次执行下述命令写入节点标识,Zookeeper 集群通过 myid 文件识别集群节点,并通过zoo_sample.cfg配置的节点通信端口选举端口 来进行节点通信,选举出 leader 节点:

shell 复制代码
# 服务器1上执行
echo "1" > /opt/zookeeper/data/myid

# 服务器2上执行
echo "2" > /opt/zookeeper/data/myid

# 服务器3上执行
echo "3" > /opt/zookeeper/data/myid

3.4、启动集群

在三台服务器上,依次启动 Zookeeper 进程:

shell 复制代码
/opt/zookeeper/zookeeper-3.4.14/bin/zkServer.sh start

启动完毕后,通过jps命令查看一下 Zookeeper 进程:

通过/opt/zookeeper/zookeeper-3.4.14/bin/zkServer.sh status命令查看当前Zookeeper节点角色:

4、搭建 Kafka 集群

4.1、下载

在三台服务器上都安装 Kafka 2.2.0

shell 复制代码
# 创建 Kafka 安装目录
mkdir /opt/kafka
cd /opt/kafka

# 下载 Kafka
wget wget https://archive.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.0.tgz

然后将压缩包进行解压:

shell 复制代码
# 解压 Kafka
tar -xzf kafka_2.12-2.2.0.tgz

4.2、调整配置

首先,依次在三台服务器创建目录:

shell 复制代码
# 存放日志
mkdir /opt/kafka/log

接着,修改三台 Kafka 的配置文件server.properties,内容如下:

shell 复制代码
# 服务器1
broker.id=0
listeners=PLAINTEXT://172.16.0.218:9092
log.dirs=/opt/kafka/log
zookeeper.connect=172.16.0.218:2181,172.16.0.219:2181,172.16.0.220:2181

# 服务器2
broker.id=1
listeners=PLAINTEXT://172.16.0.219:9092
log.dirs=/opt/kafka/log
zookeeper.connect=172.16.0.218:2181,172.16.0.219:2181,172.16.0.220:2181

# 服务器3
broker.id=2
listeners=PLAINTEXT://172.16.0.220:9092
log.dirs=/opt/kafka/log
zookeeper.connect=172.16.0.218:2181,172.16.0.219:2181,172.16.0.220:2181

4.3、启动集群

三台服务器上,依次执行下述命令,启动Kafka集群:

shell 复制代码
cd /opt/kafka/kafka_2.12-2.2.0
bin/kafka-server-start.sh config/server.properties
相关推荐
集智飞行2 小时前
四种方法解决ROS2超过100个节点时的DDS瓶颈
ubuntu
数智工坊2 小时前
UECP:不确定性增强的协同感知 | 基于物理先验的BEV融合新范式
linux·ubuntu·3d·机器人
IT摆渡者1 天前
ubuntu系统网络问题
linux·运维·ubuntu
海兰1 天前
ffmpeg-wasm 完整安装指南(Ubuntu 24.04)
ubuntu·ffmpeg·wasm
海兰1 天前
云原生持续交付平台 Zadig 在 Ubuntu 24.04 上的部署及使用指南
linux·ubuntu·云原生
富士康质检员张全蛋1 天前
Kafka 事物
kafka
Anesthesia丶1 天前
PromoxVE安装笔记
笔记·ubuntu·server·promox
常乐か2 天前
VMware Workstation Pro 17 搭建 Ubuntu 24.04 完整指南
linux·运维·ubuntu
wear工程师2 天前
Kafka 消费者心跳正常,为什么还会被踢出组?拆清 max.poll.interval.ms
java·kafka
PGCCC2 天前
Ubuntu 安装 PostgreSQL 16 完整教程(2026):从仓库配置到远程连接
linux·ubuntu·postgresql