一、核心网络参数配置
协议://IP:端口,常见配置包括:
listeners=PLAINTEXT://0.0.0.0:9092(开发测试常用,生产环境需限制IP);listeners=PLAINTEXT://内网IP:9092(仅允许内网访问)。advertised.listeners=PLAINTEXT://内网IP:9092;advertised.listeners=PLAINTEXT://公网IP:9092。listener.security.protocol.map=PLAINTEXT:PLAINTEXT;listener.security.protocol.map=SSL:SSL,SASL_SSL:SASL_SSL;listener.security.protocol.map=SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL。listeners中的协议一一对应,生产环境建议启用SSL/SASL。listeners中定义,例如:inter.broker.listener.name=INTERNAL_PLAINTEXT,并在listener.security.protocol.map中配置对应安全机制。该参数隔离了内部与外部流量,提升集群安全性。二、网络性能优化配置
socket.send.buffer.bytes=1048576。socket.receive.buffer.bytes=1048576。socket.request.max.bytes=104857600,避免请求被拒绝。三、安全配置要点
SSL://)或SASL认证(SASL_PLAINTEXT:///SASL_SSL://)。例如:listeners=SSL://0.0.0.0:9093,并配置listener.security.protocol.map=SSL:SSL。四、防火墙与系统配置
firewalld开放Kafka端口(默认9092),命令如下:sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --reload
若使用SELinux,需设置为宽松模式(setenforce 0)或配置SELinux策略允许Kafka网络访问。/etc/sysctl.conf后执行sysctl -p):
vm.swappiness=1;vm.dirty_background_ratio=10、vm.dirty_ratio=20;vm.max_map_count=262144;net.core.rmem_default=262144、net.core.wmem_default=262144、net.ipv4.tcp_wmem=4096 16384 4194304、net.ipv4.tcp_rmem=4096 87380 4194304。五、其他注意事项
listeners中的IP或主机名可被客户端解析(如通过DNS或/etc/hosts文件),避免连接失败。log.dirs指定的目录(如/tmp/kafka-logs)需有Kafka进程的写权限,避免启动失败。zookeeper.connect需配置为可访问的Zookeeper地址(如localhost:2181或zk1:2181,zk2:2181,zk3:2181),确保Kafka与Zookeeper集群通信正常。