在许多场景中,您需要将设备上报给物联网平台的数据进行加工处理或用于业务应用。使用物联网平台提供的服务端订阅功能和规则引擎数据流转功能,均可实现设备数据流转。本文对比物联网平台支持的各流转方案及使用场景,帮助您选择合适的流转方案。

设备数据流转方案汇总



目前,流转方式有两类:

  • 规则引擎数据流转:提供初级的数据过滤转换能力。支持对设备数据进行过滤并转换,然后再流转到其他阿里云云产品实例。
  • 服务端订阅:通过HTTP/2客户端直接获取设备消息。可快速地获取设备消息,无消息过滤和转换能力,功能较为单一,但是简单易用且高效。

规则引擎 vs 服务端订阅

流转方式 适用场景 优缺点 使用限制
规则引擎
  • 复杂场景。
  • 海量吞吐量场景。

优点:

  • 功能相对完备。
  • 支持在规则运行时,调整流转规则。
  • 支持对数据进行简单过滤处理。
  • 支持将数据流转至其他阿里云云产品。

    数据流转至其他阿里云云产品简要对比,请参见下表:规则引擎各方案对比。

缺点:

  • 需编写SQL和配置规则,使用相对复杂。
请参见规则引擎使用限制
服务端订阅
  • 单纯的接收设备数据的场景。
  • 同时满足以下条件的场景:
    • 云端接收全部设备数据。
    • 设备端采用Java语言或.NET语言开发。
    • 设备数据流转性能要求不超过5000条/秒。

优点:

  • 相对简单易用。

缺点:

  • 缺少过滤能力。
  • 目前仅支持Java和.NET语言SDK。
请参服务端订阅使用限制
表 1. 规则引擎各方案对比
流转目标 适用场景 优点 缺点
消息队列 RocketMQ 要对设备数据进行复杂或精细化处理的海量设备场景。

设备消息量>1000 QPS的场景,推荐使用消息队列 RocketMQ。

  • 稳定可靠。
  • 支持海量数据。
公网支持略差(铂金版公网性能较好)。
消息服务 (MNS) 公网环境场景下,对设备数据进行复杂或精细化处理。

设备消息量<1000 QPS的场景,推荐使用MNS。

  • 采用HTTPS协议。
  • 公网支持较好。

性能略低于消息队列 RocketMQ。

云数据库RDS版 适合单纯的数据保存场景。 数据直接写入数据库。 -
时序时空数据库(TSDB) 适合根据设备数据进行业务分析和监控的场景。 数据直接写入时序数据库。 -
DataHub 适合需对数据进行分析处理的场景。 数据直接写入DataHub。 -
表格存储 (Table Store) 适合单纯的数据存储场景。 数据直接写入表格存储实例。 -
函数计算(Function Compute) 需要简化设备开发过程,且对设备数据进行一定自由度的处理的场景。
  • 数据处理自由度高。
  • 功能多。
  • 无需部署。
费用略高。

服务端订阅

服务端可以通过SDK订阅产品下配置的所有类型的消息,包含设备上报消息,上下线消息等。

使用限制 使用注意 参考文档
  • 目前,仅支持Java SDK (需要JDK 8及以上环境) 以及 .NET SDK,其他语言暂不支持。
  • 不支持细粒度的过滤及订阅功能,只能接收租户下全部的消息。
  • 目前,流转的消息QPS限制为1000 QPS。如果业务需求超过该限制,需要通过工单申请的方式调整。

使用限制可能更新,详细的服务端订阅使用限制,请参见使用限制

  • 适合最大消息量< 5000 QPS的流转场景。
  • 请务必考虑消息丢失,以及消息延迟到达对业务系统的影响。对于重要的消息,请在业务层做好防护。
  • 服务端订阅不能满足需对数据进行高级过滤以及精细化处理的场景,这类场景推荐使用规则引擎。

规则引擎 + 消息队列 RocketMQ

通过规则引擎数据流转功能,将物联网平台中指定Topic的消息流转到RocketMQ中的Topic,然后通过RocketMQ的SDK接收相应的消息。

  • 因为RocketMQ性能突出,推荐通过RocketMQ接收设备消息。
  • RocketMQ支持跨租户的Topic授权,可满足一定场景的跨租户的数据流转需求。
使用限制 使用注意 参考文档
  • RocketMQ的公网测试集群不能用于生产环境。
  • RocketMQ的非公网endpoint无法用于本地调试,需要在该地域的ECS中运行调试。
  • RocketMQ的公网测试集群可以支持开发者本地接收消息,但是稳定性很差,请勿用于线上生产环境。
  • 对于较大的设备消息量场景(> 5000 QPS)或者稳定性要求特别高的场景, 推荐使用RocketMQ铂金版。
  • 规则引擎数据流转失败,然后再重试失败数次后,会丢弃消息。另外,消息类产品存在延迟的可能,业务场景一定要做好消息丢失或者延迟送达的影响防护。

规则引擎 + 消息服务(MNS)

可以通过规则引擎数据流转功能,将指定Topic的消息流转到MNS的主题中,然后通过MNS的SDK接收相应的消息。MNS对公网环境支持友好。设备消息量不是特别大(< 1000QPS),推荐使用MNS。

使用限制 使用注意 参考文档

请参见消息服务使用限制文档

规则引擎数据流转失败后,再重试失败数次后,会丢弃消息。另外,消息类产品存在延迟的可能,业务场景一定要做好消息丢失或者延迟送达的防护。

规则引擎 + 函数计算

通过规则引擎数据流转,将指定Topic的消息转入到函数计算中,开发者可以进一步对消息进行处理。函数计算免部署,可以简化业务的开发。

使用限制 使用注意 参考文档
请参见函数计算使用限制
  • 适用于对于设备消息有定制化的处理需求或者需简化开发运维的场景。
  • 规则引擎数据流转失败后,再重试失败数次后,会丢弃消息。业务场景一定要做好消息丢失或者延迟送达的影响防护。