RabbitMQ基础篇之Java客户端快速入门

文章目录

需求

  • 利用控制台创建队列 simple.queue
  • 在 publisher 服务中,利用 SpringAMQP 直接向 simple.queue 发送消息
  • 在 consumer 服务中,利用 SpringAMQP 编写消费者,监听 simple.queue 队列

项目设置与依赖管理

  • 在实际项目中,通常我们会使用 spring-boot-starter-amqp 来引入Spring AMQP的功能。
  • 项目中的依赖配置已经包含了RabbitMQ的相关依赖,所以不需要单独添加。
xml 复制代码
<!--AMQP依赖,包含RabbitMQ-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

配置RabbitMQ的连接信息

  • 配置RabbitMQ连接的地址、端口和虚拟主机信息,这些信息在 每个微服务的 application.yml 文件中进行设置。
  • 需要设置如下参数:
    • spring.rabbitmq.host:RabbitMQ服务器的IP地址或域名。
    • spring.rabbitmq.port:连接RabbitMQ的端口(通常为5672)。
    • spring.rabbitmq.virtual-host:RabbitMQ的虚拟主机。
    • spring.rabbitmq.usernamespring.rabbitmq.password:连接RabbitMQ的用户名和密码。
yaml 复制代码
spring:
  rabbitmq:
    host: 192.168.100.212 # 主机名
    port: 5672  # 端口
    virtual-host: / # 虚拟主机
    username: nhuan # 用户名
    password: 123456 # 密码

创建队列与消息发送

  • 创建队列 :在RabbitMQ控制台中创建一个简单的队列(如 simple.q)。
  • 发送消息
    • 使用Spring AMQP提供的 RabbitTemplate 发送消息。调用 convertAndSend 方法,其中需要指定队列名和消息内容。
    • 例子代码:
java 复制代码
@Autowired
private RabbitTemplate rabbitTemplate;

@Test
public void testSimpleQueue() {
    // 队列名称
    String queueName = "simple.queue";
    // 消息
    String message = "Hello, Spring AMQP!";
    // 发送消息
    rabbitTemplate.convertAndSend("simple.queue", message);
}

创建消费者(消息接收)

  • 消费者用于监听队列并接收消息。
  • 创建一个类,并使用 @RabbitListener 注解标注接收方法,指定监听的队列名称。
  • 例子代码:
java 复制代码
@Slf4j
@Component
public class SpringRabbitListener {

    @RabbitListener(queues = "simple.queue")
    public void listenSimpleQueueMessage(String message) throws InterruptedException {
        log.info("spring 消费者接收到的消息: " + message);
    }
}
  • 通过 @RabbitListener 注解,Spring会自动处理消息的接收和转换。
  • 运行ConsumerApplication,成功监测到消息

环境准备与操作

  • 在开发过程中,确保RabbitMQ服务已经启动并运行。
  • 消费者和生产者分别部署到不同的微服务中,通过队列进行消息交换。
相关推荐
木心爱编程5 分钟前
C++20多线程新特性:更安全高效的并发编程
java·jvm·c++20
ljf88385 分钟前
Java导出复杂excel,自定义excel导出
java·开发语言·excel
江流月照14 分钟前
PCIE地址空间介绍
java·服务器·网络
一只乔哇噻43 分钟前
java后端工程师进修ing(研一版‖day44)
java·开发语言·学习·算法
老华带你飞1 小时前
畅阅读小程序|畅阅读系统|基于java的畅阅读系统小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序·毕设·畅阅读系统小程序
Cxzzzzzzzzzz1 小时前
RabbitMQ 在实际开发中的应用场景与实现方案
分布式·rabbitmq
卓码软件测评4 小时前
第三方软件测试机构【性能测试工具用LoadRunner还是JMeter?】
java·功能测试·测试工具·jmeter·性能优化
Lionel_SSL7 小时前
《深入理解Java虚拟机》第三章读书笔记:垃圾回收机制与内存管理
java·开发语言·jvm
记得开心一点嘛7 小时前
手搓Springboot
java·spring boot·spring
老华带你飞8 小时前
租房平台|租房管理平台小程序系统|基于java的租房系统 设计与实现(源码+数据库+文档)
java·数据库·小程序·vue·论文·毕设·租房系统管理平台