2017-06-17 71 views
0

我已经实现了Kakfa接收来自IoT网关的数据(在Linux上运行的小型系统 - 它连接其他设备并发送命令),其中在物联网网关中写入日志,设备命令等数据。这个平台也将用于分析等。Kakfa发布物联网网关数据

现在,我想从我的集中式平台(服务器 - 在云端 - 数据中心)发送命令到IoT网关,我可以使用相同的Kakfa连接还是需要切换到其他协议?

回答

0

卡夫卡作为摄入系统非常棒,因此它非常适合像您的遥测这样的物联网场景。 当您需要发送命令来控制设备时,您可以从发布/订阅模式切换到请求/响应模式,云平台会发送命令并等待设备的回复(接受,执行,接受命令)。 ..)。 即使在这种情况下,异步需求和时间解耦也需要消息基础架构,因为当系统发送命令时,物联网网关可能不在线。同时你不希望在很多时间后(当设备重新联机时)执行一个陈旧的命令,所以TTL(时间离开)是一个很好的消息特性。 使用Kafka,你有一个事件日志,你可以在其中存储很长时间的所有消息并重新读取流:这些功能对于遥测非常有用,可能不适用于控制命令&。在这种情况下,像ActiveMQ Artemis这样的消息传递代理系统可能是正确的选择,例如使用发送命令的队列和用于回复的队列。该命令在使用或TTL到期时将被删除。当然,使用不同主题的Kafka仍然是可能的,但消费者需要处理消耗的命令,而不必重新读取流,避免执行两次或更多命令。只是我的2美分...

+0

谢谢你的详细洞察力。,分析了几个框架后,我看着EMQTT。它会适合吗? – syv

+0

即使MQTT并不完全支持开箱即用的请求/回复,因为它实现了发布/订阅模式。当然,您可以对此执行请求/回复(对于命令),并以特定方式定义主题。您可以从这篇文章中获得更多见解:https://dzone.com/articles/strengths-and-weaknesses-of-iot-communication-patterns – ppatierno

+0

我有两种沟通方式1.通过互联网;移动 - >云服务器 - >物联网网关2.在局域网移动 - >局域网(路由器) - >物联网网关。你能为这种情况建议好的选择吗? – syv