kafka在centos上的网络配置有哪些要点
导读:Kafka 在 CentOS 的网络配置要点 一 核心监听与对外地址 明确区分并同时配置以下三项,避免客户端连不通或获取到错误地址: listeners:Broker 实际监听的接口与端口,如 PLAINTEXT://0.0.0.0:9...
Kafka 在 CentOS 的网络配置要点
一 核心监听与对外地址
- 明确区分并同时配置以下三项,避免客户端连不通或获取到错误地址:
- listeners:Broker 实际监听的接口与端口,如 PLAINTEXT://0.0.0.0:9092(监听所有接口)或 PLAINTEXT://192.168.1.10:9092(仅内网口)。
- advertised.listeners:对外公布的地址,客户端最终用此地址连接,如 PLAINTEXT://kafka-prod.example.com:9092 或公网/内网具体 IP。
- listener.security.protocol.map:协议映射(如 PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL),多协议/多端口时必配。
- 示例(单内网口):
listeners=PLAINTEXT://0.0.0.0:9092 advertised.listeners=PLAINTEXT://192.168.1.10:9092 listener.security.protocol.map=PLAINTEXT:PLAINTEXT - 示例(内外网分离,双端口):
listeners=INTERNAL://192.168.1.10:9092,EXTERNAL://0.0.0.0:9093 advertised.listeners=INTERNAL://192.168.1.10:9092,EXTERNAL://203.0.113.20:9093 listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT inter.broker.listener.name=INTERNAL security.inter.broker.protocol=PLAINTEXT - 常见误区:只配 listeners 不配 advertised.listeners,或 advertised 填了不可达地址(如内网地址给公网客户端)。上述三项与多协议映射是 Kafka 网络连通性的首要关键。
二 主机名解析与连通性
- 保证客户端可解析 advertised.listeners 中的主机名(内网用内网 DNS/主机 hosts,公网用可公网解析的域名或弹性 IP)。
- 在 CentOS 上排查基础网络与路由:
- 查看网卡与地址:ip addr / ifconfig
- 查看路由:route -n
- 测试连通:ping / traceroute / nslookup
- 多网卡/双网卡环境需明确各接口用途,必要时通过 inter.broker.listener.name 指定 Broker 间通信使用的监听名称,避免跨错网段。
三 防火墙与端口放行
- 放行 Kafka 端口(以 9092 为例,若启用 SSL/SASL 或内外网分离,还需放行对应端口如 9093):
- firewalld:
sudo firewall-cmd --permanent --add-port=9092/tcp sudo firewall-cmd --reload - 或 nftables/iptables 放行对应 TCP 9092。
- firewalld:
- 云服务器需同时配置安全组/NACL规则,放通相应端口与来源网段。
四 传输加密与认证
- 启用 SSL/TLS:配置 ssl.keystore.location / ssl.keystore.password / ssl.truststore.location / ssl.truststore.password,并在 listeners 使用 SSL:// 或在安全映射中声明协议。
- 启用 SASL(如 SCRAM 或 Kerberos):配置 sasl.enabled.mechanisms / sasl.mechanism.inter.broker.protocol / sasl.jaas.config,并在 listener.security.protocol.map 中映射为 SASL_PLAINTEXT/SASL_SSL。
- 对外公网建议启用 SSL;内网可按需选择 SASL 或明文(配合网络隔离)。
五 性能与可靠性相关的网络参数
- 增大套接字缓冲与队列,提高吞吐与抗突发:
socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 num.network.threads=3 num.io.threads=8 - 提升 TCP 栈与内核网络参数(/etc/sysctl.d/99-kafka.conf),示例:
net.core.rmem_default=4194304 net.core.wmem_default=4194304 net.ipv4.tcp_rmem=4096 65536 4194304 net.ipv4.tcp_wmem=4096 65536 4194304 net.core.netdev_max_backlog=100000 net.ipv4.tcp_max_syn_backlog=5120 vm.swappiness=1 - 打开文件与进程限制(/etc/security/limits.conf):
* soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc 65535 - 大消息场景注意副本同步窗口:将 replica.fetch.max.bytes 提升到不小于 topic 的 max.message.bytes,避免 ISR 频繁掉队(默认 1 MiB 常不足)。
- 其他稳定性参数(按业务权衡):如 min.insync.replicas、replica.lag.time.max.ms 等。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: kafka在centos上的网络配置有哪些要点
本文地址: https://pptw.com/jishu/781212.html
