【问题标题】:IoT Gateway and Cloud Server messaging物联网网关和云服务器消息传递
【发布时间】:2023-04-10 06:10:02
【问题描述】:
我正在使用我的云服务器实现 IoT 网关(在每个场所运行)。我设计的方式是,物联网网关通过网络套接字与云服务器建立连接,以接收来自移动设备的命令。通过互联网连接的移动设备将命令传递到云服务器,然后将命令发送到物联网网关。我想实时接收所有命令
编写命令的最佳选择是什么,物联网网关应该监听它的数据
- MQTT 类型的消息代理(建议 MQTT 适合机器到机器的连接,但我的用例是订阅消息并接收它)
- PUB/SUB 机制(Kafka/Streaming)
它应该具有高度可扩展性和容错性。
【问题讨论】:
标签:
java
websocket
mqtt
iot
【解决方案2】:
我在去年也实现了这种类型的服务,在我的实现中我使用了 MQTT(emqtt mqtt 的实现),因为它非常适合实时服务,并且它足够快,可以像打开灯一样交换命令.在这个项目中,我使用 Kafka 从设备收集数据并将它们发送到一些数据处理系统。
【解决方案3】:
考虑同时使用 MQTT 和 Kafka。
我使用 mqtt 进行设备到设备和设备到数据中心的消息传递(在 mqtt 的 DMZ 中运行一个分区的 mosquitto 代理集群)。然后在后端我运行一个 MQTT Kafka 源连接器,它将所有 mqtt 流量重新发布到 Kafka 主题(以 mqtt 主题作为键)和一堆用于流分析的 Kafka Streams 作业和一些 Kafka Sink 连接器来长时间存储数据术语在 AWS S3 存储桶或用于批量分析或交互式查询的各种存储库(即 Mongodb、Hadoop、Elastic 搜索等)