Azure IoT - 如果服务器和客户端都更改设备孪生属性怎么办?

2023-11-29

我有一个使用远程监控加速器的 Azure IoT 解决方案。服务器(远程监控网络)和客户端(设备)都在更改设备孪生属性。有时,这些属性会进入“同步”状态,并且似乎无法摆脱它。

那么谁有权更改设备孪生属性以及何时有权更改设备孪生属性的规则是什么?

顺便说一句,我使用 IoTHubDeviceClient_LL_SendReportedState() 函数从设备端更改属性。


Azure IoT 设备孪生代表了可断开分布式的轻量级通用数据(状态)模型ends比如一个面向设备端 and 面向服务端。设备孪生支持以转换方式在这些端部之间创建“影子副本”。基本上,每个end拥有写入(或更新)其属性的所有权,而另一方则拥有写入(或更新)其属性的所有权end已收到有关此更改的通知。

enter image description here

基于此通知、版本控制和设备孪生元数据,状态可以从一个end以可靠的方式传递给其他人。请注意,轻量级状态机必须在通知更改触发的设备和后端等每一端实现。

上图来自文档设备孪生,其中详细描述了该模型。

Update:

以下屏幕片段是使用设备孪生属性在设备和后端之间转换状态的序列图示例:

enter image description here

在上面的例子中,这个分布式状态机处理来自进程中、确认、完成、空设备和后端之间。可以创建类似的转换,例如:进程中、nack、null,在后端和设备之间,用于断开连接的设备等。

此示例使用了附加属性,例如status来表明该属性Config处于过渡状态,但可以添加更多,例如原始值、版本等,它们有助于恢复状态等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure IoT - 如果服务器和客户端都更改设备孪生属性怎么办? 的相关文章

随机推荐

  • 按给定索引对多维数组进行排序 - PHP?

    我有两个数组 days order and mysql result 我要排序 mysql result数组使用 days order大批 我想以天数升序显示 MySQL 结果 有什么办法可以做到这一点或任何其他方式 以便我可以通过 day
  • 让 phantomjs、socket.io 和 gevent-socketio 协同工作

    我正在尝试构建一个利用 Phantomjs 1 7 模拟浏览器 的应用程序 并创建一个 Python 后端来启动一些事件并收集数据 问题是 Phantomjs 和我的 Python 程序这两个进程需要双向通信 问题是里面page evalu
  • jQuery 沿正弦波制作动画

    我为此花了几天时间 然后放弃了 我试图让一个对象沿着正弦波无限地产生动画 它不应该在第一个周期之后结束 主要问题 循环在大约 1 1 3 Pi 而不仅仅是 Pi 处结束 这个额外的动作破坏了动画 我被困在这里 http jsfiddle n
  • 本地化的 JSF 默认验证器

    有什么方法可以轻松本地化 JSF 2 0 中的默认验证器消息吗 我知道关键是 我 例如 javax faces component UIInput REQUIRED 但从我发现的所有内容来看 更改它们的唯一方法是在消息包中 并且它不像资源包
  • 使用 sed/bash 删除左右方括号

    我有一个包含该角色的文件 Contributor 即贡献者和大括号在一起 我需要使用下面的代码删除它 find type f exec sed i s Contributor g 任何想法如何我可以结合 find 和 sed 来实现这一点
  • Scala 中的应用解析器示例

    这是我以前的版本的新版本question 我们可以将解析器定义为type Parser A String gt List A String 解析器接受输入字符串并生成一系列对 每对由解析结果和输入的未消耗部分组成 更多内容请参见此artic
  • Angular2 中的路径参数

    在对 Web 服务进行 RESTful 调用时 我们如何处理 Angular 2 中的路径参数 我找到了URLSearchParams查询参数的对象 但从我发现的情况来看 我们似乎必须对路径本身进行字符串连接 喜欢 let url api
  • 二分法(数值分析)

    在找到每个根之前需要进行多少次递归 另外 哪些是根 这是我的代码 e 0 000001 f1 x 14 x exp x 2 12 exp x 2 7 x 3 20 x 2 26 x 12 a 0 c 3 while abs c a gt e
  • ASP.NET Core:不允许同步操作。改为调用 WriteAsync 或将 AllowSynchronousIO 设置为 true

    ASP NET核心服务器 AllowSynchronousIO被设定为false new WebHostBuilder UseKestrel options gt options AllowSynchronousIO false 在acti
  • 在logstash中使用表的id作为sql_last_value?

    我的目录中有一个 MySQL 语句jdbc插件logstash input statement gt SELECT from TEST where id gt sql last value 我的桌子没有date or datetime领域本
  • 子类化 UIAlertView

    我正在尝试子类化 UIAlertView 以更好地处理我的应用程序中的错误状态 我遇到的问题是其他按钮标题nil 终止参数 当我创建子类时 它只选取列表中的第一个字符串 而不是所有字符串 ErrorAlertView displayErro
  • 使用 c:out JSP 将撇号转义为 \'

    我有一个包含人姓氏的对象字段 如果我使用 person lastName I get O Brian 如果我使用
  • jQuery 删除除了锚点之外的所有 HTML 标签

    目前 我有这一行 this html this html replace x3C x2F x3E x3E gi 但是 我想要一些类似于 if 子句 的内容 IF this tag
  • REST for Microsoft Access(或从应用程序访问的其他方式)

    我在PC上有一个Access数据库 想编写一个小应用程序 可以对这个数据库中的数据进行CRUD 我会编写一个提供此功能的简单 C 服务 但我不想重写现有的内容 是否有 Windows 服务或工具可以为 Microsoft Access 数据
  • 如何将 NSData 字节转换为 NSNumber 或 NSInteger?

    有一个特别的NSString initWithData抓取位并将其转换为字符串的方法 但是 我还没有发现NSNumber类参考号目前 我正在从服务器获取原始数据 字节 NSData格式 我知道如何在 C 中使用memcpy and int指
  • 检查异步 JavaScript 文件何时加载[重复]

    这个问题在这里已经有答案了 我想仅在加载所有异步文件后 引导 我的页面 有没有办法可以在加载异步文件时通知我 索引 html 为您的其中一个脚本提供一个 ID
  • 使用 INotifyPropertyChanged 更新 ObservableCollection 项属性

    检查以确保我的假设是正确的 我有一个 ObservableCollection 类 我正在调用 Web 服务并检索一系列设备 然后 我枚举 ObservableCollection 并将每个项目设置为从 Web 服务检索到的相应设备 我检索
  • 使用 jQuery 检测 Safari

    虽然两者都是基于 Webkit 的浏览器 但 Safari 会对 URL 中的引号进行 urlencode 而 Chrome 则不会 因此我需要在JS中区分这两者 jQuery 的浏览器检测文档将 Safari 标记为已弃用 有更好的方法还
  • 如何截断边界框中的文本?

    我正在将内容写入PdfContentByte直接使用对象PdfContentByte showTextAligned 我想知道如何在书写时阻止文本溢出给定区域 如果可能的话 如果 iText 还可以在文本不适合的地方放置省略号字符 那就太好
  • Azure IoT - 如果服务器和客户端都更改设备孪生属性怎么办?

    我有一个使用远程监控加速器的 Azure IoT 解决方案 服务器 远程监控网络 和客户端 设备 都在更改设备孪生属性 有时 这些属性会进入 同步 状态 并且似乎无法摆脱它 那么谁有权更改设备孪生属性以及何时有权更改设备孪生属性的规则是什么