IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> RabbitMQ详解-05Spring Boot整合RabbitMQ -> 正文阅读

[大数据]RabbitMQ详解-05Spring Boot整合RabbitMQ

传送门:
RabbitMQ详解-01docker安装RabbitMQ
RabbitMQ详解-02RabbitMQ基本介绍
RabbitMQ详解-03RabbitMQ简单使用和工作流程
RabbitMQ详解-04RabbitMQ工作模式

1. 简介

一般在开发过程中:
生产者工程

  1. application.yml文件配置RabbitMQ相关信息。
  2. 在生产者工程中编写配置类,用于创建交换机和队列,并进行绑定。
  3. 注入RabbitTemplate对象,通过RabbitTemplate对象发送消息到交换机。

消费者工程

  1. application.yml文件配置RabbitMQ相关信息。
  2. 创建消息处理类,用于接收队列中的消息并进行处理。

2.成产者:

2.1依赖

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

2.2配置RabbitMQ

2.2.1配置文件

spring:
  rabbitmq:
    host: localhost
    port: 5672
    virtual-host: /demo
    username: guest
    password: guest

2.2.2绑定交换机和队列

创建RabbitMQ队列与交换机绑定的配置类

@Configuration
public class RabbitMQConfig {
    //交换机名称
    public static final String ITEM_TOPIC_EXCHANGE = "item_topic_exchange";
    //队列名称
    public static final String ITEM_QUEUE = "item_queue";
?
    //声明交换机
    @Bean("itemTopicExchange")
    public Exchange topicExchange(){
        return ExchangeBuilder.topicExchange(ITEM_TOPIC_EXCHANGE).durable(true).build();
    }
?
    //声明队列
    @Bean("itemQueue")
    public Queue itemQueue(){
        return QueueBuilder.durable(ITEM_QUEUE).build();
    }
?
    //绑定队列和交换机
    @Bean
    public Binding itemQueueExchange(@Qualifier("itemQueue") Queue queue,
                                     @Qualifier("itemTopicExchange") Exchange exchange){
        return BindingBuilder.bind(queue).to(exchange).with("item.#").noargs();
    }
}

2.3生产者Controller

/**
 * 发送消息的测试类
 */
@RestController
public class SendMsgController {
?
    //注入RabbitMQ的模板
    @Autowired
    private RabbitTemplate rabbitTemplate;
?
    /**
     * 测试
     */
    @GetMapping("/sendmsg")
    public String sendMsg(@RequestParam String msg, @RequestParam String key){
        /**
         * 发送消息
         * 参数一:交换机名称
         * 参数二:路由key
         * 参数三:发送的消息
         */rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE ,key ,msg);
?
        //返回消息
        return "发送消息成功!";
    }
}

3消费者

依赖和配置文件同生产者

3.1消息监听处理类

@Component
public class MyListener {
?
    /**
     * 监听某个队列的消息
     * @param message 接收到的消息
     */
    @RabbitListener(queues = "item_queue")
    public void myListener1(String message){
        System.out.println("消费者接收到的消息为:" + message);
    }
}

4.测试

在这里插入图片描述
在生产者工程中创建测试类,发送消息:

@RunWith(SpringRunner.class)
@SpringBootTest
public class RabbitMQTest {
?
    @Autowired
    private RabbitTemplate rabbitTemplate;
?
    @Test
    public void test(){
        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.insert", "商品新增,routing key 为item.insert");
        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.update", "商品修改,routing key 为item.update");
        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.delete", "商品删除,routing key 为item.delete");
    }
}

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

在RabbitMQ的管理控制台中查看到交换机与队列的绑定:
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 10:51:49  更:2021-07-23 10:53:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 13:01:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码