保证MQ消息的可靠性

 

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 上一次的间隔时间 = 此次重试间隔时间

 

 

 

 

 

 


 

posted @ 2020-08-31 21:27  java奇才  阅读(408)  评论(0编辑  收藏  举报