栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【详细步骤】Springboot整合RabiitMQ

【详细步骤】Springboot整合RabiitMQ

文章目录
  • 前言
  • 一、首先我们需要引入RabiitMQ的依赖
  • 二、然后进行配置
    • 1.在application.yml配置文件中进行RabbitMQ的配置
    • 2.创建配置类
    • 3.封装发送消息和接收消息的类
  • 三、测试
    • 1.随便在一个Contoller类中写一个测试方法
    • 2.启动项目 进行测试


前言

提示:Springboot整合RabiitMQ:
前面我们安装好了RabiitMQ并成功启动后,接下来我们就来学习如何将RabiitMQ整合到Springboot上,并且进行实战使用。springboot的项目创建这里就不进行说明了。


提示:以下是本篇文章正文内容,下面案例可供参考

一、首先我们需要引入RabiitMQ的依赖

在pom.xml 中引入RabiitMQ的依赖

		 
        
            org.springframework.boot
            spring-boot-starter-amqp
        
二、然后进行配置 1.在application.yml配置文件中进行RabbitMQ的配置

配置如下:

spring:
	 #  RabbitM配置
  rabbitmq:
    #  服务器
    host: 192.168.175.175
    #  用户名
    username: guest
    #  密码
    password: guest
    #  虚拟主机
    virtual-host: /
    #  端口
    port: 5672
    #  监听相关配置
    listener:
      simple:
        #  消费者的最小数量
        concurrency: 10
        #  消费者的最大数量
        max-concurrency: 10
        #  限制消费者 每次只处理一条消息,处理完毕后再处理下一条消息
        prefetch: 1
        #  启动时是否默认启动容器 默认true
        auto-startup: true
        #  当消息被拒绝时,是否重新进入队列
        default-requeue-rejected: true
      #  模板相关配置
    template:
      retry:
        #  开启重试  默认false
        enabled: true
        #  重试时间 默认1000ms
        initial-interval: 1000ms
        #  重试的次数  默认是3
        max-attempts: 3
        #  重试时间的最大间隔时间 默认10000ms
        max-interval: 10000ms
        #  重试的间隔乘数  比如配2.0 第一次就间隔10s 第二次 间隔20s 第三次间隔40s ****
        multiplier: 1
2.创建配置类

RabbitMQConfig:

import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class RabbitMQConfig
{

    @Bean
    public Queue queue(){
        return new Queue("queue",true);
    }
}
3.封装发送消息和接收消息的类

对消息的发送和消息的接受我们都分别进行封装 也很简单


MqSender:
@Service
@Slf4j
public class MqSender
{

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void send(Object msg)
    {
        log.info("发送消息"+msg);
        rabbitTemplate.convertAndSend("queue", msg);
    }

}

MqReceiver:

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


@Service
@Slf4j
public class MqReceiver
{
	//监听配置的队列
    @RabbitListener(queues = "queue")
    public void receive(Object msg){
        log.info("接收消息:"+msg);

    }

}
三、测试 1.随便在一个Contoller类中写一个测试方法

我是在我的测试项目中TUserController中添加一个测试方法如下代码:

@RestController
@RequestMapping("/user")
public class TUserController
{
  	@Autowired
    private MqSender mqSender;

    @RequestMapping("/mq")
    public void mq(){
        mqSender.send("Hello");
    }
}
2.启动项目 进行测试

我此次的测试路径为 http://localhost:8080/user/mq
我们可以看到IEAR控制台会输出我们的测试数据 如下

2021-12-10 13:43:08.956  INFO 41712 --- [io-8080-exec-10] com.xxxxx.seckilldemo.rabbitmq.MqSender  : 发送消息Hello
2021-12-10 13:43:08.978  INFO 41712 --- [tContainer#0-12] c.xxxxx.seckilldemo.rabbitmq.MqReceiver  : 接收消息:(Body:'Hello' MessageProperties [headers={}, contentType=text/plain, contentEncoding=UTF-8, contentLength=0, receivedDeliveryMode=PERSISTENT, priority=0, redelivered=false, receivedExchange=, receivedRoutingKey=queue, deliveryTag=1, consumerTag=amq.ctag-IrqC4b7RL3mg1rMy8NefPQ, consumerQueue=queue])

项目启动后RabiitMQ的控制台会显示有一个连接如下图

此次我的测试项目结构如下图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/654237.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号