怎样配置Linux Kafka的网络参数
导读:Linux Kafka 网络参数配置指南 一 核心配置项与含义 建议同时理解并正确设置以下关键项:listeners(Broker 实际监听的协议/地址/端口)、advertised.listeners(对外公布的地址,客户端与 Brok...
Linux Kafka 网络参数配置指南
一 核心配置项与含义
- 建议同时理解并正确设置以下关键项:listeners(Broker 实际监听的协议/地址/端口)、advertised.listeners(对外公布的地址,客户端与 Broker 会据此连接,不能为 0.0.0.0)、listener.security.protocol.map(监听器名与安全协议映射)、inter.broker.listener.name(指定 Broker 间通信使用的监听器名)、security.inter.broker.protocol(当未设置 inter.broker.listener.name 时,按该协议选择监听器)、control.plane.listener.name(控制面专用监听器,可选)。这些参数共同决定“监听谁、对外通告谁、内外网如何分流、Broker 之间走哪条链路”。
二 常见场景配置示例
- 仅内网访问(最简)
listeners=PLAINTEXT://0.0.0.0:9092 advertised.listeners=PLAINTEXT://192.168.1.10:9092 inter.broker.listener.name=PLAINTEXT - 内外网分流(内网用于 Broker 通信,外网供客户端)
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT listeners=INTERNAL://192.168.1.10:9092,EXTERNAL://203.0.113.20:19092 advertised.listeners=INTERNAL://192.168.1.10:9092,EXTERNAL://203.0.113.20:19092 inter.broker.listener.name=INTERNAL - 启用 SSL 加密(示例)
listener.security.protocol.map=SSL:SSL listeners=SSL://0.0.0.0:9093 advertised.listeners=SSL://kafka.example.com:9093 inter.broker.listener.name=SSL # 并在 server.properties 中补充 SSL 证书/密钥等参数 - 要点
- advertised.listeners 不支持 0.0.0.0;若 listeners=0.0.0.0,必须显式设置对外可达的 advertised.listeners。
- 多监听器时,名称必须唯一;协议映射需与监听器名一致。
- 云上或容器环境,advertised 地址应为客户端可达的 公网/内网 IP 或域名。
三 Linux 系统网络与内核参数
- 文件描述符限制(Broker 连接与文件句柄密集)
# /etc/security/limits.conf * soft nofile 655350 * hard nofile 655350 * soft nproc 655350 * hard nproc 655350 - 虚拟内存与脏页(减少 swap、平滑刷盘)
# /etc/sysctl.conf vm.swappiness=1 vm.dirty_background_ratio=10 vm.dirty_ratio=20 - TCP 与网络栈(提升大吞吐与抗突发)
net.core.wmem_default=4194304 net.core.rmem_default=4194304 net.core.wmem_max=4194304 net.core.rmem_max=4194304 net.core.optmem_max=4194304 net.ipv4.tcp_rmem="4096 87380 4194304" net.ipv4.tcp_wmem="4096 65536 4194304" net.core.netdev_max_backlog=250000 net.ipv4.tcp_window_scaling=1 net.ipv4.tcp_max_syn_backlog=4096 - 应用层 Kafka 网络缓冲(可按带宽/延迟调优)
# server.properties socket.send.buffer.bytes=1048576 socket.receive.buffer.bytes=1048576 - 使配置生效
- limits:重新登录或重启进程生效;sysctl:
sysctl -p。
- limits:重新登录或重启进程生效;sysctl:
四 防火墙与安全组放行
- firewalld
sudo systemctl start firewalld sudo firewall-cmd --permanent --add-port=9092/tcp sudo firewall-cmd --reload - ufw(Debian/Ubuntu)
sudo ufw allow 9092/tcp - 云厂商安全组
- 放行 **Kafka 端口(如 9092)**与 **ZooKeeper 端口(如 2181)**的入站规则,确保客户端与集群节点互通。
五 验证与连通性测试
- 端口监听与进程
sudo netstat -tunlp | egrep "(2181|9092|19092)" ss -lntp | grep :9092 - 本机连通性
nc -vz 127.0.0.1 9092 - 远程连通性
nc -vz < broker_ip> 9092 - 元数据与 Topic 基础校验
# 列出 Topic bin/kafka-topics.sh --list --bootstrap-server < broker_ip> :9092 # 创建测试 Topic bin/kafka-topics.sh --create --topic test --bootstrap-server < broker_ip> :9092 \ --partitions 3 --replication-factor 3 # 控制台生产/消费 bin/kafka-console-producer.sh --bootstrap-server < broker_ip> :9092 --topic test bin/kafka-console-consumer.sh --bootstrap-server < broker_ip> :9092 --topic test --from-beginning - 常见问题排查
- 客户端报“无法解析主机/连接被拒绝”:核对 advertised.listeners 是否为客户端可达 IP/域名,且端口已放行。
- 云上仅内网通、外网不通:检查 安全组/防火墙与 advertised 地址是否指向公网 IP;如需外网访问,配置 EXTERNAL 监听器并放行对应端口。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样配置Linux Kafka的网络参数
本文地址: https://pptw.com/jishu/789754.html
