Spring boot(四)与RabbitMQ简单消息发送和消费实现

一,安装RabbitMQ
  • 注:本教程是在win10本地docker上进行安装rabbitmq(没使用docker的可直接跳过第一部分)

不使用docker进行win本地安装rabbitmq,或者在linux虚拟机中安装rabbitmq都可以的(win10上安装docker本文不加以概述)

  • 本文拉取的是rabbitmq:management版本(即包含了rabbitmq,也包含了rabbitmq的web控制界面)
  • 拉取镜像
#指定版本,该版本包含了web控制页面
docker pull rabbitmq:management
  • 运行rabbitmq镜像
#方式一:默认guest 用户,密码也是 guest
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management

#方式二:设置用户名和密码
docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management
  • 查看镜像是否运行成功
docker ps

在这里插入图片描述

二,本地浏览器访问rabbitmq web控制器界面
  • 访问地址: http://localhost:15672
  • 如果是运行的默认镜像,账户密码都为: guest
    在这里插入图片描述
三,发送消息和消费消息
  • 创建一个简单的springboot项目 (使用idea创建什么依赖都不用选)
  • pom.xml相关依赖
 		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

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

		<!-- rabbitMq与springboot整合的依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
            <version>2.1.7.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
       </dependency>
  • application.yml配置rabbitmq相关参数
spring:
  rabbitmq:
    addresses: 127.0.0.1  #rabbitmq的地址ip(本文是在win10本地docker上安装,所以就算本地ip)
    port: 5672  #rabbitmq 端口
    username: guest  #用户名
    password: guest   #密码
  • 在rabbitmq web控制器页面上创建一个队列
    在这里插入图片描述
  • 在springboot项目中创建一个测试类(生产者
/**
 * @program: rabbitmq-demo
 * @description:
 * @author: xf
 * @create: 2021-01-14 21:54
 **/

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class RabbitMqTest{

	//注入rabbitmq
    @Autowired
    private AmqpTemplate amqpTemplate;
	//发送一个消息
    @Test
    public void sendMsg(){
        log.info("开始发送消息");
        //发送的消息,一般真实业务逻辑中是一个json字符串,这样传输的数据更多
        String msg="hello,rabbitMq";  
        System.out.println("消息体:"+msg);
        //发送消息  注: test2:就是刚才在web控制界面创建的队列名称(必须一致)
        amqpTemplate.convertAndSend("test2",msg);
        log.info("消息发送结束");
    }
}

  • 启动springboot项目后,在运行测试方法
    控制台打印
    在这里插入图片描述
  • 查看web界面,存在一条数据
    在这里插入图片描述
  • 在springboot项目中创建一个监听器组件类(消费者
    关键注解: @RabbitListener @RabbitHandler
/**
 * @program: rabbitmq-demo
 * @description:
 * @author: xf
 * @create: 2021-01-14 21:47
 **/
@RabbitListener(queues = "test2")  //test2:为队列名称
@Component
@Slf4j
public class RabbitMqComponent {

    @RabbitHandler
    public void consumeMsg(String msg){
        log.info("开始业务逻辑");
        System.out.println("消费消息:"+msg);
        log.info("结束业务逻辑");
    }
}
  • 重新启动项目,查看控制台打印
    在这里插入图片描述
  • 查看web控制器界面,消息已被消费
    在这里插入图片描述
四,springboot项目基本结构

在这里插入图片描述
完成


睡了睡了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

RemainderTime

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

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

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

打赏作者

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

抵扣说明:

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

余额充值