centos kafka网络配置
导读: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 之间、客户端到 broker 的 9092/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 指定的监听器;内外网同时可用时,需同时配置 listeners 与 advertised.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
