物联网网关和云服务器消息传递

时间:2017-06-09 11:07:47

标签: java websocket mqtt iot

我正在使用我的云服务器实现物联网网关(在每个场所运行)。我设计的方式是,IoT网关通过Web服务器与云服务器建立连接,以便从移动设备接收命令。通过互联网连接的移动设备将命令传递给云服务器,然后将命令发送到物联网网关。我希望实时接收所有命令 什么是编写命令的最佳选择,物联网网关应该监听其数据

  • MQTT类型的消息代理(建议MQTT适用于Machine To Machine连接,但我的用例是订阅消息并接收它)
  • PUB / SUB机制(Kafka / Streaming)

它应具有高度可扩展性和容错能力。

3 个答案:

答案 0 :(得分:1)

GitHub上有一些项目,可以满足您的需求。我可以指向java sample code on GitHub,用于将命令发布到设备。您可以根据需要进行修改。

通常我使用Kafka从设备收集数据,然后将它们发送到一些后端数据处理。在后端Hadoop,Elastic搜索,Mongodb等被保留。我使用NodeRed进行视觉流编辑。我想你已经有了一个计划。

您可以查看StackOverflow上特定供应商服务所讨论的类似主题,以进行调试/开发,例如Publishing commands to device in IBM IoT using MQTT in Java

答案 1 :(得分:0)

我在去年也实现了这种类型的服务,在我的实现中我使用了MQTT(mqtt的emqtt实现),因为它非常适合实时服务,并且它足够快速地交换命令,如转向灯。在这个项目中,我使用Kafka从设备收集数据并将它们发送到一些数据处理系统。

答案 2 :(得分:0)

考虑同时使用MQTT和Kafka。 我使用mqtt用于设备到设备和设备到数据中心消息传递(在mqtt中使用在DMZ中运行的mosquitto代理的分区群集)。然后在后端我运行一个MQTT Kafka源连接器,它将所有mqtt流量重新发布到Kafka主题(以mqtt主题为关键),并将其重新发布到一堆用于流分析的Kafka Streams作业和一些用于存储数据的Kafka接收器连接器AWS S3存储桶中的术语或用于批量分析或交互式查询的各种存储库(即Mongodb,Hadoop,弹性搜索等)