rabbitmq - 如何使用 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";
感谢您提供的任何帮助,谢谢
解决方案
您可能必须重新配置接收管道以 NACK 消息,而不是将消息移动到_error队列的默认行为。您将失去 MassTransit 添加的包含故障详细信息的额外异常标头的好处。
这可能有效,我还没有尝试过。
endpoint.RethrowFaultedMessages();
您仍然需要指定 DeadLetterExchange
推荐阅读
- java - Java,具有比较器或可比较的泛型类
- airflow - Airflow 中的“所有者”属性是做什么用的?
- python - Mypy 不匹配 aiohttp 的 Response 和 json_response
- python - 有符号整数的最低有效位 (LSB) 求反
- sql-server - SQL Merge 语句在删除之前从另一个表中删除
- python - PySpark 流式传输 - AWS Kinesis
- grouping - mlr3 错误:无法将分层与分组相结合
- ios - iPhone 上的 iOS Cadence 属性支持
- postgresql - PostgreSQL 大于和小于字母数字值
- c# - RabbitMQ - Handle consumer side if routing key not found