你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在状态存储中保存数据
状态存储是一个分布式存储系统,系统将其部署为 Azure IoT 操作的一部分。 使用状态存储后,应用程序可以获取、设置和删除键值对,而无需安装更多服务,例如 Redis。 状态存储还提供数据的版本控制,以及生成分布式锁的基元,非常适合高可用性的应用程序。
与 Redis 一样,状态存储在内存存储中使用。 停止或重启 Kubernetes 群集会导致状态存储内容丢失。
状态存储通过 MQTTv5 实现。 其服务直接集成到 MQTT 代理中,并在代理启动时自动启动。 状态存储提供与 MQTT 代理相同的高可用性。
为何使用状态存储?
状态存储允许边缘应用程序在边缘上保留数据。 状态存储的典型用法包括:
- 创建无状态应用程序
- 在应用程序之间共享状态
- 生成高可用性的应用程序
- 存储数据流要使用的数据
状态存储授权
状态存储可以扩展 MQTT 代理的授权机制,允许单个客户端拥有对特定密钥的可选读取和写入访问权限。 详细了解如何为状态存储配置 MQTT 代理授权。
与状态存储交互
CLI 工具可用于与来自运行在任意计算机上的 shell 的状态存储进行交互。
- 生成 X.509 证书链以通过 MQTT 代理进行身份验证
- 使用
BrokerAuthentication
创建 x.509 证书 - 创建已启用群集外访问的
BrokerListener
类型的 LoadBalancer - 打开群集上的端口以启用对 MQTT 代理的访问。
有关设置群集和使用该工具的说明,请参阅“状态存储 CLI GitHub”页面。
注意
与状态存储交互的 SDK 目前处于活动开发阶段,在不久的将来将可用,以使边缘应用程序能够与状态存储进行交互。