如何一次使用多个订阅者从主题中读取消息?

时间:2019-03-06 19:13:32

标签: azure azureservicebus azure-servicebus-topics azure-servicebus-subscriptions

我正在研究Azure ServiceBus主题-订阅。我在服务总线命名空间中创建了一个主题和两个订阅。在当前应用程序中,使用订阅者接收消息后,我便可以向主题发送消息。

但是,只要有一个订阅者从主题中读取消息,该消息就会进入Dead-Letter-Queue。这就是第二位订阅者无法阅读主题消息的原因。

在主题发出处理消息后,我在代码中写了这一行

await subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);

我遵循此documentation来实现上述方案。

因此,有人可以建议我如何一次使用多个订阅者从主题中读取消息。

1 个答案:

答案 0 :(得分:0)

  

每当一个订户将从主题中读取消息时,该消息就会进入“死信队列”。这就是第二位订阅者无法阅读主题消息的原因。

要么存在处理逻辑错误,然后重试消息,直到消息被移至死信队列,或者您将MaxDeliveryCount设置为一次处理尝试。无论哪种方式,请检查DeadLetterReasonDeadLetterErrorDescription标头/属性,以将消息移入死信队列的原因。

  

任何人都可以建议我如何一次使用多个订阅者从主题中读取消息。

Azure Service Bus支持competing consumer pattern,您无需执行任何特殊操作。