你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

IoT 中心和可靠性

Azure IoT 中心是托管在云中的托管服务,充当中央消息中心,用于 IoT 应用程序及其连接设备之间的通信。 可以安全可靠地连接数百万台设备及其后端解决方案。 几乎任何设备都可以连接到 IoT 中心。

IoT 中心支持监视,以帮助跟踪设备创建、设备连接和设备故障。

IoT 中心还支持以下消息传递模式:

  • 设备到云的遥测
  • 从设备上传文件
  • 用于从云中控制设备的请求-答复方法

有关 IoT 中心的详细信息,请参阅 IoT 概念和 Azure IoT 中心

若要了解 IoT 中心如何支持可靠的工作负载,请参阅以下主题:

以下部分专门介绍 Azure IoT 中心和可靠性:

  • 设计注意事项
  • 配置清单
  • 推荐配置选项

设计注意事项

有关 Azure IoT 中心服务级别协议的详细信息,请参阅 Azure IoT 中心的服务级别协议

清单

是否出于可靠性考虑而配置了 Azure IoT 中心?

  • 在另一个区域预配第二个 IoT 中心,并在设备上建立路由逻辑。
  • 经常发送事件时使用 AMQPMQTT 协议。
  • 如果使用 X.509 证书来连接设备,则在生产环境中仅使用由根 CA 验证的证书。
  • 若要获得最大吞吐量,请在创建 IoT 中心时使用最大分区数 (32),前提是计划使用内置终结点。
  • 对于缩放,增加层级和已分配的 IoT 中心单元,而不是为每个区域添加多个 IoT 中心。
  • 在高吞吐量方案中,使用批处理事件。
  • 如果需要尽量减少延迟,请不要使用路由,并从内置终结点读取事件。
  • 作为解决方案范围内可用性和灾难恢复策略的一部分,请考虑使用 IoT 中心异地灾难恢复选项
  • 从内置的与事件中心兼容的终结点读取设备遥测数据时,请参阅事件中心使用者建议
  • 使用软件开发工具包将事件发送到 IoT 中心时,请确保正确捕获重试策略(EventHubsExceptionOperationCancelledException)引发的异常。
  • 要避免遥测由于网络带宽限制和配额使用完而中断,请考虑添加自定义自动缩放解决方案

配置建议

请考虑以下建议,在配置 Azure IoT 中心时优化可靠性:

建议 说明
在另一个区域预配第二个 IoT 中心,并在设备上建立路由逻辑。 可以使用接待服务进一步增强这些配置。
经常发送事件时使用 AMQPMQTT 协议。 初始化会话时,AMQPMQTT 的网络成本较高,但是 HTTPS 需要为每个请求使用额外的 TLS 开销。 对于需要频繁进行发布的发布者来说,AMQPMQTT 的性能更高。
如果使用 X.509 证书来连接设备,则在生产环境中仅使用由根 CA 验证的证书。 请确保已有恰当的流程用于在证书过期之前更新证书。
若要获得最大吞吐量,请在创建 IoT 中心时使用最大分区数 (32),前提是计划使用内置终结点。 与事件中心兼容的终结点的设备到云分区数反映了你可以实现的下游并行度。 这可让你纵向扩展到 32 个并发处理实体,并提供较高的收发可用性。 创建之后无法更改此数量。
对于缩放,增加层级和已分配的 IoT 中心单元,而不是为每个区域添加多个 IoT 中心。 为每个区域添加多个 IoT 中心不会带来额外的复原能力,因为所有中心都可以在相同的基础群集上运行。
在高吞吐量方案中,使用批处理事件。 该服务可将包含多个事件的数组(而不是包含一个事件的数组)传送给使用者。 消费应用程序必须处理这些数组。
如果需要尽量减少延迟,请不要使用路由,并从内置终结点读取事件。 在 IoT 中心使用消息路由时,消息传递的延迟会增加。 平均而言,延迟不应超过 500 ms,但不能保证传递延迟时间。
作为解决方案范围内可用性和灾难恢复策略的一部分,请考虑使用 IoT 中心异地灾难恢复选项 此选项会将 IoT 中心终结点移到配对的 Azure 区域。 仅复制设备注册表。 事件不会复制到次要区域。 客户启动的故障转移的 RTO 介于 10 分钟到几小时之间。 对于 Microsoft 启动的故障转移,RTO 为 2-26 小时。 确认此 RTO 符合客户需求,并适合更广泛的可用性策略。 如果需要更高的 RTO,请考虑实现客户端故障转移模式。
使用软件开发工具包将事件发送到 IoT 中心时,请确保正确捕获重试策略(EventHubsExceptionOperationCancelledException)引发的异常。 使用 HTTPS 时,实现正确的重试模式。

后续步骤