CentOS 上优化 Kafka 网络设置的实用步骤
一 系统层网络与资源优化
ulimit -n 65535、ulimit -u 65535/etc/security/limits.conf 增加* - nofile 65535
* - nproc 65535
/etc/pam.d/login 或 /etc/pam.d/su 包含 session required pam_limits.so/etc/sysctl.d/99-kafka.conf,示例:# 降低 swap 倾向,避免抖动
vm.swappiness = 1
# 脏页刷写阈值(按内存与负载微调)
vm.dirty_background_ratio = 5
vm.dirty_ratio = 70
# 套接字默认/最大缓冲区
net.core.rmem_default = 4194304
net.core.wmem_default = 4194304
net.ipv4.tcp_rmem = 4096 65536 4194304
net.ipv4.tcp_wmem = 4096 65536 4194304
# TCP 特性与队列
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_max_syn_backlog = 5120
net.core.netdev_max_backlog = 100000
sysctl -p /etc/sysctl.d/99-kafka.confsystemctl start firewalld
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=9092/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
二 Kafka 服务端网络参数建议
listeners=PLAINTEXT://内网IP:9092
advertised.listeners=PLAINTEXT://公网或客户端可达IP:9092
num.network.threads=8
num.io.threads=16
socket.send.buffer.bytes=1048576
socket.receive.buffer.bytes=1048576
message.max.bytes=10485760
replica.fetch.max.bytes=10485760
min.insync.replicas=2
snappy、lz4、zstd):compression.type=lz4
server.properties 后需重启 Broker 生效;变更前做好配置备份与灰度验证。三 客户端网络参数建议
bootstrap.servers 指向可达的 advertised.listeners;根据并发量调整连接与池化策略(如 max.connections、连接复用)。fetch.min.bytes=1048576
fetch.max.wait.ms=500
max.partition.fetch.bytes=10485760
max.poll.records=500
send.buffer.bytes=1048576
compression.type=lz4
四 验证与持续监控
nc -vz <broker_ip> 9092 或 telnet <broker_ip> 9092