Kafka是基于Java开发的中间件,需先安装JDK(推荐OpenJDK 1.8及以上)。
执行以下命令安装:
sudo yum install java-1.8.0-openjdk-devel -y
验证安装是否成功:
java -version
输出应包含Java版本信息(如openjdk version "1.8.0_392"
)。
从Apache Kafka官网下载最新稳定版本(以3.5.2为例),解压至指定目录(如/usr/local/kafka
):
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /usr/local/kafka
切换至Kafka目录:
cd /usr/local/kafka
Kafka依赖Zookeeper实现Broker注册、Leader选举等功能。
config/zookeeper.properties
(若文件不存在,可从config/zookeeper.properties.example
复制):nano config/zookeeper.properties
关键配置项(需根据实际环境调整):dataDir=/usr/local/kafka/zookeeper_data # Zookeeper数据存储目录
clientPort=2181 # 客户端连接端口
bin/zookeeper-server-start.sh config/zookeeper.properties
若需后台运行,可添加&
或使用nohup
:nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &
编辑Kafka主配置文件config/server.properties
,设置Broker唯一标识及网络参数:
nano config/server.properties
关键配置项说明:
0
、1
、2
):broker.id=0
PLAINTEXT
为明文协议,生产环境建议用SASL_PLAINTEXT
或SSL
):listeners=PLAINTEXT://your_server_ip:9092
advertised.listeners=PLAINTEXT://your_server_ip:9092
log.dirs=/usr/local/kafka/kafka_logs
zookeeper.connect=localhost:2181
3
)和副本因子(如1
,生产环境建议≥2):num.partitions=3
default.replication.factor=1
在终端执行以下命令启动Kafka(前台运行):
bin/kafka-server-start.sh config/server.properties
若需后台运行,可使用nohup
:
nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &
验证Kafka是否启动成功:
jps # 查看是否有Kafka进程(Kafka)
test
的Topic(1个分区、1个副本):bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
test
Topic发送消息(在终端输入消息后按回车):bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
test
Topic接收消息(--from-beginning
表示从最早消息开始读取):bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
此时应能看到生产者发送的消息。若需从外部访问Kafka,需开放Kafka监听端口(默认9092
):
sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --reload
创建systemd服务文件,实现Kafka开机自动启动:
sudo vi /etc/systemd/system/kafka.service
添加以下内容(替换/usr/local/kafka
为Kafka实际安装路径):
[Unit]
Description=Apache Kafka Server
After=network.target zookeeper.service
[Service]
Type=simple
User=root
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/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
以上步骤完成后,Kafka即可在CentOS上正常运行。生产环境中还需根据需求调整高级配置(如log.retention.hours
日志保留时间、message.max.bytes
消息最大大小等),并配置多Broker集群以提高可用性。