边缘服务器和 mqtt 代理之间的区别

物联网 MQTT 边缘
2021-06-02 11:42:16

由于我是物联网世界的新手,我想请教一下。

我在某处阅读了关于让设备通过边缘服务器相互通信或将信息存储在数据库中的一般想法。然后我开始阅读 MQTT 通信协议,其中提到了“管理”MQTT 客户端信息的代理的概念。

那么,MQTT 代理是边缘服务器吗?如果不是,它们之间有什么区别?

1个回答

您的问题有些模棱两可,但您所问的问题似乎确实适合 AWS IoT Greengrass 架构,因此我将使用该拓扑对其进行描述。

首先,您应该了解 MQTT 本身的基本发布/订阅拓扑。MQTT 依赖代理来接收所有消息(已发布),然后将这些消息转发到任何已告诉代理他们想要接收具有特定主题(已订阅)消息的设备。发送消息的设备和接收消息的设备不必相互了解。所有通信都通过代理进行路由。 MQTT 拓扑 -来自HiveMQ MQTT Essentials 的原始图像-

基于云的 MQTT 代理是 AWS IoT Core 的一部分,处理 MQTT 消息的路由。在 AWS Greengrass 拓扑中,GG 核心设备与 AWS IoT 云服务进行通信,同时它也充当 IoT 边缘设备的网关。因此,您可能拥有一个运行与 AWS IoT 通信的 GG Core 软件的 Raspberry Pi,以及几十个带有传感器的 ESP32,这些传感器运行 FreeRTOS,这些传感器与同一本地网络上的 Raspberry Pi 进行通信。在这种情况下,来自 ESP32 的数据不会直接进入 AWS。它们通过本地 Raspberry Pi 路由。

除了充当网关之外,Raspberry Pi 还可以处理从 ESP32 本地收集的数据,而无需与云通信。它还可以聚合从本地 ESP32 收集的数据,并在一条消息中将其推送到云端,而不是为每条数据发送单独的 MQTT 消息。

总而言之,在这种情况下,MQTT 代理位于 AWS 云中,Raspberry Pi 是 Greengrass Core“边缘服务器”,而 ESP32 是仅在本地网络上通信的边缘设备。

AWS IoT Greengrass -来自亚马逊网络服务开发人员指南的原始图像-