SpringBoot整合RabbitMQ完成应用解耦和延时任务

前言:
MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道。以管道的方式做消息传递。

场景:

1.优化用户体验,当我们在网上购物结算时,就会发现,界面会提醒我们,让我们稍等,以及一些友好的图片文字提醒
    
2.在我们平时的超市中购物也,遇到大批人一窝蜂一样涌入收银台,怎么办?所以超时,会设置一个走廊,让人们排队一个一个慢慢结算。
在网络购物中也会遇到同样的情况,MQ就会帮我们解决这个问题。

在这里插入图片描述
RabbitMQ模式
1.简单模式:非常简单的模式,一发一收

2.工作模式 :与简单模式一样只是有多个消费者,采用轮询模式,但是资源分配不公平

3.公平模式:资源分配公平的工作模式

4.订阅模式:消息产生者将消息通过交换机放入队列,对应消息队列的消费者拿到消息进行消费

5.路由模式:与订阅模式一样,只是绑定队列时,加入了路由键

6.主题模式:与路由模式一样,只是路由键可以进行模糊匹配。像SQL语句中的 like% 和like%


SpringBoot整合RabbitMQ

  • 直接进入正题,这里先写平时用的最多的路由键模式,其他模式以后补上来

POM依赖

<!--rabbitmq-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
            <version>1.5.2.RELEASE</version>
        </dependency>
    </dependencies>

application配置

#rabbitmq配置
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=miro
spring.rabbitmq.password=xxxxx
spring.rabbitmq.virtual-host=mirovh

绑定交换机设置config类

@Configuration
public class RouteConfig {
   
   

    //声明交换机
    @Bean
    public DirectExchange directExchange(){
   
   
        return  new DirectExchange("direct-ex");   //交换机的名字direct-ex
    }

    //创建队列  2个队列就要2个消费者
    @Bean
    public Queue directQueue1(){
   
   
        return  new Queue("direct-queue1");   //队列1的名字direct-queue1
    }

    @Bean
    public Queue directQueue2(){
   
   
        return  new Queue("direct-queue2");   //队列2的名字direct-queue2
    }

    //绑定队列到交换机的路由键上面
    @Bean
    public Binding bindingDirectExchange1(){
   
   
        return BindingBuilder.bind(directQueue1()).to(directExchange()).with("dq1");//路由键名字dq1
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值