以下是在Debian上稳定搭建Kafka集群的关键步骤及要点:
硬件与系统
/etc/hosts
),确保节点间网络互通。安装Java
sudo apt update && sudo apt install openjdk-11-jdk
java -version # 验证安装
wget https://downloads.apache.org/zookeeper/stable/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzf apache-zookeeper-3.7.0-bin.tar.gz
cd apache-zookeeper-3.7.0-bin
conf/zoo.cfg
,设置集群节点(server.X=主机名:2888:3888
)和数据目录:tickTime=2000
initLimit=5
syncLimit=2
dataDir=/var/lib/zookeeper
clientPort=2181
server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
bin/zkServer.sh start
bin/zkServer.sh status # 检查状态,确保集群正常
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.13-3.5.2.tgz
tar -xzf kafka_2.13-3.5.2.tgz
cd kafka_2.13-3.5.2
config/server.properties
(每个节点唯一配置):broker.id=1 # 每个节点唯一ID
listeners=PLAINTEXT://节点IP:9092
advertised.listeners=PLAINTEXT://节点IP:9092
log.dirs=/var/lib/kafka/logs
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
bin/kafka-server-start.sh -daemon config/server.properties
kafka-topics.sh
创建Topic,指定replication-factor≥2
(建议3副本):bin/kafka-topics.sh --create --topic test-topic --partitions 3 --replication-factor 3 --bootstrap-server kafka1:9092
acks=all
确保数据可靠写入,retries
≥3重试机制。num.network.threads
(建议8)、num.io.threads
(建议16),启用log.retention.hours
自动清理日志。bin/kafka-topics.sh --describe --topic test-topic --bootstrap-server kafka1:9092 # 查看Topic详情
bin/kafka-broker-api-versions.sh --bootstrap-server kafka1:9092 # 检查Broker版本
参考来源: