备份交换器
英文名字 Alternate Exchange,简称AE,备胎交换器。
生产者在发送消息的时候如果不设置mandatory参数,那么消息在未被路由的情况下将会丢失;如果设置了mandatory参数,那么需要添加ReturnListener的编程逻辑,生产者的代码将变得复杂。如果既不想复杂化生产者的编程逻辑,又不想消息丢失, 那么可以使用备份交换器,这样可以将未被路由的消息存储在RabbitMQ中,在需要的时候去处理这些消息。
对于备份交换器,有以下集中特殊情况
- 如果设置的备份交换器不存在,客户端和RabbitMQ服务端都不会有异常出现,此时消息会丢失
- 如果备份交换器没有绑定任何队列,客户端和RabbitMQ服务端都不会有异常出现,此时消息会丢失
- 如果备份交换器没有任何匹配的队列,客户端和RabbitMQ服务端都不会有异常出现,此时消息会丢失
- 如果备份交换器和mandatory参数一起使用,那么mandatory参数无效