下面给你一份在 Linux 上安装 Kafka 的常用、实战向教程(以 Kafka 3.x + Kafka 自带的 Zookeeper 为例,适合学习和测试环境)。
# Ubuntu / Debian
sudo apt update
sudo apt install openjdk-11-jdk -y
# CentOS / Rocky
sudo yum install java-11-openjdk-devel -y
验证:
java -version
cd /opt
sudo wget https://downloads.apache.org/kafka/3.7.1/kafka_2.13-3.7.1.tgz
sudo tar -xzf kafka_2.13-3.7.1.tgz
sudo mv kafka_2.13-3.7.1 kafka
Kafka 3.x 已支持 KRaft 模式(无 Zookeeper),但新手建议先用 Zookeeper 模式。
cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties
后台运行:
nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &
bin/kafka-server-start.sh config/server.properties
后台运行:
nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &
bin/kafka-topics.sh --create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
bin/kafka-console-producer.sh \
--topic test \
--bootstrap-server localhost:9092
bin/kafka-console-consumer.sh \
--topic test \
--from-beginning \
--bootstrap-server localhost:9092
| 文件 | 作用 |
|---|---|
| config/zookeeper.properties | Zookeeper 配置 |
| config/server.properties | Kafka Broker 配置 |
| log.dirs | Kafka 数据目录 |
| listeners | 监听地址(默认 localhost:9092) |
如需要远程访问:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://服务器IP:9092
bin/kafka-server-stop.sh
bin/zookeeper-server-stop.sh
如果你用的是 Kafka 3.3+,可以不用 Zookeeper:
# 生成集群 ID
KAFKA_CLUSTER_ID=$(bin/kafka-storage.sh random-uuid)
# 格式化
bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties
# 启动
bin/kafka-server-start.sh config/kraft/server.properties
netstat -tunlp | grep 9092
修改:
export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M"
用 systemd 或 supervisor 管理(生产环境推荐)
如果你告诉我:
我可以给你更定制化的安装方案(含 systemd / Docker / 集群)。