公网访问场景下如何配置Kafka的listeners与advertised.listeners
Kafka端口映射场景访问断连问题配置方案
根因说明
公网客户端访问时频繁断连的核心原因是:客户端首次连接Kafka后,会从Kafka服务端获取advertised.listeners配置的地址用于后续所有读写请求,如果该参数配置为内网IP,公网客户端无法访问内网地址就会触发断连。
具体配置(修改server.properties文件)
1. listeners参数配置
该参数定义Kafka服务端本地绑定监听的地址端口,配置为:
listeners=PLAINTEXT://0.0.0.0:9999
也可以指定绑定内网IP:
listeners=PLAINTEXT://11.11.11.11:9999,绑定0.0.0.0兼容性更强,无需随内网IP变动修改配置。
2. advertised.listeners参数配置
该参数定义Kafka对外公告给客户端的访问地址,配置为:
advertised.listeners=PLAINTEXT://<替换为实际公网IP>:19999
注意必须填写公网IP+映射后的公网端口19999,不能填写内网IP和9999端口。
配置验证
修改配置重启Kafka服务后,公网客户端用公网IP:19999连接即可正常读写,不会再出现非网络波动原因导致的断连问题。
内容的提问来源于stack exchange,提问作者datagic
相关产品推荐
相关产品推荐

