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

在状态存储中保存数据

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

与 Redis 一样,状态存储在内存存储中使用。 停止或重启 Kubernetes 群集会导致状态存储内容丢失。

状态存储通过 MQTTv5 实现。 其服务直接集成到 MQTT 代理中,并在代理启动时自动启动。 状态存储提供与 MQTT 代理相同的高可用性。

为何使用状态存储?

状态存储允许边缘应用程序在边缘上保留数据。 状态存储的典型用法包括:

  • 创建无状态应用程序
  • 在应用程序之间共享状态
  • 生成高可用性的应用程序
  • 存储数据流要使用的数据

状态存储授权

状态存储可以扩展 MQTT 代理的授权机制,允许单个客户端拥有对特定密钥的可选读取和写入访问权限。 详细了解如何为状态存储配置 MQTT 代理授权

与状态存储交互

CLI 工具可用于与来自运行在任意计算机上的 shell 的状态存储进行交互。

  1. 生成 X.509 证书链以通过 MQTT 代理进行身份验证
  2. 使用 BrokerAuthentication 创建 x.509 证书
  3. 创建已启用群集外访问的 BrokerListener 类型的 LoadBalancer
  4. 打开群集上的端口以启用对 MQTT 代理的访问。

有关设置群集和使用该工具的说明,请参阅“状态存储 CLI GitHub”页面。

注意

与状态存储交互的 SDK 目前处于活动开发阶段,在不久的将来将可用,以使边缘应用程序能够与状态存储进行交互。