【发布时间】:2021-11-23 12:00:16
【问题描述】:
我正在使用 GCP 处理和存储从模拟物联网设备发送的数据。数据(应该)在以下路径中流动:
[带mqtt客户端的模拟物联网设备] -> [物联网核心设备] -> [物联网核心注册表] -> [发布/订阅主题] -> [发布/订阅订阅] -> [云数据流发布/订阅订阅到 BigQuery 模板] -> [BigQuery 表]
我所在的公司有一些 GCP 配置(它在 VPC 上),这要求我指定一个 subnet for DataFlow to even run 。当数据流在指定子网后运行时,它什么也不做。它不会从订阅中提取数据,也不会输出任何错误消息。它显然不知道数据正在发送到主题和订阅。我还尝试了 BigQuery 模板的云数据流发布/订阅主题,但它也没有任何作用。我已验证数据正在发送到订阅。
解决此问题的最佳方法是什么?我不知道为什么这两个组件之间没有通信。
【问题讨论】:
-
我认为我们想深入研究订阅的性质。它是客户端有效地拉取消息的拉订阅还是 GCP 将消息作为 REST 请求发送的推送订阅?消息是否针对订阅累积?如果不是,这可能表明“某事”正在检索它们,但不是您的想法。如果我站在你的立场上,我会暂停订阅的任何消费者并检查消息是否在累积。然后我会用 gcloud 测试它们是否可以根据需要进行检索。
-
这是一个拉取订阅。消息会累积并且不会被检索。我还尝试了 BigQuery 模板的 Dataflow 发布/订阅主题,并且我还观察到消息在该模板创建的订阅中累积。我还能够使用 GCP CLI 手动检索消息。
标签: google-cloud-platform google-bigquery google-cloud-dataflow google-cloud-pubsub private-cloud