栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

SpringBoot整合RabbitMQ

SpringBoot整合RabbitMQ

1. 点击创建SpringBoot工程


添加RabbitMQ依赖

2. 搭建生产者工程 2.1 配置文件

创建application.yml,内容如下:

spring:
  rabbitmq:
    host: 你的ip
    port: 5672
    virtual-host: /你的虚拟主机名
    username: admin
    password: admin
2. 绑定交换机和队列

创建RabbitMQ队列与交换机绑定的配置类
com.potota.rabbitmq.config.RabbitMQConfig

package com.potato.rabbitmq.config;

import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;

public class RabbitMQConfig {
    //交换机名称
    public static final String TOPIC_EXCHANGE = "boot_topic_exchange";
    //队列名称
    public static final String BOOT_Queue = "boot_queue";

    //声明交换机
    @Bean("topicExchange")
    public Exchange topicExchange() {
        return ExchangeBuilder.topicExchange(TOPIC_EXCHANGE).durable(true).build();
    }

    //声明队列

    @Bean("queue")
    public Queue queue(){
        return QueueBuilder.durable(BOOT_Queue).build();
    }

    //绑定队列和交换机
    @Bean
    public Binding queueExchange(@Qualifier("queue") Queue queue,
                                 @Qualifier("topicExchange") Exchange exchange){
        return BindingBuilder.bind(queue).to(exchange).with("item.#").noargs();
    }
}

3. 搭建消费者工程

创建消费者工程springboot-consumer
并添加依赖

1. 配置文件
spring:
  rabbitmq:
    host: 你的ip
    port: 5672
    virtual-host: /你的虚拟主机名
    username: admin
    password: admin
2. 消息监听处理类
package com.potato.rabbitmq.listener;

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

@Component
public class MyListener {
    
    @RabbitListener(queues = "boot_queue")
    public void ListenerQueue(Message message) {
        System.out.println("消费者接收到的消息为:" + message);
    }
}

3. 测试

在生产者工程springboot-producer中创建测试类,发送消息:

package com.potato.springbootrqbbitmq;

import com.potato.rabbitmq.config.RabbitMQConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class ProduceTest {

    //注入,RabbitTemplate rabbitTemplate
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    public void test() {
        rabbitTemplate.convertAndSend(RabbitMQConfig.TOPIC_EXCHANGE, "item.insert", "商品新增,routing key 为item.insert");
//        rabbitTemplate.convertAndSend(RabbitMQConfig.TOPIC_EXCHANGE,"item.bbb","routing key 为item.bbb");
//        rabbitTemplate.convertAndSend(RabbitMQConfig.TOPIC_EXCHANGE,"item.ccc","routing key 为item.ccc");
        System.out.println("信息发送成功");
    }
}

先运行上述测试程序(交换机和队列才能先被声明和绑定),然后启动消费者;在消费者工程springboot-consumer中控制台查看是否接收到对应消息。

另外;也可以在RabbitMQ的管理控制台中查看到交换机与队列的绑定:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/613092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号