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

IoT 解决方案可伸缩性、高可用性和灾难恢复

本概述介绍了有关 Azure IoT 解决方案中可伸缩性、高可用性和灾难恢复选项的关键概念。 每个部分都包含指向提供进一步详细信息和指导的内容的链接。

下图显示了 典型基于边缘的 IoT 解决方案中组件的概要视图。 本文重点介绍基于边缘的 IoT 解决方案中可伸缩性、高可用性和灾难恢复相关的领域:

显示重点关注可伸缩性、高可用性和灾难恢复的 IoT 基于边缘的解决方案体系结构概览的示意图。

可伸缩性

IoT 解决方案可能需要支持数百万连接的资产和设备。 你需要确保解决方案中的组件可以缩放来满足需求。

在多节点群集上部署 Azure IoT 操作,以确保可以处理增加的流量或工作负荷需求。 当 Azure IoT 操作在多节点群集上运行时,可以处理更多数据并利用 Kubernetes 的可伸缩性和高可用性功能。

可以通过添加更多前端副本和后端分区来水平缩放 Azure IoT 操作的 MQTT 代理。 前端副本负责接受来自客户端的 MQTT 连接并将其转发到后端分区。 后端分区负责存储消息并将消息传送到客户端。 前端 Pod 会跨后端 Pod 分配消息流量。 后端冗余系数决定了数据副本的数量,从而针对集群中的节点故障提供复原能力。 若要了解详细信息,请参阅 配置有关高可用性、缩放和内存使用的代理设置

Azure 设备注册表是一项后端服务,可以对资产进行云和边缘管理。 设备注册表可将在边缘环境中定义的资产投影为云中的 Azure 资源。 它提供单个统一的注册表,以便与资产交互的所有应用和服务都可以连接到单个源。 设备注册表还可管理云中的资产以及作为边缘上 Kubernetes 中自定义资源的资产之间的同步,使你可以将解决方案扩展到数百万连接的资产。

可以缩放数据流配置文件以调整运行数据流的实例数。 增加实例计数可以创建多个客户端来处理数据,从而提高数据流的吞吐量。 对按客户端限制速率的云服务使用数据流时,增加实例计数有助于保持在速率限制范围内。 缩放还可以在发生故障时提供冗余,从而提高数据流的复原能力。 若要了解详细信息,请参阅缩放数据流配置文件

高可用性和灾难恢复

IoT 解决方案通常是业务关键型。 需要确保解决方案在发生故障时可以继续运行。 还需要确保在发生灾难后可以恢复解决方案。

Azure IoT 操作具备一个企业级且符合标准的 MQTT 代理。 MQTT 代理具有可缩放性、高可用性,并且是原生支持 Kubernetes 的。 它为 IoT 操作提供消息传送平面,支持双向边缘/云通信,并为边缘的事件驱动型应用程序提供支持。 为了确保部署升级期间不会丢失任何数据并实现高可用性,MQTT 代理在 MQTT 代理 Pod 之间实现滚动更新。

状态存储是一个分布式存储系统,系统将其部署为 Azure IoT 操作的一部分。 使用状态存储后,应用程序可以获取、设置和删除键值对,而无需安装更多服务,例如 Redis。 状态存储还提供数据的版本控制,以及生成分布式锁的基元,非常适合高可用性的应用程序。 若要了解详细信息,请参阅在状态存储中持久保存数据

在至少具有三个节点的多节点群集上,可以选择在部署 Azure IoT 操作时使用 Azure Arc 启用的 Azure 容器存储来启用存储容错功能。

Dapr 作为 MQTT 代理的一部分提供,将 MQTT 会话管理、消息 QoS 和确认,以及内置键值存储的细节抽象化,使其成为开发高可用性应用程序的实用选择。

Azure IOT 操作 SDK(预览版)是跨多种语言的工具和库套件,旨在帮助开发适用于 Azure IOT 操作的高可用性应用程序。

有关 Azure 设备注册表跨可用性区域和区域的高可用性的信息,请参阅 Azure 设备注册表中的可靠性