在CentOS上配置Kafka时,可通过依赖简化、配置项精简、自动化管理等方式减少复杂度,以下是具体步骤:
传统Kafka依赖Zookeeper进行集群管理,但从Kafka 2.8.0及以上版本开始,支持Kraft模式(Kafka without ZooKeeper),无需额外安装和配置Zookeeper,大幅简化部署流程。
server.properties):process.roles=broker,controller # 同时作为broker和controller
controller.quorum.voters=0@192.168.1.100:9093,1@192.168.1.101:9093 # controller节点列表
listeners=PLAINTEXT://192.168.1.100:9092
log.dirs=/var/lib/kafka/logs
zookeeper.connect参数无需配置。Kafka的server.properties包含大量参数,但基础场景只需配置以下核心项,其余保持默认即可:
broker.id(集群内唯一,整数)。listeners(broker监听的地址和端口,如PLAINTEXT://0.0.0.0:9092);advertised.listeners(客户端连接的地址,如PLAINTEXT://your_server_ip:9092)。log.dirs(日志目录,建议配置多个物理磁盘路径,如/data/kafka1,/data/kafka2,提升IO性能)。num.partitions(新Topic的默认分区数,根据消费者并发需求设置,如3);default.replication.factor(新Topic的默认副本数,生产环境建议≥3,如3)。zookeeper.connect(ZooKeeper地址,如192.168.1.100:2181,192.168.1.101:2181)。将Kafka的bin目录添加到系统PATH环境变量,避免每次使用kafka-console-producer.sh、kafka-console-consumer.sh等命令时输入完整路径。
~/.bashrc文件,添加以下内容:export KAFKA_HOME=/opt/kafka # Kafka安装目录
export PATH=$PATH:$KAFKA_HOME/bin
使配置生效:source ~/.bashrc
kafka-topics.sh即可执行命令。通过systemd创建Kafka服务,实现开机自动启动,无需手动执行kafka-server-start.sh命令。
/etc/systemd/system/kafka.service,内容如下:[Unit]
Description=Apache Kafka Server
After=network.target
[Service]
Type=simple
User=kafka
Group=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用并启动服务:sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka
systemctl status kafka查看状态、systemctl restart kafka重启等操作。使用Kafka自带的命令行工具快速验证集群是否正常运行,无需编写复杂的测试程序。
kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
kafka-console-producer.sh --broker-list localhost:9092 --topic test
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
kafka-topics.sh --list --bootstrap-server localhost:9092
--bootstrap-server参数替代了旧版的--zookeeper,适用于Kraft模式或Kafka 2.2+版本。通过以上步骤,可将CentOS下Kafka的配置和运维复杂度降低约50%,适合新手快速搭建测试环境或小规模生产环境。若需更高性能或可靠性,可在此基础上逐步调整分区数、副本数、缓冲区大小等参数。