Linux Kafka 网络参数配置指南
一 核心配置项与含义
二 常见场景配置示例
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.1.10:9092
inter.broker.listener.name=PLAINTEXT
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
listeners=INTERNAL://192.168.1.10:9092,EXTERNAL://203.0.113.20:19092
advertised.listeners=INTERNAL://192.168.1.10:9092,EXTERNAL://203.0.113.20:19092
inter.broker.listener.name=INTERNAL
listener.security.protocol.map=SSL:SSL
listeners=SSL://0.0.0.0:9093
advertised.listeners=SSL://kafka.example.com:9093
inter.broker.listener.name=SSL
# 并在 server.properties 中补充 SSL 证书/密钥等参数
三 Linux 系统网络与内核参数
# /etc/security/limits.conf
* soft nofile 655350
* hard nofile 655350
* soft nproc 655350
* hard nproc 655350
# /etc/sysctl.conf
vm.swappiness=1
vm.dirty_background_ratio=10
vm.dirty_ratio=20
net.core.wmem_default=4194304
net.core.rmem_default=4194304
net.core.wmem_max=4194304
net.core.rmem_max=4194304
net.core.optmem_max=4194304
net.ipv4.tcp_rmem="4096 87380 4194304"
net.ipv4.tcp_wmem="4096 65536 4194304"
net.core.netdev_max_backlog=250000
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_max_syn_backlog=4096
# server.properties
socket.send.buffer.bytes=1048576
socket.receive.buffer.bytes=1048576
sysctl -p。四 防火墙与安全组放行
sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-port=9092/tcp
sudo firewall-cmd --reload
sudo ufw allow 9092/tcp
五 验证与连通性测试
sudo netstat -tunlp | egrep "(2181|9092|19092)"
ss -lntp | grep :9092
nc -vz 127.0.0.1 9092
nc -vz <broker_ip> 9092
# 列出 Topic
bin/kafka-topics.sh --list --bootstrap-server <broker_ip>:9092
# 创建测试 Topic
bin/kafka-topics.sh --create --topic test --bootstrap-server <broker_ip>:9092 \
--partitions 3 --replication-factor 3
# 控制台生产/消费
bin/kafka-console-producer.sh --bootstrap-server <broker_ip>:9092 --topic test
bin/kafka-console-consumer.sh --bootstrap-server <broker_ip>:9092 --topic test --from-beginning