MQTT 到 Google Cloud PubSub 重新发布解决方案的设计方法/模式

Posted

技术标签:

【中文标题】MQTT 到 Google Cloud PubSub 重新发布解决方案的设计方法/模式【英文标题】:MQTT to Google Cloud PubSub republishing solution design approach / pattern 【发布时间】:2021-12-28 06:00:06 【问题描述】:

上下文

我正在设计一个解决方案,我需要将传感器数据从不同类型的constrained devices 提取到 Google Cloud PubSub。

前置条件

这些受限设备仅支持 MQTT 并且仅支持基于 TCP 的 MQTT他们不支持 MQTT over TLS,并且无法进行任何类型的基于证书的连接。 不过,我确实可以灵活地选择 MQTT 代理。

鉴于上下文和前提条件,请建议我可以将消息从 MQTT 重新发布到 Google PubSub 的方法。

提前致谢!

【问题讨论】:

你的问题更多是关于设计和架构,不适合***。请在Software Engineering Stack Forum提问。 【参考方案1】:

几乎所有 MQTT 代理都支持桥接到其他代理。

因此,设备将使用原始 MQTT 连接到您的代理,然后它会使用 MQTT over TLS 创建到 Google IoT Broker 的单一 TLS 身份验证连接,并通过该连接转发所有消息。

这意味着不需要单独的客户端连接到两个代理并转发消息。

【讨论】:

感谢您的回复。作为前提条件,我已经提到设备不支持 TLS,它们只能支持 TCP,这基本上排除了 GCP MQTT 桥接方法。如果我遗漏了什么,请告诉我。 设备不需要使用 TLS,它们只需像往常一样连接到您的代理,然后代理通过 TLS 上的 MQTT 连接到 Google(正如我在答案中明确指出的那样) 感谢您的澄清。我将对此进行 POC 并查看。 为什么我必须使用谷歌物联网核心?而且我已经有一组 PubSub 主题,我希望这些 MQTT 消息被重新发布/重定向到。在您提出的方法中,这可能吗?我不希望 Cloud IoT 核心接管并使用它自己的主题结构。 我假设您使用的是 Google IoT,因为您提供的 Google MQTT Bridge 的链接明确谈到了将它与 Google IoT Core 一起使用。

以上是关于MQTT 到 Google Cloud PubSub 重新发布解决方案的设计方法/模式的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Cloud pub sub 实现 MQTT

如何更改 Google IoT Core 的 MQTT 主机名

使用 MQTT 更改谷歌云 IoT 中的设备配置

EMQ X Cloud - MQTT 5.0 公有云服务正式发布

使用 MQTTBox 接入 EMQ X Cloud

全托管云原生 MQTT 消息服务EMQ X Cloud 更新支持GCP,集齐全球主流云平台部署