CentOS环境下Kafka配置关键步骤
Kafka运行需依赖Java环境和Zookeeper集群(Kafka 3.3+版本可脱离Zookeeper,但传统部署仍需):
sudo yum install java-1.8.0-openjdk-devel -y
,验证安装java -version
(需显示Java版本信息)。从Apache官网下载稳定版本(如3.5.2),解压至指定目录:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -zxvf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /opt/kafka # 移动至/opt目录便于管理
编辑/opt/kafka/config/server.properties
(Kafka主配置文件),调整以下关键参数:
broker.id=0
(集群中每个Broker的ID需唯一,生产环境建议用主机名或IP生成)。listeners=PLAINTEXT://0.0.0.0:9092
(监听所有网卡,生产环境建议指定具体IP)。advertised.listeners=PLAINTEXT://your_server_ip:9092
(客户端访问的地址,需替换为服务器公网/内网IP)。log.dirs=/opt/kafka/kafka-logs
(日志存储目录,需提前创建mkdir -p /opt/kafka/kafka-logs
)。zookeeper.connect=localhost:2181
(Zookeeper集群地址,多节点用逗号分隔,如host1:2181,host2:2181
)。num.partitions=3
(默认分区数,根据业务吞吐量调整,建议≥3)。default.replication.factor=3
(默认副本因子,生产环境建议≥3以保证高可用)。log.retention.hours=168
(日志保留7天,单位小时,可根据存储空间调整)。将Kafka的bin
目录添加至系统PATH
,方便全局调用命令:
echo 'export PATH=$PATH:/opt/kafka/bin' >> ~/.bashrc
source ~/.bashrc # 使配置生效
cd /opt/kafka && bin/kafka-server-start.sh config/server.properties
。nohup bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 &
。bin/kafka-topics.sh --create --topic test_topic --partitions 3 --replication-factor 1 --bootstrap-server localhost:9092
(创建名为test_topic
的Topic,3个分区,1个副本)。bin/kafka-console-producer.sh --topic test_topic --bootstrap-server localhost:9092
(进入生产者模式,输入消息)。bin/kafka-console-consumer.sh --topic test_topic --from-beginning --bootstrap-server localhost:9092
(从Topic开头消费消息,验证消息收发是否正常)。firewall-cmd --zone=public --add-port=9092/tcp --permanent
,firewall-cmd --reload
(放通Kafka默认端口9092)。kafka-run-class.sh
中的KAFKA_HEAP_OPTS
(如export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G"
),提升Broker内存性能。server.properties
中添加log.cleaner.enable=true
,减少日志存储占用。