物联网数据系统设计:Google Pub/Sub vs Kafka vs Kinesis vs PubNub用于物联网数据摄取?

gun*_*nit 5 publish-subscribe pubnub apache-kafka iot

我正在尝试构建一个IoT +数据分析系统,我无法决定使用哪种技术或服务进行摄取.

最终目标的高级描述是:

  1. 物联网设备将数据推送到物联网网关(使用Zigbee,Z波,蓝牙等)
  2. 物联网网关(连接到互联网)将数据推送到发布/订阅系统
  3. 后端服务处理来自pub/sub系统的数据,更新仪表板并发送警报

我的问题是,如果我们只需要~10秒的响应时间,我们应该使用什么样的pubsub系统?(例如,以下是可接受的:物联网设备检测到事件,然后大约10秒后它会显示在用户的仪表板上或发出警报)

以下是我的一些问题:

  1. 我看到PubNub在物联网中广告宣传了很多东西.我的理解是,PubNub基本上是一个非常快速的pubsub系统,保证不到1/4秒的交付 - 这是对它的正确理解吗?但与使用Google的Pub/Sub或维护我们自己的Kafka相比,PubNub有点贵.
  2. Google Pub/Sub在某种意义上与PubNub类似,因为与单个数据中心中运行的单个自我管理的Kafka群集不同,Google Pub/Sub拥有自己的网络,因为它是Google的一部分吗?(类似于PubNub是一个"数据流网络"?)
  3. 如果我使用Kafka,生产者应该在网关设备中吗?
    1. 如果生产者不在网关设备中,那么Kafka生产者是否应该在我们的服务器上并且有一个REST API来接受来自网关设备的消息?
    2. 如果Kafka生产商IS在网关设备中,是否需要在Kafka经纪人面前有任何特殊的东西让他们接受来自网关设备的消息?
  4. PubNub可用于将命令发送回IoT设备.这可以通过Google Pub/Sub或Kafka完成吗?
    1. 将命令推送到IoT设备使用Kafka,每个Gateway设备是否需要一个等待来自其订阅主题的消息的消费者?(例如命令)

此外,不确定是否值得一提,但目前,该团队只是我和其他2个完整堆栈开发人员.我们已经阅读了Kafka和Zookeeper,但我们都没有过去推出它的教程示例.

小智 5

所有伟大的问题。(我为PubNub工作的全部披露)

PubNub的方式远不止pub / sub(我稍后会介绍)。First PubNub之所以成为全球分布式网络是有原因的,因此我们可以通过本地存在点为全球所有设备提供低延迟连接。由于采用这种分布式体系结构,您的设备将始终连接到最接近它们的POP,并且由于我们是全局复制消息的,因此如果服务器或节点出现故障,您将自动重新连接到下一个最近的节点,而不会丢失消息。因此,PubNub为所有客户提供了99.999%的正常运行时间SLA。

当谈到构建与购买决策时,我可以告诉您,我们的许多客户开始时都以为自己可以构建它,但是很快就意识到这项承诺远远超出了他们的预期- 在这里阅读更多。建立和维护客户端库,扩展后端,24-7监控和安全性都是您拥有内部专业知识所需要的全部。如果考虑到前期开发成本,持续维护-与今天下载SDK相比,请立即开始编码,以便使用已知的可扩展解决方案更快地推向市场。

PubNub的价格是根据交易定价的,因此,我想根据总的设备数量和流量水平,总费用仍会少于一名全职员工。为此,您可以从70多个客户端SDK中进行选择,利用经过验证的可扩展架构,利用已经内置的安全功能,拥有一支完整的团队,随时准备为24/7提供帮助,因此您可以专注于创新而不是基础设施。

PubNub比Pub / Sub更重要。PubNub不仅通过其可编程网络提供实时消息传递,而且还提供状态管理和无服务器计算。PubNub允许您在网络中编写和部署功能,实际上,PubNub BLOCKS Catalog中已经有30多个预构建的功能可用,这些功能允许您在数据更改时发送SMS,电子邮件等。

PubNub还创建了一个开源项目,用于构建称为Project EON的实时仪表板。这使得为​​所有设备数据提供实时可视化变得非常容易。

您还可以正确地说出PubNub可用于远程设备控制。今天,Insteon,Logitech,Samsung,Wink等公司正将其用于此用途。

如果您还有其他疑问,PubNub会提供出色的支持人员24/7-support@pubnub.com或单击网站上的聊天。


Han*_*sen 5

我会推荐选项 3.1,因为我个人知道它在许多物联网用例的生产中得到了证明,包括一个涉及超过 2000 万台设备的用例。Confluent Kafka REST 代理是开源的,是将来自互联网网关的 REST/HTTP(使用防火墙和负载均衡器友好的 HTTPS 协议)转换为云/数据中心中的 Kafka REST 代理,然后转换为 Kafka 的好方法以及所有支持 Kafka 的所有后端仪表板工具。甚至 IBM 也将这种架构用于他们在 Bluemix MessageHub 上的 IoT 基础设施。如果您不喜欢 REST,那么有 MQTT、CoAP、websockset、AMQP、XMPP 和许多其他 Kafka 连接器可供选择。