springboot集成rabbitmq

rabbitmq安装可以参考如下博客:
https://www.jianshu.com/p/ed6a78c306da
https://www.cnblogs.com/sevck/p/9176747.html

引入依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

添加yml配置

rabbitmq:
    host: rabbitmq
    username: admin
    password: 123456
    port: 5672

添加类配置

@Configuration
public class RabbitMqConfig {

    public final static String DELAYED_QUEUE_NAME = "DELAYED_QUEUE_NAME";

    public final static String EXCHANGE_NAME = "EXCHANGE_NAME";

    public final static String DELAY_ORDER_ROUTING_KEY = "DELAY_ORDER_ROUTING_KEY";

    @Bean
    public Queue queue() {
        return new Queue(DELAYED_QUEUE_NAME);
    }

    // 配置默认的交换机
    @Bean
    CustomExchange customExchange() {
        Map<String, Object> args = new HashMap<>();
        args.put("x-delayed-type", "direct");
        //参数二为类型:必须是x-delayed-message
        return new CustomExchange(EXCHANGE_NAME, "x-delayed-message", true, false, args);
    }
    // 绑定队列到交换器
    @Bean
    Binding binding() {
        return BindingBuilder.bind(queue()).to(customExchange()).with(DELAY_ORDER_ROUTING_KEY).noargs();
    }
}

发送工具类

@Slf4j
public class RabbitMqUtils {
	// 1分钟
    public static final int ORDER_TIME_OUT_TIME = 1000 * 60 ;
    public static void senderDelayedOrderOutTradeNo(RabbitTemplate rabbitTemplate, String rabbitMqDelayedOrderVoStr) {
        rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_NAME, RabbitMqConfig.DELAY_ORDER_ROUTING_KEY, rabbitMqDelayedOrderVoStr, message -> {
            //1分钟超时
            message.getMessageProperties().setHeader("x-delay", ORDER_TIME_OUT_TIME);
            log.info("send message to rabbitmq: " + rabbitMqDelayedOrderVoStr);
            return message;

        });

    }

}

消费消息

@Component
@Slf4j
public class DelayedAppointmentRecordReceiver {

    @RabbitListener(queues = RabbitMqConfig.DELAYED_QUEUE_NAME)
    @RabbitHandler
    public void process(String rabbitMqDelayedOrderVoStr) {
        // 监听
        System.out.println("接收到的为:"+rabbitMqDelayedOrderVoStr);
    }
}

启动类添加注解

@EnableRabbit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值