我有一个包含约 900 条消息的 Azure 队列(ServiceBus 主题订阅死信队列)。我想列出它们以用于调试目的。我调用 PeekBatch 方法,参数 messageCount 设置为 100。我希望收到 100 条消息,但我只收到 69 条。这是为什么???
问问题
392 次
2 回答
4
我最近遇到了一个类似的问题,报告的活动消息计数高于可以读取的实际消息数量。经过一番调查,我联系了微软的 Azure 支持团队。这是他们告诉我的:
经过研究,我发现计数未显示正确值时存在错误。该错误处于活动状态,因此未解决。产品组正在跟踪它,但我没有任何 ETA。
尽管在我的情况下是关闭了活动消息计数,但这很可能是同一个问题。
我找到了一种方法(仅在某些时候有效-我不知道为什么)来更正消息计数。使用服务总线资源管理器,选择显示问题的主题,点击更新(未更改任何设置),然后点击刷新。
于 2015-04-08T00:13:29.897 回答
0
当我尝试从启用分区的队列中查看消息时,我也遇到了同样的问题。如果我使用 PeekBatch 方法并将消息计数作为参数传递,我只能读取一些消息,即使实际消息计数高于此值。
分区队列 - 分区队列由不同消息代理处理的多个片段组成。当消息发送到分区队列时,服务总线将消息分配给其中一个片段。当客户端想要从队列接收消息时,服务总线会检查所有片段中的消息。如果找到,它会选择一个并传递给接收者。
因此,当我们尝试使用 PeekBatch() 方法获取消息时,它会检查片段中的消息并从它首先找到的片段中挑选消息,即使它与给定的消息计数不匹配。
于 2018-10-16T17:28:50.267 回答