如果路由失败 触发returnCallBack这个方法(replyCode=312) 使得confirm的ack为true 也就是并没有发送到服务器 但是返回ack=true,这种情况怎么解决呢
confirm是生产者将消息发送到交换机后的回调,ack是true,说明消息已经成功发送到交换机了; returnCallBack是交换机路由到队列的回调,所以路由失败跟ack没关系; 解决方案: 路由失败的时候,把当前消息保存下来(自己随意,不丢就行),然后再针对这部分消息做补偿;