events - 物联网流数据处理的最佳实践

标签 events stream time-series mqtt iot

我假设有成百上千的物联网设备通过 MQTT 协议(protocol)将数据发布到(代理)MQTT 集群,在代理后面我有数据处理模块,它从代理订阅数据并维护状态表对于所有这些设备。设备数量还在增加,所以我不得不相应地扩展broker集群和数据处理模块,对于MQTT broker,比如Kafka/Rabbit MQ/Hive MQ,可以很容易地扩展,但是对于数据处理模块我不太确定是否有任何最佳实践,或者任何框架/架构都可以很容易地实现这一目标:

我假设我必须创建许多具有成百上千个线程的守护进程来监听 MQTT 代理,问题是如何动态扩展这些服务?

谢谢。

最佳答案

这样做的一种方法是使用 Node.js,因为它使用事件驱动的方法,您不必处理线程等。

我找到了这个特定于 MQTT 的 Node.js 库: https://www.npmjs.com/package/mqtt 您可以使用它来订阅不同的主题。

您可能还会发现这个项目很有趣: http://nodered.org/

另一种解决方案可以使用 Apache Kafka,它具有可扩展性这一重要特性。但是,这里的问题是 Kafka 不支持开箱即用的 MQTT,并且有自己的约定。因此,需要某种适配器使它们协同工作。为此,请看一下: using mqtt protocol with kafka as a message broker

关于events - 物联网流数据处理的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41194394/

相关文章:

c# - 使用 VSTO 在 Excel 中创建命名范围的事件

使用自定义参数的 C# 继承事件

C++,协作 FILE* 和 std 流

c++ - 输出到精确流 float

c - 标准流管道测试失败

mysql - 获取组中最新日期的行?

python - 具有多个时间序列的 PCA 作为具有 sklearn 的一个实例的特征

linux - 如何在 bash 中获取 MouseMove 和 MouseClick?

python - 在 ARIMA 时间序列建模中提取 Adfuller 测试(平稳性测试)列表中的 p 值 python pandas

javascript - 将 onclick 事件设置为元素类 : how to get id of the one clicked? 仅 javascript