架构:MQTT 和 Fluent 位?

物联网 MQTT 系统架构
2021-06-12 13:45:03

我正在使用工业机器,在工业环境中并不总是连接到互联网。

我是物联网的新手,对于我目前的设置,我有两种用法:分析和实时数据。对于分析,我使用 fluentbit 收集数据,并以 elasticsearch 结尾,稍后我会在其中获取数据。我还没有为实时数据设置任何东西。

我发送的数据类型是我的车辆(自主机器和机器人)的位置,以及部分传感器数据。

现在,我看到许多应用程序正在使用 MQTT 将数据发送到像 kafka 这样的流处理进程。我的问题是,我可以保留并扩展我的设置以使用实时数据,还是没有 MQTT 就不现实?


编辑:我的物联网设备是机器人或物料搬运设备(例如叉车)。他们每天工作 12 到 18 小时,然后充电。他们可能无法访问互联网,并且将使用本地网络。

我目前的方法是将 fluentbit 发送到可以访问互联网的本地 PC,然后将其转发到 ES。每个机器人上的 PC 至少有 1 个无内核和 1 Gb 可用内存。

在我测试时,我只有 2 个机器人来测试延迟……所以我不太确定我应该期待什么。

最后但并非最不重要的是,关于现场部分,我相信我缺乏了解的是管道。我需要收集实时显示的数据,也需要收集数据以供将来分析。我当前的设置将所有内容都放在 elasticsearch 中,这听起来不对,但我不知道为什么。我正在花时间阅读它,但我发现的大多数资源都强调工具而不是它们的用法。

编辑 2:所以,我放弃了关于数据采集的流畅位。由于我需要在不同且不可靠的网络环境中流式传输数据,因此我将使用 MQTT,然后将数据传输到 Kafka 并从那里流式传输。我这周做了一个小型 POC,效果很好。挑战是我现在正在处理的缩放。

1个回答

从您上面的陈述中并不清楚,但我假设您对每辆车以及从所有机器收集并将其放入 elasticache 的服务器上都有 fluentbit。如果您已经有足够的 CPU 和内存来在您的车辆上运行 fluentbit,则您不需要 MQTT。
MQTT 通常用于更受限的设备。事实上,MQTT 可以是在服务器(可能是云)端输入 fluentbit 的输入之一。Fluentbit 类似于 kafka。
对于实时部分,根据您将拥有多少客户端和安全需求等,可能只使用 Elasticache 的发布/订阅机制。您可能会发现链的延迟足以满足您的实时数据需求。如果这还不够,而您需要更低的延迟,那么 MQTT 将更适合您。那时,您将使用 FluentBit、Kafka、Flink 还是 Apache Nifi 或……取决于您的习惯。如果您想节省时间,可以考虑寻找现成的东西。AWS 有他们的 KDA,Azure 和 google 也有类似的东西。还有 Thingsboard.io、logz.io 和...(我不隶属于任何一家)请
告诉我们您的决定以及进展情况。