首页主机资讯centos kafka网络配置

centos kafka网络配置

时间2026-01-21 00:10:04发布访客分类主机资讯浏览834
导读:CentOS 上 Kafka 网络配置要点 一 网络与防火墙先决条件 开放端口:Kafka 默认 9092,Zookeeper 默认 2181;如使用 KRaft 模式,还需开放 9093(controller 通信)。 示例:fire...

CentOS 上 Kafka 网络配置要点

一 网络与防火墙先决条件

  • 开放端口:Kafka 默认 9092,Zookeeper 默认 2181;如使用 KRaft 模式,还需开放 9093(controller 通信)。
    • 示例:firewall-cmd --add-port=9092/tcp --permanent & & firewall-cmd --reload
  • 节点互通与时间同步:确保 broker 之间客户端到 broker9092/2181/9093 可达;建议启用 NTP 同步时间,避免元数据与 ISR 异常。
  • 主机名与解析:内外网分离或公网访问时,确保客户端能解析 advertised.listeners 中的主机名(DNS 或 /etc/hosts)。

二 server.properties 关键网络参数

  • 基础必配
    • broker.id:每个 broker 唯一标识(如 0/1/2)。
    • listeners:实际监听的协议/地址/端口(如 PLAINTEXT://0.0.0.0:9092 或按接口拆分)。
    • advertised.listeners:对外暴露给客户端的地址(客户端最终连这里)。
    • zookeeper.connect(或 KRaft 的 process.roles/controller.quorum.voters):Zookeeper 连接串或 KRaft 投票配置。
    • log.dirs:日志目录,确保磁盘与权限正确。
  • 监听器与内外网示例(同时支持内网与外网)
    # 监听器:内网与“外部”两个入口
    listeners=INTERNAL://192.168.100.10:9092,EXTERNAL://0.0.0.0:9093
    
    # 指定 Broker 间通信使用的监听器
    inter.broker.listener.name=INTERNAL
    
    # 对外广告地址(EXTERNAL 使用主机名或公网 IP,需可解析)
    advertised.listeners=INTERNAL://192.168.100.10:9092,EXTERNAL://kafka.example.com:9093
    
    # 监听器协议映射(测试环境用 PLAINTEXT;生产建议 SSL/SASL)
    listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
    
    # 若仍使用 Zookeeper(非 KRaft)
    zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
    
    • 要点:客户端以 advertised.listeners 为准;Broker 间用 inter.broker.listener.name 指定的监听器;内外网同时可用时,需同时配置 listenersadvertised.listeners 的多个条目。

三 常见网络场景与配置模板

  • 仅内网访问(最简)

    listeners=PLAINTEXT://192.168.1.10:9092
    advertised.listeners=PLAINTEXT://192.168.1.10:9092
    zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181
    
  • 内外网分离(推荐做法)

    listeners=INTERNAL://内网IP:9092,EXTERNAL://0.0.0.0:9093
    inter.broker.listener.name=INTERNAL
    advertised.listeners=INTERNAL://内网IP:9092,EXTERNAL://公网域名或IP:9093
    listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
    
    • 说明:内网客户端连 内网IP:9092,外网客户端连 公网域名:9093;Broker 间走内网监听器。
  • 使用 KRaft(Kafka Raft Metadata,替代 Zookeeper)

    process.roles=broker,controller
    controller.quorum.voters=1@192.168.1.10:9093,2@192.168.1.11:9093,3@192.168.1.12:9093
    listeners=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
    inter.broker.listener.name=PLAINTEXT
    advertised.listeners=PLAINTEXT://内网IP:9092
    listener.security.protocol.map=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
    
    • 说明:KRaft 下 controller.quorum.voters 承担元数据一致性;仍需开放 9092/9093

四 验证与排障

  • 本机端口监听
    • ss -tnlp | grep -E ‘:(9092|9093|2181)’
  • 连通性测试
    • 内网:nc -vz 内网IP 9092
    • 外网:nc -vz 公网域名 9093
  • 元数据与 Topic 验证
    • 列出 Topic:kafka-topics.sh --bootstrap-server 目标地址:端口 --list
    • 生产/消费:使用对应的 bootstrap-server(外网用 EXTERNAL 端口)
  • 常见问题
    • 只配了 advertised.listeners 而没配 listeners,会导致外部可达但本机/内网异常;内外网同时可用时两者都要配。
    • 外网域名无法解析:在客户端或 /etc/hosts 配置解析;EXTERNAL 主机名必须可解析为可达 IP。
    • 防火墙/安全组未放行:放行 9092/9093/2181;云上需同时配置实例安全组与系统防火墙。

五 生产网络与安全加固建议

  • 加密与认证
    • 启用 SSL/TLS 加密通道(配置 listener.security.protocol.map、ssl.keystore/truststore 等)。
    • 启用 SASL(如 SASL_PLAINTEXT/SASL_SSL)进行身份认证(配合 JAAS)。
  • 资源与稳定性
    • 合理设置 socket.send.buffer.bytes / receive.buffer.bytes / socket.request.max.bytes,匹配带宽与消息上限。
    • 设置 min.insync.replicas、副本数与分区数,结合业务吞吐与可用性目标。
  • 运维与监控
    • 建议用 systemd 托管 Kafka 服务,规范启停与日志;接入 监控/告警(如 JMX + Prometheus/Grafana)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos kafka网络配置
本文地址: https://pptw.com/jishu/787840.html
centos kafka生产消费 kafka在centos上的数据恢复

游客 回复需填写必要信息