在 Debian 上调整 Kafka 参数,核心就是修改 Kafka 的配置文件以及系统/ JVM 相关参数。下面按“常见场景 + 具体参数”给你一个实用指南。
通常 Kafka 安装在:
/opt/kafka
/usr/local/kafka
关键配置文件:
config/server.properties # Broker 核心参数
config/producer.properties # 生产者
config/consumer.properties # 消费者
broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://your-host-ip:9092
log.dirs=/var/lib/kafka/logs
⚠️
advertised.listeners在远程访问时非常重要
# 网络线程
num.network.threads=8
# IO 线程(建议 = 磁盘数)
num.io.threads=16
# 单 socket 缓冲
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
# 分区副本
default.replication.factor=3
min.insync.replicas=2
# 日志保留
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
# 不允许不安全重启
unclean.leader.election.enable=false
# ACK 控制
acks=all
编辑:
bin/kafka-server-start.sh
# 或
/etc/default/kafka(取决于安装方式)
示例:
export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G"
export KAFKA_JVM_PERFORMANCE_OPTS="-XX:+UseG1GC"
建议:
ulimit -n 100000
永久生效:
/etc/security/limits.conf
kafka soft nofile 100000
kafka hard nofile 100000
noatime,nodiratime
vm.swappiness=1
vm.dirty_ratio=10
vm.dirty_background_ratio=5
systemctl restart kafka
# 或
bin/kafka-server-stop.sh
bin/kafka-server-start.sh -daemon config/server.properties
| 场景 | 建议 |
|---|---|
| 高吞吐 | 增加 io/network 线程 |
| 低延迟 | 减少 retention,用 SSD |
| 稳定性 | replication=3,acks=all |
| 单机测试 | replication=1 |
如果你愿意,可以告诉我:
我可以直接给你一份可直接用的 server.properties。