首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IoT心跳监测系统,需要一些架构方面的建议

IoT心跳监测系统,需要一些架构方面的建议
EN

Stack Overflow用户
提问于 2016-09-09 13:03:10
回答 1查看 280关注 0票数 0

首先,对于这样一个开放式的问题,我很抱歉,但我不知道有任何其他平台可以发布这样的问题。

因此,基本上我是在一个IoT平台上工作,在这个平台上,大约有200万台设备应该连接到很少的网关。现在我有了一个需求,我需要监视每个设备的心跳(定期),并且在一些丢失的心跳的基础上,我想从网络控制台添加/删除该设备。

我计划在设备和网关之间放置一个kafka队列,以便定期数据可以排队并存储在某个位置,然而,当我必须在网关级别监视每个心跳并确定哪个设备在给定的浸泡时间内错过了心跳时,我的问题就开始了。我不能维护一个大的数据结构来保持映射,DB对于NRT或RT系统来说将是昂贵的,任何建议应该如何设计。

我的平台是Java驱动的,所以任何建议,如果其他一些开源平台可以满足法案或任何设计方法。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-09-09 18:41:51

您的用例是大数据系统中经常发生的典型异步摄取+处理。

您在活动摄取时选择Kafka是完美的(不要忘了查看监控Kafka的方法。我认识的大多数人都认为Kafka是神奇的药丸,它将解决他们所有的问题,结果却发现,他们将自己的系统投入生产的时间,缺乏对Kafka集群的监控,这让他们吃了苦头)

现在在网关层的处理部分,你可以看看像Spark (streaming)/Storm/Flink这样的系统。我对Spark非常熟悉,你的用例看起来更像是带窗口的spark流媒体。如果您已经熟悉Scala,那么它具有很好的伸缩性,并且开发周期也很简单(他们的Java API也非常简单)。

您不需要数据库,除非您想要维护已取出的设备以及何时取出的历史数据。Spark streaming作业的输出(在每个浸泡时间窗口之后)基本上可以与您的网络控制台通信并关闭设备。需要注意的一件事是您的应用程序的浸泡时间-如果它很大,那么您可能必须为更多的机器提供RAM和磁盘。Spark非常快,因为它在内存中维护整个数据窗口(如果不能在RAM中保存,还会刷新到磁盘)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39404173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档