搭建 kafka 集群

官网:https://kafka.apache.org/
下载地址:https://kafka.apache.org/downloads
在以上页面选择何时版本下载
本文是在一台服务器模拟多节点
例如:

cd /data/soft/
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xvf kafka_2.13-3.6.1.tgz
mv kafka_2.13-3.6.1 kafka
cd kafka/config
cp server.properties server.properties.bak
cp server.properties server.properties1
cp server.properties server.properties2
cp server.properties server.properties3

分别主要修改server.properties1、server.properties2、server.properties3的相关参数

参数样例 参数解释
broker.id=0 roker的全局唯一编号,每个broker不能重复,因此要在其他机器上配置 broker.id=1、broker.id=2
listeners=PLAINTEXT://192.168.30.136:9092 指定监听的IP和端口,如果修改每个broker的IP需区分开来,也可保持默认配置不用修改
advertised.listeners=PLAINTEXT://192.168.30.136:9092 客户端的连接方式
num.network.threads=3 broker 处理网络请求的线程数量,一般情况下不需要去修改
num.io.threads=8 用来处理磁盘IO的线程数量,数值应该大于硬盘数
socket.send.buffer.bytes=102400 发送套接字的缓冲区大小
socket.receive.buffer.bytes=102400 接收套接字的缓冲区大小
socket.request.max.bytes=104857600 请求套接字的缓冲区大小
log.dirs=/tmp/kafka-logs kafka运行日志存放的路径,也是数据存放的路径
num.partitions=1 topic在当前broker上的默认分区个数,会被topic创建时的指定参数覆盖
num.recovery.threads.per.data.dir=1 用来恢复和清理data下数据的线程数量
log.retention.hours=168 segment文件(数据文件)保留的最长时间,单位为小时,默认为7天,超时将被删除
log.segment.bytes=1073741824 一个segment文件最大的大小,默认为 1G,超出将新建一个新的segment文件
zookeeper.connect=192.168.30.136:2181,192.168.30.136:2182,192.168.30.136:2183 配置连接Zookeeper集群地址

按以下修改

vim server.properties1
broker.id=1
log.dirs=/data/soft/kafka/logs/kafka-logs1
listeners=PLAINTEXT://192.168.30.136:9092
advertised.listeners=PLAINTEXT://192.168.30.136:9092
zookeeper.connect=192.168.30.136:2181,192.168.30.136:2182,192.168.30.136:2183
vim server.properties2
broker.id=2
log.dirs=/data/soft/kafka/logs/kafka-logs2
listeners=PLAINTEXT://192.168.30.136:9093
advertised.listeners=PLAINTEXT://192.168.30.136:9093
zookeeper.connect=192.168.30.136:2181,192.168.30.136:2182,192.168.30.136:2183
vim server.properties3
broker.id=3
log.dirs=/data/soft/kafka/logs/kafka-logs3
listeners=PLAINTEXT://192.168.30.136:9094
advertised.listeners=PLAINTEXT://192.168.30.136:9094
zookeeper.connect=192.168.30.136:2181,192.168.30.136:2182,192.168.30.136:2183

启动kafka

cd /data/soft/kafka
# 加'-daemon'是以'后台守护进程启动';不加,则是以'控制台进程启动'
./bin/kafka-server-start.sh -daemon config/server.properties1
./bin/kafka-server-start.sh -daemon config/server.properties2
./bin/kafka-server-start.sh -daemon config/server.properties3

关闭kafka

cd /data/soft/kafka
./bin/kafka-server-stop.sh config/server.properties1
./bin/kafka-server-stop.sh config/server.properties2
./bin/kafka-server-stop.sh config/server.properties3