【问题标题】:IoT data system design: Google Pub/Sub vs Kafka vs Kinesis vs PubNub for IoT data ingestion?物联网数据系统设计:用于物联网数据摄取的 Google Pub/Sub vs Kafka vs Kinesis vs PubNub?
【发布时间】:2017-04-28 08:26:08
【问题描述】:

我正在尝试构建一个 IoT + 数据分析系统,但我无法决定使用什么技术或服务进行数据采集。

最终目标的高级描述是:

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

我的问题是,如果我们只需要大约 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 生产者在网关设备中,是否需要在 Kafka 代理前面有什么特别的东西才能让它们接受来自网关设备的消息?
  4. PubNub 可用于将命令发送回 IoT 设备。这也可以通过 Google Pub/Sub 或 Kafka 完成吗?
    1. 要将命令推送到 IoT 设备 使用 Kafka,每个网关设备是否都需要一个消费者来等待来自其订阅的主题的消息? (例如命令)

另外,不确定是否值得一提,但目前,团队只有我和另外 2 个全栈开发人员。我们已经阅读了 Kafka 和 Zookeeper,但我们都没有发布过它的教程示例。

【问题讨论】:

  • 最好将您的问题列表分成(至少)4 个不同的问题,以便可以分别解决每个问题。由于 Stack Overflow 上也没有很好地接受软件/库推荐,您可能想看看 IoT siteSoftware Recommendations(尽管 Software Recs 无法处理您的概念性问题,只是推荐方面)。跨度>

标签: apache-kafka publish-subscribe iot pubnub


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    所有的好问题。 (完全披露我为 PubNub 工作)

    PubNub 不仅仅是 pub/sub(我稍后会谈到)。 First PubNub 被构建为全球分布式网络是有原因的——因此我们可以通过本地接入点为世界各地的所有设备提供低延迟连接。由于这种分布式架构,您的设备将始终连接到离它们最近的 POP,并且因为我们在全球范围内复制消息,如果服务器或节点出现故障,您将自动重新连接到下一个最近的节点,而不会丢失消息。因此,PubNub 为所有客户提供 99.999% 的正常运行时间 SLA。

    谈到构建与购买决策时,我可以告诉您,我们的许多客户一开始以为他们可以自己构建它,但很快意识到这项工作远远超出了他们的预期 - read more here。构建和维护客户端库、扩展后端、24-7 监控和安全性都是您需要具备内部专业知识的所有事情。如果您考虑到前期开发成本、持续维护(与今天下载 SDK 相比),请立即开始编码,这样您就可以使用已知的可扩展解决方案更快地进入市场。

    PubNub 是根据交易定价的,因此根据设备数量和流量水平,我敢打赌,总成本仍将低于一名全职员工。为此,您可以从 70 多个客户端 SDK 中进行选择,利用经过验证的可扩展架构,利用已经内置的安全功能,让完整的团队随时准备好 24/7 全天候提供帮助,这样您就可以专注于创新而不是基础设施。

    PubNub 不仅仅是 Pub/Sub。 PubNub 不仅提供实时消息传递,还通过其programmable network 提供状态管理和无服务器计算。 PubNub 允许您在网络中编写和部署函数,事实上,PubNub BLOCKS Catalog 中已经有 30 多个预构建函数可供您在数据更改时发送 SMS、电子邮件等。

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

    您说 PubNub 可用于remote device control 也是正确的。今天,Insteon、Logitech、Samsung、Wink 等都在使用它。

    如果您有任何其他问题,PubNub 有出色的支持人员 24/7 提供服务 - support@pubnub.com 或点击网站上的聊天。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 2017-02-03
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      相关资源
      最近更新 更多