我最近创建了一些分区队列,我一直在其中发送和接收。它们过去以非分区方式运行,没有出现我当前的任何问题。
问题是,队列中有一定数量的消息我无法接收。当不向队列发送任何其他消息时,我总是得不到任何返回,但是当我向队列发送消息时,我会毫无问题地收到新消息。滞留在队列中的消息是事件消息,而不是死信消息。
我怀疑它们卡在特定分区中,但我不知道如何接收它们。
由于我无法接收这些消息,是否有办法重置 ServiceBus 队列?
有什么想法吗?
更新:
这个数字不是恒定的,而是非常缓慢地增加。在我们的测试环境中,我们每小时收到略多于 2000 条消息,队列在重置为 0(零)后,在过去 12 小时内每个队列收到大约 20 条消息。这些消息就在那里,但不可接收。至少不是以通常的方式。
问题仅出现在分区后的两个命名空间中。问题不在于我们不使用分区队列的实时环境。
最佳答案
我在我们的生产环境中看到了类似的事情 - 也许与您所看到的行为相同。使用 ServiceBusExplorer 或类似工具检查消息的“ContentType”是否 = application/vnd.ms-servicebus-ping。
如果是这样...这是一条(Azure)系统生成的消息,用于确定队列可用性...据我所知,这些消息应该在收到后消失...但我的也没有。 MS 的文档关于这方面的内容很少......
无论如何,如果您确定这就是原因,您至少可以放心,它们不是您的被困在 ServiceBus 炼狱中的消息。希望微软尽快解决这个问题......
关于Azure 服务总线队列消息被卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25762485/