你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
物联网中心和可靠性
Azure IoT 中心 是云中托管的托管服务,充当中心消息中心,用于 IoT 应用程序与其附加设备之间的通信。 你可以可靠地安全地连接数百万台设备及其后端解决方案。 几乎任何设备都可以连接到 IoT 中心。
IoT 中心支持监视,以帮助跟踪设备创建、设备连接和设备故障。
IoT 中心还支持以下消息传送模式:
- 设备到云的遥测
- 从设备上传文件
- 从云控制设备的请求-答复方法
有关 IoT 中心的详细信息,请参阅 IoT 概念和 Azure IoT 中心。
若要了解 IoT 中心如何支持可靠的工作负荷,请参阅以下主题:
以下部分专门针对 Azure IoT 中心与可靠性:
- 设计注意事项
- 配置检查清单
- 建议的配置选项
设计注意事项
有关 Azure IoT 中心服务级别协议的更多信息,请参阅 Azure IoT 中心 SLA。
清单
是否考虑了 Azure IoT 中心的可靠性?
- 在另一个区域中预配第二个 IoT 中心,并在设备上具有路由逻辑。
- 频繁发送事件时,请使用
AMQP
或MQTT
协议。 - 在生产环境中,如果您使用 X.509 证书 进行设备连接,请仅使用由根 CA 验证的证书。
- 如果您计划使用内置终结点,若要获得最大吞吐量,在创建 IoT 中心时请使用最大分区数(
32
)。 - 为了实现缩放,请增加分层和 IoT 中心单元,而不是在每个区域中添加多个 IoT 中心。
- 在高吞吐量方案中,使用批处理事件。
- 如果需要尽可能低的延迟,请不要使用路由并从内置终结点读取事件。
- 作为解决方案范围的可用性和灾难恢复策略的一部分,请考虑使用 IoT 中心 跨区域灾难恢复选项。
- 使用 SDK 将事件发送到 IoT 中心时,请确保正确捕获重试策略(
EventHubsException
或OperationCancelledException
)引发的异常。 - 若要避免由于限制和完全使用的配额而导致遥测中断,请考虑添加自定义自动缩放解决方案。
配置建议
在配置 Azure IoT 中心时,请考虑以下建议来优化可靠性:
建议 | 描述 |
---|---|
在另一个区域中预配第二个 IoT 中心,并在设备上具有路由逻辑。 | 使用助手服务可以进一步增强这些配置。 |
频繁发送事件时,请使用 AMQP 或 MQTT 协议。 |
初始化会话时,AMQP 和 MQTT 存在更高的网络成本,然而 HTTPS 需要为每个请求额外增加 TLS 开销。 对于频繁发布,AMQP 和 MQTT 的性能更高。 |
如果您正在使用 X.509 证书 进行设备连接,请仅在生产环境中使用经过根 CA 验证的证书。 | 确保在证书过期之前已准备好更新证书的过程。 |
若计划使用内置终结点,在创建 IoT 中心时使用最大分区数(32 )以获取最大吞吐量。 |
与事件中心兼容的终结点的设备到云分区数反映了可以实现的下游并行度。 这样,就可以纵向扩展到 32 个并发处理实体,并提供最高的发送和接收可用性。 创建后无法更改此数字。 |
若要进行扩展,请增加层级并分配更多的 IoT 中心单元,而不是在每个区域添加多个 IoT 中心。 | 每个区域添加多个 IoT 中心不提供额外的复原能力,因为所有中心都可以在同一基础群集上运行。 |
在高吞吐量方案中,使用批处理事件。 | 该服务将向使用者提供具有多个事件的数组,而不是将包含一个事件的数组传送给使用者。 正在使用的应用程序必须处理这些数组。 |
如果需要尽可能低的延迟,请不要使用路由并从内置终结点读取事件。 | 在 IoT 中心使用消息路由时,消息传递的延迟会增加。 平均而言,延迟不应超过 500 ms ,但无法保证传递延迟。 |
作为解决方案范围的可用性和灾难恢复策略的一部分,请考虑使用 IoT 中心 跨区域灾难恢复选项。 | 此选项会将 IoT 中心终结点移动到配对的 Azure 区域。 只有设备注册表被复制。 事件不会复制到次要区域。 客户发起的故障转移的 RTO 在 10 分钟到几个小时之间。 对于 Microsoft 发起的故障转移,RTO 为 2-26 小时。 确认此 RTO 符合客户的要求,并符合更广泛的可用性策略。 如果需要更高的 RTO,请考虑实现客户端故障转移模式。 |
使用 SDK 将事件发送到 IoT 中心时,请确保正确捕获由重试策略(EventHubsException 或 OperationCancelledException )引发的异常。 |
使用 HTTPS 时,请采用正确的重试模式。 |