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));
    }
}

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

相关推荐
小蒜学长1 小时前
“守望自然”招募志愿者环保行动网站的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
weixin_BYSJ19872 小时前
【java项目分享】springboot阅读推荐平台10600
java·javascript·spring boot·python·django·flask·php
sunywz3 小时前
【从零搭建物联网智能充电桩系统】选型篇:Netty、MQTT、RabbitMQ、IoTDB 为什么这么选?
物联网·rabbitmq·iotdb
腾渊信息科技公司3 小时前
Spring Boot集成TDengine实战:工业时序数据存储选型与迁移方案
spring boot·后端·tdengine
zoyation4 小时前
Spring Boot集成OAuth2授权码模式的三种登录策略
java·spring boot·后端
xiaoqiMikko18 小时前
Dependabot 面板全绿,不代表你的 Tomcat 没洞
java·spring boot
摇滚侠18 小时前
SpringBoot 官网 阅读笔记 启用生产就绪功能 端点
spring boot·笔记·后端
evans在进步19 小时前
HashMap 为什么线程不安全?ConcurrentHashMap 如何解决?
java·spring boot·spring
华章酱1 天前
基于 RabbitMQ 与 Hyperf 的消息顺序性保障方案
分布式·rabbitmq
小林敲代码77881 天前
Spring Boot 3 升级踩坑:aj-captcha 行为验证码底图加载失效
java·spring boot·后端