非路由消息
生产者发布消息时,在默认情况下,并不知道消息是否发布成功,是否正确路由到相应的队列。本文的目的在于如何处理路由失败的消息。
如何处理
1. 设置mandatroy=true;默认情况是false,设置为true的目的是告诉rabbitmq当交换器路由不到合适的队列时,不是将该消息丢失,而且将这个消息返回到生产者(basic.return);
2. 添加ReturnListener监听器;就是一个回调监听器,就是处理失败路由的消息;
案例
代码
package com.rabbitmq.noroutable;
import com.rabbitmq.client.*;
import java.io.IOException;