使用 AWS IoT Greengrass 流管理器创建可扩展架构 架构博客
使用 AWS IoT Greengrass 流管理器创建可扩展架构 架构博客
2026-01-27 12:54:32

利用 AWS IoT Greengrass 流控管理创建可扩展架构

关键要点

本文讨论了如何构建一个可扩展的 IoT 架构,以处理来自各种 IoT 设备的数千条关键信息消息。通过引入 AWS IoT Greengrass 流控管理器,您可以降低延迟、数据不一致性以及关键数据丢失的风险,并高效可靠地发送大量数据。

设计一个可扩展的、全球性的实时分布式系统来处理来自各种关键设备的数百万条消息是一项复杂的任务。收集大量数据流或边缘设备的图像识别同样需要可扩展的解决方案。

AWS IoT Core 旨在处理大量物联网 (IoT) 设备每秒发送少量消息的情况。然而,当 IoT 设备每秒发送大量消息时,并且处理发生在边缘时,管理大规模数据流会更具挑战性。此外,在边缘处缓冲或处理的数据可能会增加延迟。

本文将介绍如何使用 AWS IoT Greengrass 流控管理器 创建一个可扩展的 IoT 架构,该架构可以处理来自各种 IoT 设备的每秒数千条关键信息。

转发高吞吐量 IoT 设备的重要消息

让我们通过一个示例来探讨。考虑图 1 中的架构,您有两种类型的 IoT 设备将消息发送到 AWS IoT Core。一组 IoT 设备每秒发送数千条消息,而另一组设备每秒发送数十条消息。

发送数千条消息的 IoT 设备包含关键数据,不可丢失,并且必须在边缘进行处理。而每秒发送数十条消息的 IoT 设备则相对不那么重要。

图 1 IoT 设备向 AWS IoT Core 发送消息

在考虑这一架构时,发送数千条消息的关键信息 IoT 设备采取以下路径:

IoT 设备将数据发送到 AWS IoT Greengrass 组件进行处理,使用的服务质量 (QoS) 为 0。AWS IoT Greengrass 组件处理数据并将其发送到 AWS IoT Greengrass 消息代理。AWS IoT Greengrass 消息代理以 QoS 1 将数据转发给 AWS IoT Core。AWS IoT Core 将数据发送到 Amazon Kinesis Data Streams 进行进一步处理。

相比之下,发送少量消息的 IoT 设备采取的路径如下:

IoT 设备将数据发送到 AWS IoT Greengrass 消息代理。AWS IoT Greengrass 消息代理将数据转发给 AWS IoT Core。AWS IoT Core 将数据发送到 Kinesis Data Streams 进行进一步处理。

由于发送的消息具有关键性质,AWS IoT Greengrass 消息代理配置为以 QoS 1 将消息发送至 AWS IoT Core。然而,当您将 QoS 设置为 1 时,AWS IoT Greengrass 消息代理需要等待确认ACK后才能发送更多数据。

随着 IoT 设备的增加,许多设备选择在将消息发送到 AWS IoT Core 之前进行批量处理。这在处理每秒发送少量消息的 IoT 设备时是一种有效的策略。但当您添加那些每秒发送数千条消息的 IoT 设备时,等待 ACK 的时间可能会增加延迟,并导致后续报告数据时出现不一致。

这是因为 AWS IoT Greengrass 消息代理能够在 QoS 设置为 1 时在等待确认之前向 AWS IoT Core 发送 100 条消息。因此,扩展此架构以处理额外的 IoT 设备可能会变得困难。

有关 AWS IoT Greengrass 消息代理限制的更多信息,请参考 AWS IoT Core 消息代理和协议限制和配额 部分的 AWS 一般参考指南。

为速度和可靠性使用 AWS IoT Greengrass 流控管理器

为了扩展这种架构,您可以使用预构建的 AWS IoT Greengrass 组件,即 AWS IoT Greengrass 流控管理器,直接绕过 Greengrass 消息代理和 AWS IoT Core,将数据发送到 AWS IoT Analytics、AWS IoT SiteWise、Amazon Kinesis 或 Amazon S3。

例如,考虑前述场景,其中一组 IoT 设备每秒发送数千条关键消息,而另一组则发送重要性较低的数据。

相反,您可以使用 AWS IoT Greengrass 流控管理器创建能够轻松可靠地将大量数据从边缘直接发送到 Kinesis 的架构,如图 2 所示。

图 2 AWS IoT Greengrass 流控管理器直接将数据发送到 Kinesis

与图 1 配置相比,发送数千条消息的关键 IoT 设备现在可以采取以下路径:

使用 AWS IoT Greengrass 流管理器创建可扩展架构 架构博客关键 IoT 设备将数据发送到 AWS IoT Greengrass 组件进行处理。AWS IoT Greengrass 组件处理数据并将其发送到 AWS IoT Core 流控管理器。AWS IoT Greengrass 流控管理器将数据直接发送到 Amazon Kinesis Data Streams。

请注意,发送少量消息的 IoT 设备也可以以较低优先级发送到 AWS IoT Greengrass 流控管理器。您仍在使用 AWS IoT Core,但它不再是主要的数据路径。通过继续使用 AWS IoT Core,您可以利用其控制平面功能,例如管理更新、证书和策略。然而,AWS IoT Core 的数据平面功能如 Rules Engine在该架构中不再使用,这可以帮助降低成本。如果您选择绕过 AWS IoT Greengrass 消息代理并使用 AWS IoT Core 流控管理器,那么您必须移动已构建的任何组件,以使处理发生在边缘。

飞兔加速器安卓

在图 2 中的架构中,AWS IoT Greengrass 流控管理器用于绕过主要数据路径,避开 AWS IoT Greengrass 消息代理和 AWS IoT Core。绕过这些服务减少了图 1 中因 AWS IoT Greengrass 消息代理等待 AWS IoT Core 的 ACK 导致的延迟。

AWS IoT Greengrass 流控管理器可以处理每秒数千条消息,因此您可以:

可靠地扩展您的架构创建多个数据路径,同时将关键和非关键数据发送到 AWS IoT Core 流控管理器,同时仍然利用 AWS IoT Core 控制平面功能优先处理您的关键数据路径,以使特定 IoT 设备获得更高优先级创建配置以处理那些网络连接有限或间歇性连接的 IoT 设备。例如,可以创建配置以在互联网连接断开时使用本地存储或内存缓存数据,并在收到目标的 ACK 后冲洗数据。

所有这些功能都可以帮助您减少延迟、成本、数据不一致性以及关键数据丢失的风险。它们还提供了一种扩大架构能可靠处理的设备数量的机制。

通过使用 AWS IoT Greengrass Core SDK 或 AWS IoT 控制台 开始使用流控管理器。

结论

在本文中,我们讨论了如何创建一个可扩展的 IoT 架构,该架构可以处理来自各种 IoT 设备的数千条关键信息消息。将 AWS IoT Greengrass 流控管理器加入到您的架构中,可以通过提供一种绕过 AWS IoT Core 并高效可靠地发送大量数据的方式,来帮助减少延迟、数据不一致性及关键数据丢失的风险。

Neil Mehta

Neil Mehta 是 AWS SMB Greenfield 团队的解决方案架构师。他热衷于帮助客户构建符合其特定需求的可扩展解决方案。在业余时间,Neil 喜欢与家人共度时光,并为他在华盛顿特区的本地运动队加油。