Docker部署的Flink无法连接同环境Kafka,如何配置正确的bootstrap.servers?
正确的bootstrap.servers配置值
在当前的Docker Compose部署架构下,Flink作业需要配置为 broker:29092
配置说明
- 你所使用的docker-compose.yml中,Kafka服务的定义名称为
broker,同一Docker Compose默认网络下的所有容器可以直接通过服务名完成域名解析,此前使用kafka作为主机名无法匹配到实际的Kafka容器,因此连接失败。 - 查看Kafka的
KAFKA_ADVERTISED_LISTENERS环境变量可知,Docker内部网络的监听端口为29092,9092是映射到宿主机的对外访问端口,跑在Docker容器内的Flink集群访问Kafka必须走内部端口29092。 - 此前直接填写Kafka容器IP仍然失败,是因为Kafka的广播地址列表中没有对应IP的配置,客户端连接后拿到的可用地址依然是
broker:29092或localhost:9092,无法正常建立后续连接。
操作步骤
- 修改Flink作业中
bootstrap.servers参数值为broker:29092 - 重新提交Flink作业即可正常连接Kafka。
补充说明:如果你的Flink作业是在宿主机本地运行、没有部署到Docker内的Flink集群,则
bootstrap.servers需要填写localhost:9092。
内容的提问来源于stack exchange,提问作者balderman
相关产品推荐
相关产品推荐

