你这个问题有点简略,我分几种常见场景给你讲 Kafka 在 Debian 上怎么“调”(配置 / 调优 / 启动),你可以看哪一部分对你有用。
sudo apt update
sudo apt install -y openjdk-11-jdk
java -version
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz
cd kafka_2.13-3.6.1
Zookeeper 模式:
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
KRaft 模式(推荐 3.x):
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
server.properties 核心配置# broker 唯一 ID
broker.id=1
# 监听地址
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://your-host:9092
# 日志相关
log.dirs=/data/kafka-logs
num.partitions=6
default.replication.factor=3
min.insync.replicas=2
# 吞吐优化
num.network.threads=8
num.io.threads=16
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
ulimit -n 100000
永久生效:
sudo vim /etc/security/limits.conf
kafka soft nofile 100000
kafka hard nofile 100000
mount -o noatime,nodiratime /dev/sdb /data
sudo sysctl -w vm.swappiness=1
sudo sysctl -w net.core.somaxconn=4096
acks=all
retries=5
batch.size=16384
linger.ms=5
compression.type=snappy
fetch.min.bytes=1024
max.poll.records=500
enable.auto.commit=false
/etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=network.target
[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka
你可以补充一句,比如:
我可以直接按你的具体场景给你方案。