为什么使用spring-boot-starter-amqp的SpringAMQP发送没有问题但是RabbitMQ没有消息队列

18 篇文章 0 订阅
2 篇文章 0 订阅

前提

你得保证你的RabbitMQ可以访问管理页面,同时你得放开5672这个端口,如果使用docker的话有下面这个效果就可以了。

在这里插入图片描述

问题产生

这里产生的主要的问题就是因为RabbitMQ没有产生对应的消息队列导致你提交的消息RabbitMQ并不会创建一个队列来存这个消息,所以我们要解决这个问题的就是你得建立一个实实在在的队列之后才向对应的RabbitMQ的对应交换机里面的对应的队列发送有效的数据,这样才可以被RabbitMQ保存下来,一般建立一个监听,让这个监听在项目开始的时候就监听一个队列就可以了。

解决方案

pom.xml

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

application.yml

spring:
  application:
    name: RabbittMQSpringAMQP1

  rabbitmq:
    host: 192.168.247.105
    port: 5672
    virtual-host: /
    username: pengpeng
    password: pengpeng

    listener:
      type: simple
      simple:
        acknowledge-mode: manual

test.java

package com.example.rabbittmqspringamqp1;

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
class RabbittMqSpringAmqp1ApplicationTests {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    void contextLoads() {

        // 队列名称
        String queueName = "simple.queue";
        // 消息
        String message = "hello SimpleQueue!";

        for(int i=0;i<20;i++){
            rabbitTemplate.convertAndSend(queueName, message+i);
        }
        // 发送消息


    }

}

建立一个监听器

//自动创建队列
@RabbitListener(queuesToDeclare = @Queue("simple.queue"))
public void process2(String msg){
    System.out.println("消费者接收到消息:【" + msg + "】");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

堕落年代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值