Microsoft Azure ServiceBus中的消息与消息之间的传递计数增加

时间:2019-03-28 09:45:29

标签: azure azureservicebus servicebus

我正在使用Microsoft Azure Service Bus for .NET Standard。

我正在使用具有PeekLock读取功能的多个使用者(MessageReceiver的多个实例)从Service Bus队列中读取消息。

为了将消息从队列中删除,我没有完成消息的接收操作。

问题在于第二条消息的deliveryCount基本上是第一条消息的deliveryCount(通常为1)+1,所以2。不知何故,deliveryCount从一条消息传递到另一条消息。当我使用相同的接收者(_messageReceiver1或_messageReceiver2)接收两条消息时,不会发生此问题。

msg1 =等待_messageReceiver1.ReceiveAsync(80); Writeline(msg1.SystemProperties.DeliveryCount);

msg2 =等待_messageReceiver2.ReceiveAsync(80); Writeline(msg2.SystemProperties.DeliveryCount);

在超过门户的最大传递计数之后,由于传递计数已从一条消息传递到另一条消息,因此我所有的消息都发送到了DLQ,即使我尝试不去阅读它们。

1 个答案:

答案 0 :(得分:0)

您应该与Topic Subscriptions一起使用多个消费者。多次接收邮件将增加邮件的传递计数。一旦计数增加超过队列的“最大传递计数”,邮件将为moved to Dead Letter Queue