RabbitMQ:SpringAMQP 入门案例

目录


一、概述

这是一篇Java集成RabbitMQ的入门案例,在这里我们做一个小案例,来体会一下RabbitMQ的魅力。

首先我们要做的就是创建一个生产者一个消费者:

  1. 生产者直接向RabbitMQ的队列(Queue)simple.queue中发送消息。
  2. 消费者负责接收队列(Queue)simple.queue发送过来的消息。

生产者源码
消费者源码

二、基础配置

当我们的生产者要发送和接收消息时,首先需要再RabbitMQ中创建一个通道。

三、生产者

  1. 加载POM文件
xml 复制代码
<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-amqp</artifactId>
	</dependency>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
	</dependency>
</dependencies>
  1. 配置YML文件
yml 复制代码
server:
  port: 8021
spring:
  #给项目来个名字
  application:
    name: rabbitmq-provider
  #配置rabbitMq 服务器
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: admin
    password: admin
    virtualHost: /mamf
    connection-timeout: 5000
    requested-heartbeat: 30
  1. 在Test中编写测试代码
java 复制代码
package com.ming;

import org.junit.jupiter.api.Test;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class SpringAmqpTest {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    public void testSend() {
        for (int i = 0; i < 10; i++) {
            String queueName = "simple.queue";  // 队列名称
            String messahe = String.format("hello %s, spring amqp!", i + 1);  // 消息
            rabbitTemplate.convertAndSend(queueName, messahe);  // 发送
        }
    }
}

四、消费者

消费者的前两部分与生产者是一样的,消费者需要创建一个监听,用于监听simple.queue队列。

java 复制代码
package com.ming.listens;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class RabbitmqListen {
    @RabbitListener(queues = "simple.queue")
    public void listenSimpleQueue(String message){
        System.out.println(String.format("消费者收到了simple.queue: %s", message));
    }
}

当从生产者发送消息时,消费者就会监听到数据。

相关推荐
m0_639906944 小时前
SpringBoot自动配置原理
java·spring boot·后端
aiks_yuan6 小时前
Spring AI MCP Server 怎么接入 Claude Code:Spring Boot 用 @McpTool 暴露接口(Spring AI 2.0.2 实测)
spring boot
学长毕设7 小时前
基于springboot的实验室设备管理系统
java·spring boot·后端
学长毕设7 小时前
基于springboot的社区养老监护系统的设计与实现
java·spring boot·后端
wno7047 小时前
Springboot国际化信息(i18n)解析
java·spring boot·后端
paopaokaka_luck9 小时前
社区服务平台(加权协同过滤推荐、Jieba中文词频分析、WebSocket实时聊天、求助处理闭环、 活动积分闭环、ECharts多维分析)
java·前端·spring boot·mysql·echarts·mybatis
不会写代码的女程序猿9 小时前
Spring Boot+Layui构建企业级电子招投标系统源码
spring boot·招投标系统·招采系统·电子招投标
仙逆GPT11 小时前
ChatGPT、Codex工程机制:Agent把@Transactional方法改成异步执行,为什么数据会出现部分提交?
spring boot·chatgpt·codex·chatgptplus·chatgptpro
切糕师学AI11 小时前
K8s 滚动更新与 Spring Boot 优雅停机实战:如何做到真正的平滑发布?
spring boot·云原生·容器·kubernetes·k8s
LazyHunter912 小时前
Spring Boot 3 微服务实践指南
java·spring boot