首页 > 解决方案 > 如何使用 MassTransit 将错误消息发送到特定交易所

问题描述

除了 MassTransit 提供的默认值之外,我如何向特定的交易所 (DLX) 发送错误消息?我已按如下方式配置了我的 ReceiveEndpoint,但错误消息总是在 _error 队列中结束:

                endpoint.SetQueueArgument("x-dead-letter-exchange", "xxx-sync-exchange.dead");
                endpoint.SetQueueArgument("x-dead-letter-routing-key", "xxx.sync.on-customer-updated-event.dead");
                endpoint.DeadLetterExchange = "xxx-sync-exchange.dead";

感谢您提供的任何帮助,谢谢

标签: rabbitmqmasstransit

解决方案


您可能必须重新配置接收管道以 NACK 消息,而不是将消息移动到_error队列的默认行为。您将失去 MassTransit 添加的包含故障详细信息的额外异常标头的好处。

可能有效,我还没有尝试过。

endpoint.RethrowFaultedMessages();

您仍然需要指定 DeadLetterExchange


推荐阅读