下面按**在 Ubuntu 上配置 Kafka(以 Kafka 3.x + 自带 Zookeeper 为例)**来说明,从安装到常见配置点,比较实用。
Kafka 依赖 JVM:
sudo apt update
sudo apt install openjdk-17-jdk -y
java -version
cd /opt
sudo wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
sudo tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 kafka
配置文件:
/opt/kafka/config/zookeeper.properties
常用项:
dataDir=/tmp/zookeeper
clientPort=2181
配置文件:
/opt/kafka/config/server.properties
# broker 唯一 ID
broker.id=0
# 监听地址(本机 IP 或 0.0.0.0)
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://<你的IP>:9092
# Zookeeper 地址
zookeeper.connect=localhost:2181
# 日志存放位置
log.dirs=/tmp/kafka-logs
⚠️ 如果是远程访问,一定要配置 advertised.listeners
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
broker.id=0复制 server.properties:
cp server.properties server-1.properties
cp server.properties server-2.properties
修改:
broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/tmp/kafka-logs-1
num.partitions=3
default.replication.factor=1
生产建议:
default.replication.factor=3
min.insync.replicas=2
log.retention.hours=168
log.segment.bytes=1073741824
# 创建 topic
kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1
# 查看 topic
kafka-topics.sh --list --bootstrap-server localhost:9092
# 生产消息
kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
# 消费消息
kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning
sudo vim /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
Requires=zookeeper.service
[Service]
Type=simple
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka
如果你想不用 Zookeeper,可以用 KRaft 模式,我也可以单独给你一套配置。
如果你能告诉我:
我可以直接给你一份可复制的配置文件。