您可以填补此服务总线说明中的空白吗?

时间:2018-11-01 19:31:06

标签: azure azureservicebus servicebus

我是公交车的新手,正在努力更好地了解细节。考虑以下语句:

  

”如果超过了邮件的最大发送数量   订阅,然后消息传递系统将消息置于无效状态   字母子队列”

请确认我的以下理解是否正确:

  • 服务总线有主题
  • 主题有订阅者
  • 将邮件添加到主题中后,该邮件就会推送给订阅者

您能否在此背景下解释“最大投放次数”的概念?您可以在Azure中命名尝试发送此消息的特定对象类型吗?我猜是传递失败意味着订阅者处于脱机状态或处于某种状态,即未收到消息或拒绝了该消息?它是否正确?

如果服务总线在尝试传递消息时遇到内部错误,那么我假设这将不计入“最大传递计数”数字,对吗?您可以笼统地描述总线尝试将消息发送给订户但传递失败的过程吗?此发送尝试的常见响应类型有哪些,它们会增加失败的传递计数的数量?另外,您能否描述访问Azure中死信子队列的过程?

1 个答案:

答案 0 :(得分:0)

最大传递次数表示邮件可以传递的最大次数。如果特定消息没有被接收者成功处理'n'次,那么它将被移到一个死信子队列中(您可以在其中找到失败原因的失败消息)。当消息出现时,计数增加锁定已过期,或者邮件已被收件人明确放弃。

可以找到here

下邮件被移入死信队列的情况。

可以使用以下代码接收死信路径中的消息:

MessagingFactory factory = MessagingFactory.CreateFromConnectionString(connectionString);
var deadLetterPath = SubscriptionClient.FormatDeadLetterPath(topicPath,subscriptionName);
var Receiver = factory.CreateMessageReceiver(deadLetterPath, ReceiveMode.ReceiveAndDelete);