搭建Debian上的Kafka集群,特别是使用KRaft模式以去除对ZooKeeper的依赖,可以按照以下步骤进行:
安装JDK:
配置主机名和hosts文件:
hostnamectl set-hostname kafka1
hostnamectl set-hostname kafka2
hostnamectl set-hostname kafka3
/etc/hosts
文件,确保每台机器的IP地址和主机名映射正确。配置SSH免密登录:
ssh-keygen -t rsa -b 4096
ssh-copy-id kafka1
ssh-copy-id kafka2
ssh-copy-id kafka3
配置时区和时间同步:
apt-get update
apt-get install -y ntp
rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate -u ntp.aliyun.com
systemctl start ntp
systemctl enable ntp
下载并解压Kafka:
wget https://archive.apache.org/dist/kafka/3.4.0/kafka_2.13-3.4.0.tgz
tar -zxvf kafka_2.13-3.4.0.tgz
cd kafka_2.13-3.4.0
创建数据存储目录:
mkdir -p data
配置Kafka:
config/kraft/server.properties
文件,设置node.id
、listeners
、advertised.listeners
和controller.quorum.voters
等参数。例如:node.id=1
process.roles=broker,controller
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
inter.broker.listener.name=PLAINTEXT
advertised.listeners=PLAINTEXT://node1:9092
controller.listener.names=CONTROLLER
生成集群唯一标志ID:
bin/kafka-storage.sh random-uuid
初始化存储路径:
bin/kafka-storage.sh format -t cGuFZQ70Rf6OQFNMumq33g -c config/kraft/server.properties
启动Kafka服务:
bin/kafka-server-start.sh -daemon config/kraft/server.properties
验证集群启动:
tail -f logs/server.log
查看Broker情况:
bin/kafka-broker-api-versions.sh --bootstrap-server node1:9092,node2:9092,node3:9092
创建Topic:
bin/kafka-topics.sh --create --bootstrap-server node1:9092,node2:9092,node3:9092 --replication-factor 3 --partitions 3 --topic test_topic
生产消息和消费消息:
通过以上步骤,你可以在Debian上成功搭建一个使用KRaft模式的Kafka集群。这种模式去除了对ZooKeeper的依赖,简化了部署和运维的复杂性。