温馨提示×

centos中kafka网络配置有哪些要点

小樊
40
2025-12-31 06:43:25
栏目: 智能运维

CentOS 上部署 Kafka 的网络配置要点

一 核心监听与对外地址

  • 明确区分三类地址配置:listeners(服务端实际监听)、advertised.listeners(对外公布的地址,客户端与 Broker 会据此连接)、以及 inter.broker.listener.name / security.inter.broker.protocol(Broker 之间通信使用哪个监听器/协议)。多网卡或内外网分流时,建议显式定义多个监听器名称并映射协议。注意:advertised.listeners 不支持 0.0.0.0,若 listeners 绑定 0.0.0.0,必须显式设置对外可达的 IP 或域名。示例:
    listeners=INTERNAL://192.168.100.10:9092,EXTERNAL://203.0.113.10:19092
    advertised.listeners=INTERNAL://192.168.100.10:9092,EXTERNAL://203.0.113.10:19092
    listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
    inter.broker.listener.name=INTERNAL
    
    上述做法可实现内外网分流Broker 内网互连,避免外部地址回连失败。

二 主机名解析与连通性

  • 对外使用域名时,需在客户端与 Broker 侧保证DNS 或 /etc/hosts 解析一致,否则会出现“能连上端口但元数据/连接异常”的现象。示例(在 /etc/hosts 或 DNS 中):
    203.0.113.10 external-kafka.example.com
    
    多网卡/多网段环境下,优先使用可达的内网地址作为 Broker 间通信地址,外网地址仅用于客户端接入。

三 防火墙与端口放行

  • firewalld 中放行 Kafka 与 Zookeeper 端口(以默认端口为例):
    sudo systemctl start firewalld
    sudo firewall-cmd --permanent --add-port=9092/tcp    # 内网监听
    sudo firewall-cmd --permanent --add-port=19092/tcp   # 外网监听(示例)
    sudo firewall-cmd --permanent --add-port=2181/tcp    # Zookeeper
    sudo firewall-cmd --reload
    
    如使用云厂商安全组,也需同步放行对应端口与来源网段。

四 网络性能与内核参数

  • 在 server.properties 中适当增大网络缓冲与请求上限,提升吞吐与稳定性:
    socket.send.buffer.bytes=102400
    socket.receive.buffer.bytes=102400
    socket.request.max.bytes=104857600
    
  • 操作系统层面建议:
    • 开启 TCP_NODELAY,降低小包延迟;
    • 调整 tcp_keepalive_time 等保活参数,减少长连接异常断开;
    • 提升文件描述符限制(ulimit -n),避免连接数受限;
    • 合理设置内核网络与 I/O 参数(如 vm.swappiness、脏页刷新相关),匹配磁盘与网络能力。

五 快速自检清单

  • 使用 ss/netstat 确认监听地址与端口是否正确绑定到期望网卡(如 0.0.0.0:9092 或指定内/外网 IP:端口)。
  • 使用 telnet/curl 或 nc 测试端口连通性(从客户端与 Broker 双向验证)。
  • 使用 kafka-topics.sh 与 console-producer/consumer 验证内外网接入与元数据拉取是否正常。
  • 复核 advertised.listeners 是否为客户端可达地址,避免 0.0.0.0 或不可路由地址暴露。

0