当前位置: 首页 > article >正文

rabbitmq结合springboot配置发送消息和消费消息

在Spring Boot中集成RabbitMQ可以非常方便地实现消息的发送和接收。下面将简要介绍如何配置Spring Boot应用以使用RabbitMQ进行消息的发送与消费。

1. 添加依赖

首先,在你的pom.xml文件中添加Spring Boot对RabbitMQ的支持:

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

2. 配置RabbitMQ连接

application.propertiesapplication.yml中配置RabbitMQ的连接信息:

# application.properties
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

或者,如果你使用的是YAML格式:

# application.yml
spring:
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest

3. 定义消息队列、交换器和绑定

你可以通过Java配置来定义队列、交换器以及它们之间的绑定关系。例如:

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitConfig {

    public static final String MESSAGE_QUEUE = "messageQueue";
    public static final String MESSAGE_EXCHANGE = "messageExchange";
    public static final String ROUTING_KEY = "routingKey";

    @Bean
    public Queue queue() {
        return new Queue(MESSAGE_QUEUE, true);
    }

    @Bean
    public TopicExchange exchange() {
        return new TopicExchange(MESSAGE_EXCHANGE);
    }

    @Bean
    public Binding binding(Queue queue, TopicExchange exchange) {
        return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY);
    }
}

4. 发送消息

创建一个服务类来发送消息到RabbitMQ:

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class SenderService {

    private final RabbitTemplate rabbitTemplate;

    @Autowired
    public SenderService(RabbitTemplate rabbitTemplate) {
        this.rabbitTemplate = rabbitTemplate;
    }

    public void sendMessage(String message) {
        rabbitTemplate.convertAndSend(RabbitConfig.MESSAGE_EXCHANGE, RabbitConfig.ROUTING_KEY, message);
    }
}

5. 接收消息

创建一个监听器来接收来自RabbitMQ的消息:

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

@Component
public class ReceiverService {

    @RabbitListener(queues = RabbitConfig.MESSAGE_QUEUE)
    public void receiveMessage(String message) {
        System.out.println("Received Message: " + message);
    }
}

6. 测试

最后,你可以通过调用SenderService中的sendMessage方法来测试消息是否能够成功发送,并且ReceiverService中的receiveMessage方法是否能够接收到消息。


http://www.kler.cn/a/408557.html

相关文章:

  • Stable Diffusion初步见解(二)
  • D78【 python 接口自动化学习】- python基础之HTTP
  • armbian设置虚拟内存大小
  • 论文阅读——Intrusion detection systems using longshort‑term memory (LSTM)
  • web-03
  • 【模块一】kubernetes容器编排进阶实战之pod生命周期、探针简介、类型及示例
  • 监控报警系统的指标、规则与执行闭环
  • `--version` 选项在 Java 8 中是不被支持的。Java 8 使用的是 `-version` 选项而不是 `--version`
  • Go语言获取客户端真实IP
  • PowerMILL 客制化宏 - 概念
  • 功能强大的stringstream类
  • Kotlin Multiplatform 未来将采用基于 JetBrains Fleet 定制的独立 IDE
  • STM32定时器原理及应用
  • Spring 框架环境搭建
  • 改错题总结
  • 6-自定义fprint函数 --github_com_fatih_color测试
  • 【初阶数据结构与算法】线性表之队列的定义与实现
  • HarmonyOS:使用ArkWeb构建页面
  • 手搓《unordered_map unordered_set》
  • 《第十部分》1.STM32之通信接口《精讲》之IIC通信---介绍
  • 用 BlockingQueue 打造轻量级消息队列服务:从原理到实现
  • [Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法
  • 本地推流,服务器拉流全流程
  • SCP文件传输命令解析
  • C++:用红黑树封装map与set-1
  • 前端:JavaScript (学习笔记)【2】