消息重试
顺序消息的重试
- 对于顺序消息的重试,消费者消费失败之后,mq会不断进行重试(1s一次),这是应用会被阻塞,所以要即时监控并处理消费失败的情况
无序消息的重试
- 当消费者消费消息失败时,可以通过设置返回状态达到消息重试的结果,
- 如果是集群消费方式生效,广播方式不提供重试特性
- 重试次数
- 消息队列默认允许没条消息最多重试16次,如果16次后仍然失败,消息将不再投递,
- 无论重试多少次,Message ID不会改变
- 配置方式
- 集群消费方式下,消息消费失败后希望消息重试,需要在消息监听器接口的实现明确进行配置
- 返回Action.ReconsumeLater
- 返回null
- 抛出异常
public class MessageListenerImpl implements MessageListener {
@Override
public Action consume(Message message, ConsumeContext context) {
//方法 3:消息处理逻辑抛出异常,消息将重试
doConsumeMessage(message);
//方式 1:返回 Action.ReconsumeLater,消息将重试
return Actio