我正在尝试使用
ISendEnpoint.Send
方法将消息发送到具有参数 alternate-exchange
的 RabbitMq 交换,但我没有找到任何方法来设置此参数的值。“RabbitMQ.Client.Exceptions.OperationInterruptedException:AMQP 操作被中断:AMQP close-reason,由Peer发起, code=406,text="PRECONDITION_FAILED - 不等价的参数 虚拟主机“/”中交换“target_queue”的“alternate-exchange”: 没有收到任何信息,但当前的值是“norouted””。
如何指定这个参数?
我知道这是一篇旧文章,但我已经通过在端点 Uri 中指定 alterexchange={alternate-exchange-name} 确认这适用于当前版本 (8.2.3)。
var endpoint = await bus.GetSendEndpoint(new Uri($"exchange:primary-exchange-name?alternateexchange=alternate-exchange-name"));
await endpoint.Send(value, cancellationToken);
您可以修改消息的发布拓扑,以便目标交换器指定备用交换器和队列,以便将没有有效目标的已发布消息传递到备用交换器。