将达到最大传递计数的消息移至错误/新队列而不是死信 - 公共交通 Azure 服务总线

问题描述 投票:0回答:1

我们需要一种方法来处理死信队列中的消息,但Azure服务总线资源管理器似乎不支持

application/vnd.masstransit+json
内容类型来重新发送所选消息。

评估了很少的方法,但找不到合适的指南来继续采用某种方法。

方法1

将死信队列消息转发到单独的队列。

我们无法在公共交通中找到在 IReceiveEndpointConnector 级别设置 ForwardDeadLetteredMessagesTo 的解决方案。

下面似乎是可能的,但我们希望它在队列范围而不是总线。

config.UsingAzureServiceBus((context, cfg) =>
 {
   cfg.ForwardDeadLetteredMessagesTo = "queue-name";
 }

下面的好像不太可能。

  IReceiveEndpointConnector handle = connector.ConnectReceiveEndpoint(subscriberName, (context, configurator) => {
    configurator.ForwardDeadLetteredMessagesTo = "queue-name"; //Not Possible
}

方法2

使用(预定作业)死信消费者处理死信队列消息并将其推回主队列重试。找不到有关如何使用队列的死信子队列的文档。

上述方法的任何解决方案或任何其他更好的重新处理死信队列消息的方法都值得赞赏。

azureservicebus masstransit
1个回答
0
投票

MassTransit 默认情况下会将故障消息移动到名为

queue_error
的单独队列(其中队列是您的接收端点名称)。如果您在 Azure DLQ 中获取消息,则可能是由于配置更改、Azure Functions 的使用或直接从订阅端点(您无法在其中配置单独的队列)使用而导致的。

您可以更改错误队列名称,如本视频所示。这个视频涵盖了错误队列的使用。

© www.soinside.com 2019 - 2024. All rights reserved.