rabbitmq重试机制存在的问题

本文探讨了rabbitmq在实现消息重试机制时遇到的问题。在配置重试和改造消费者后,通过测试发现当消息处理出错并进行重试时,错误消息会被放置到队列头部,阻塞后续正常消息的消费。这一现象引发了关于如何有效解决该问题的思考。
摘要由CSDN通过智能技术生成

以下内容基于上一篇springboot整合rabbitmq

1、重试

1.1 配置

消费者中添加如下配置

# 开启自动重试
spring.rabbitmq.listener.simple.retry.enabled=true
# 最大重试次数
spring.rabbitmq.listener.simple.retry.max-attempts=5
# 重试时间间隔
spring.rabbitmq.listener.simple.retry.initial-interval=3000

2、消费者改造

SmsConsumer

package com.mine.consumer;

import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

import com.rabbitmq.client.Channel;

import lombok.extern.slf4j.Slf4j;

@Component
@Slf4j
public class SmsConsumer {
   

	@RabbitListener(queues = "queue_sms")
	@RabbitHandler
	public void process(Message message, Channel channel) throws Exception {
   
		// 获取消息Id,用消息ID做业务判断
		String messageId = message.getMessageProperties().getMessageId();
		String content = new String(message.ge
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值