1.如何确认消息发送到了交换机?
callback机制
实现RabbitTemplate.ConfirmCallback接口,并实现其方法
2.如何确认消息发送到了队列?
return机制
实现RabbitTemplate.ConfirmReturn接口,并实现其方法
上述两个机制均需要绑定到项目的RabbitTemplate
@PostConstruct
public void initMethod(){
rabbitTemplate.setConfirmCallback(this);
rabbitTemplate.setReturnCallback(this);
}
3.如何进行消息持久化?
使用MessageProperties类封装配置,和传递对象的字节数组 一起封装到Message传输
4.如何保证消息一定被消费成功?
在消费者方设置MQ的重试机制 和 补偿
配置中重试的参数:
重试的间隔时间 :第一次重试的间隔
最大重试次数
最大的间隔时间:
重试因子 重试因子 X 上一次的间隔时间 = 此次重试间隔时间