【发布时间】:2021-03-19 00:53:00
【问题描述】:
我正在使用数据流 kafka 到 bigquery 模板。启动数据流作业后,它会在队列中停留一段时间,然后失败并出现以下错误:
java.lang.RuntimeException: org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata
在启动工作时,我提供了以下参数:
- kafka 主题名称
- 引导服务器 ip 和端口(私有 ip)
- bigquery 主题名称
- SA 电子邮件
- 区域。
- 网络、子网(运行 kafka 服务器的同一网络)
我的 kafka 主题仅包含消息:你好
kafka 安装在 gcp 实例中,该实例与 dataflow worker 位于同一区域和子网中。
【问题讨论】:
-
问题似乎在 Kafka 一方,以下Stackoverflow thread 中提到了一个可能的解决方案,其中提到在尝试连接到期望 SSL 连接的代理时可能会发生该问题,并且客户端配置未指定,解决方案是将安全协议设置为 SSL:
security.protocol=SSL -
确保您的 Kafka 代理
listeners属性设置为外部绑定 -
嘿,谢谢@OneCricketeer,我正在尝试使用内部 ip 访问 kafka。当我将它添加到公共 IP 时它起作用了。实际上我在同一个子网中同时运行卡夫卡机器和工人。所以它也应该与内部 ip 一起使用......我现在正在检查它
标签: apache-kafka google-cloud-dataflow dataflow