一、环境准备
sudo apt update && sudo apt install -y openjdk-11-jdk
java -version  # 验证安装(需显示11+版本)
二、下载与解压Kafka
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
/opt/kafka(推荐,避免权限问题):tar -xzf kafka_*.tgz
sudo mv kafka_2.13-3.6.1 /opt/kafka
三、配置Kafka
server.properties(关键配置项说明):sudo vim /opt/kafka/config/server.properties
PLAINTEXT://:9092);/var/lib/kafka-logs);localhost:2181,集群用逗号分隔的多个地址)。四、启动ZooKeeper(传统模式必需) Kafka 2.8及以上版本支持KRaft模式(无需ZooKeeper),但传统模式仍需ZooKeeper管理元数据。若使用传统模式:
zookeeperd,可直接启动:sudo apt install -y zookeeperd
sudo systemctl start zookeeper  # 启动服务
sudo systemctl status zookeeper  # 验证状态(需显示"active (running)")
/etc/zookeeper/conf/zoo.cfg,设置数据目录和端口:dataDir=/var/lib/zookeeper
clientPort=2181
五、启动Kafka服务
bin目录,使用-daemon参数在后台启动:/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
sudo vim /etc/systemd/system/kafka.service
内容如下:[Unit]
Description=Apache Kafka
After=zookeeper.service  # 依赖ZooKeeper(传统模式)
[Service]
User=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 enable kafka  # 开机自启
sudo systemctl start kafka   # 立即启动
六、验证Kafka功能
kafka-topics.sh创建名为test的Topic(分区数1,副本因子1):/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
test Topic发送消息:echo "Hello Kafka" | /opt/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
test Topic接收消息(--from-beginning表示从最早消息开始):/opt/kafka/bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
七、常见问题解决
zoo.cfg中的clientPort或server.properties中的listeners为其他端口(如2182、9093);log.dirs,执行sudo chown -R kafka:kafka /var/lib/kafka-logs(假设Kafka以kafka用户运行);