我正计划开始实施以下物联网用例。

用例

物联网设备将通过转发器每分钟向网关发送100k消息,网关将进行转发将消息发送到云。我想跟踪组织中的员工。传感器将固定在其ID卡上。传感器通过中继器将与位置相关的数据(大约15KB /消息)发送到网关。这是出于分析目的。数据传递到云之后,我将进行一些分析并将其存储到数据库中并显示在网页上。根据这些分析数据,我将显示用户的当前位置,以及特定经过时间段(过去1小时或2小时或1天)内用户的移动位置。

我将对数据并将其发送到前端/数据库。

我已经了解了IoT基础知识及其架构。然后,我决定使用“ SMACK”堆栈(Spark,Mesos,Akka,Cassandra,Kafka)体系结构。

我决定在网关中使用“ Kafka本机客户端”将消息发布到云中。

我应该使用MQTT协议将消息传输到Kafka吗?还是上述用例不需要MQTT?

如果是,将MQTT与“ SMACK”体系结构一起使用会有什么好处?

评论

每分钟1.5 MB?每位员工全天?忘记协议,您可能应该退后一步,重新考虑数据本身,找到在传输之前将其提取的方法。

我的想法恰好(+1)。你有几个员工?在拥有2,000名员工的大型(ish)站点上,您几乎每秒都在跟踪他们的位置-谁需要这种准确性?你能做什么呢?为什么需要15kB的经纬度?它的其余部分是什么,它多久更改一次?

只是好奇-您如何跟踪ID?长距离无源RFID?蓝牙?除了无源RFID以外,我还能预见电池问题。

#1 楼

您不必使用MQTT。安装在员工身份证上的Kafka客户端可以将数据直接发送到云中的kafka经纪人。因此,当您将Kafka用于网关时,实际上可以将kafka用于传感器本身。

Kafka和MQTT不可互换,它们具有不同的优势(能耗,带宽消耗,吞吐量)。 。),但我想您知道这一点,但前提是要考虑堆栈的复杂性。 Kafka每分钟可以处理10万条消息。

如果您仍然决定使用MQTT,那么这里是一篇博客文章,介绍IBM如何在同一项目中使用MQTT和Kafka。他们的项目还涉及移动性,因此我认为这可能会有所帮助。

使用Kafka和MQTT管理IoT设备

评论


atayenel,感谢您详细解释。就我而言,我应该使用网关,而不是直接从传感器推送消息。使用MQTT的Google(MQTT)和IBM IOT服务提供商?阅读以下链接后,我有些困惑...您知道为什么吗,有任何特定原因吗?cloud.google.com/iot/docs/concepts/protocols

–SKK
18年1月11日在14:09

Kafka可以处理那么多数据吗?

–莫格说要恢复莫妮卡
18年1月22日在8:05

Kafka在数据吞吐量方面优于mqtt。因此,如果mqtt处理它,kafka也可以处理它。

–atakanyenel
18年1月22日在8:43

@atayenel感谢您的评论。对于我的用例,您对我的最低硬件要求大概有什么建议?

–SKK
18年2月15日在5:46

@SKK我不能完全说出来,但是您可以看一下这个问题。

–atakanyenel
18年2月15日在16:56

#2 楼

几乎任何类型的MQTT代理都可以处理此负载,尤其对于qos = 0(可能是您的情况)的消息而言,这没有问题。我们每秒都有传入的100.000消息(0.5KB)(+ SSL)给我们的代理带来恒定的负载。问题可能出现在流量方面,而不是pps。

关于您的系统体系结构,我个人的建议-尝试使其尽可能简单。简单来说,就是一些中间组件/服务。如果您可以直接连接两个服务,请执行此操作。开始添加功能时,您将始终有可能使其变得更加复杂。

评论


谢谢。您是否要我使用简单的体系结构而不是SMACK?

–SKK
18年3月13日在5:01

你能看看这个iot.stackexchange.com/q/2718/5382吗?

–SKK
18年3月13日在6:29

这完全取决于您,但是我认为我会尽可能简单地创建它,只是在一开始就专注于重要任务。通常的情况是,您对项目前后(或中间)的理解是完全不同的,并且通常您会得出最终结论“如果再次执行此操作,我会做不同的事情”))

–shal
18年3月14日在7:34