0

我有 2 个集群节点从 iothub 接收消息。我按分区分摊他们的责任。节点 1 从分区 1、3、5、7、9 和其他 2、4、6、8 和 0 读取。最近,我的分区 8 停止响应,直到我停止我的代码并重新启动它。似乎设备正在发送锁定分区的消息。我想要做的是列出我的分区 8 中的所有设备。这可能吗?是否有云 shell 命令可以将这些设备放入列表中?

4

1 回答 1

1

不确定这会对您有所帮助,但您可以看到传入消息的分区。例如,您可以使用 Azure 流分析来查看使用此查询的分区:

Select GetMetadataPropertyValue(IoTHub, '[IoTHub].[ConnectionDeviceId]') as DeviceId, partitionId
from IoTHub

此外,如果您在 VisualStudio 中本地运行,它会告诉您哪个设备正在发送格式错误的 JSON。例如。

[警告] 2021 年 10 月 21 日上午 9:12:54:用户警告源“IoTHub”在处理时间“2021-10-21T15:12:50.5076449Z”和“2021-”之间出现了 1 次“InputDeserializerError.InvalidData”类型10-21T15:12:50.5712076Z'。无法将来自资源“分区:[1]、偏移量:[455266583232]、序列号:[634800]、DeviceId:[DeviceName] ”的输入事件反序列化为 Json。一些可能的原因:1)格式错误的事件 2)输入源配置错误的序列化格式

还要检查 ASA 作业中的“活动日志”刀片。它可能会为您提供更多详细信息。

于 2021-10-21T15:01:08.293 回答