返回 导航

大数据

hangge.com

Kafka集群安装部署教程1(依赖ZooKeeper)

作者:hangge | 2024-05-14 08:28
    Kafka 是一个分布式消息系统,我之前写过文章介绍如何在 CentOS 系统下安装单节点的 Kafka 部署(点击查看),而在生产中为了保证高可用性就需要进行集群部署。本文演示如何进行 ZooKeeper + Kafka 集群的部署。

1,准备工作

(1)首先我们准备三台 linux 服务器进行集群搭建,具体信息如下:
主机名 内网IP 外网IP
node1 172.31.4.99 13.211.44.248
node2 172.31.3.72 3.106.170.197
node3 172.31.6.103 3.25.88.196

(2)为方便后续 Kafka 集群的配置,我们在三台服务上均执行如下命令编辑的 host 文件,使得可以通过主机名相互访问:
echo '
172.31.4.99 node1
172.31.3.72 node2
172.31.6.103 node3' >> /etc/hosts

2,安装 ZooKeeper

由于 Kafka 需要依赖 ZooKeeper,因此我首先需要准备 ZooKeeper 环境,具体步骤可以参考我之前写的文章:

3,下载 Kafka 安装包

(1)三台服务器均执行如下命令下载 Kafka 安装包,这里我选择是 3.3.1 版本:
wget https://archive.apache.org/dist/kafka/3.3.1/kafka_2.12-3.3.1.tgz

(2)接着执行如下命令解压下载下来的压缩:
tar -zxvf kafka_2.12-3.3.1.tgz

(3)最后将解压出来的文件夹移动到合适的位置,这个可以根据个人习惯修改:
mv kafka_2.12-3.3.1 /usr/local/kafka

4,修改 kafka 配置

(1)首先进入 kafka 目录:
cd /usr/local/kafka

(2)编辑 Kafka 配置文件:
vi config/server.properties

(3)node1 服务器的配置文件中修改如下 4 个配置项:
注意advertised.listeners 指定 kafka 通过代理暴漏的地址,如果都是局域网使用,就配置 PLAINTEXT://:9092 即可。如果需要暴露给外部使用,则需要填写外部代理地址。比如我使用的是云服务器搭建 Kafka 集群,node1 对应的 172.31.4.99 为内部局域网地址,而其外网地址是 13.211.44.248。如果需要从外网访问 Kafka,那么 advertised.listeners 就要配置成 PLAINTEXT://13.211.44.248:9092。其他节点配置同理。
# Kafka 集群中 Broker 的编号,默认是从 0 开始的
broker.id=0

# 允许外部端口连接 
listeners=PLAINTEXT://0.0.0.0:9092

# 外部代理地址(即Kafka主机地址) 
advertised.listeners=PLAINTEXT://:9092

# Zookeeper 集群的地址
zookeeper.connect=node1:2181,node2:2181,node3:2181

(4)node2 服务器的配置文件修改如下:
# Kafka 集群中 Broker 的编号,默认是从 0 开始的
broker.id=1

# 允许外部端口连接 
listeners=PLAINTEXT://0.0.0.0:9092

# 外部代理地址(即Kafka主机地址) 
advertised.listeners=PLAINTEXT://:9092

# Zookeeper 集群的地址
zookeeper.connect=node1:2181,node2:2181,node3:2181

(5)node3 服务器的配置文件修改如下:
# Kafka 集群中 Broker 的编号,默认是从 0 开始的
broker.id=2

# 允许外部端口连接 
listeners=PLAINTEXT://0.0.0.0:9092

# 外部代理地址(即Kafka主机地址) 
advertised.listeners=PLAINTEXT://:9092

# Zookeeper 集群的地址
zookeeper.connect=node1:2181,node2:2181,node3:2181

6,启动集群

(1)三台服务器均执行如下命令启动 Kafka 集群:
cd /usr/local/kafka
./bin/kafka-server-start.sh -daemon config/server.properties

(2)启动后可以执行 jps 命令查看是否启动:

(3)如果没有启动成功可以查看日志文件查找原因。比如:Kafka 程序默认 jvm 内存为 1G,如果服务器内存太小,就是无法正常启动。我们可以编辑启动脚本:
vi ./bin/kafka-server-start.sh

(4)将 JVM 参数修改为最大 256M 最小 128M,然后保存退出。
export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

(5)最后再次启动即可:
./bin/kafka-server-start.sh -daemon ./config/kraft/server.properties

7,测试 Kafka 集群

(1)比如我们在任意一个节点上创建一个生产者连接 node1 节点的 hangge-test 这个 topic
./bin/kafka-console-producer.sh --broker-list node1:9092 --topic hangge-test

(2)接着再换一个节点创建一个消费者监听 node2 节点的 hangge-test 这个 topic:
./bin/kafka-console-consumer.sh --bootstrap-server node2:9092 --topic hangge-test

(3)生产者这边输入一些数据:

(4)可以看到消费者成功接收到数据,说明集群搭建成功:
评论

全部评论(0)

回到顶部