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

目前,数据流转方式有两类:

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

云产品流转与服务端订阅对比

目前,数据流转方式有两类:

  • 云产品流转:对设备数据进行过滤并转换,然后再流转到其他阿里云云产品实例。
  • 服务端订阅:通过AMQP或消息服务(MNS)客户端直接获取设备消息。

两者的对比如下表所示。

流转方式 使用场景 优缺点 使用限制
云产品流转
  • 复杂场景。
  • 海量吞吐量场景。

优点:

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

    数据流转至其他阿里云云产品简要对比,请参见下表表 1

缺点:

需编写SQL和配置规则,使用相对复杂。

请参见云产品流转使用限制
服务端订阅
  • 单纯的接收设备数据的场景。
  • 服务端接收产品下已订阅的全部设备数据。

优点:相对简单易用且高效。

缺点:缺少过滤和转换能力。

请参见服务端订阅使用限制
表 1. 云产品流转各方案对比
流转目标 使用场景 优点 缺点
实例内的时序数据存储
说明 仅用户购买的企业版实例支持实例内的时序数据存储。
适合根据设备数据进行业务分析和监控的场景。 数据直接写入实例内的时序数据存储。 -
消息队列RocketMQ 要对设备数据进行复杂或精细化处理的海量设备场景。

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

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

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

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

性能略低于消息队列RocketMQ。

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

服务端订阅

服务端可以通过AMQP SDK或消息服务(MNS)SDK接收已订阅的产品下所有类型的消息,包含设备上报消息、设备状态变化通知、设备生命周期变更、物模型历史数据上报、OTA升级状态通知、网关发现子设备上报、设备拓扑关系变更等。

使用限制 使用注意 相关文档
  • 不支持细粒度的过滤及订阅功能,只能接收租户下全部的消息。
  • 目前,单消费组的QPS限制为1,000 QPS。

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

  • 服务端订阅的特性是保障实时消息优先,会对堆积消息降级处理。请确保消费端能及时消费。
  • 服务端订阅不能满足需对数据进行高级过滤以及精细化处理的场景,这类场景推荐使用规则引擎。

云产品流转到消息队列RocketMQ

通过云产品流转功能,将物联网平台中指定Topic的消息流转到RocketMQ中的Topic,然后通过RocketMQ的SDK接收相应的消息。

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

云产品流转到消息服务(MNS)

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

使用限制 使用注意 相关文档

请参见MNS使用限制中,主题相关使用限制。

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

云产品流转到函数计算

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

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