28个案例问题分析---16---消息队列的作用和意义--RabbitMq
创始人
2025-05-29 12:48:52

MQ的作用

  • 背景
  • 相关知识
    • 概念:什么是MQ
    • MQ的优缺点
    • 如何使用rabbitmq
  • 总结&提升

背景

之前项目里使用过rabbitmq,但是没有系统的总结过,今天就专门总结一下rabbitmq的好处和意义,并且附上一个小例子。展示一下rabbitMq的简单应用

相关知识

概念:什么是MQ

MQ(Message Queue)消息队列。队列是一种基础的数据结构。具有先进先出的特性,用队列来实现消息的传递。生产者生产消息,将消息放入队列。消费者从队列取出消息(服务端推送,或者订阅),进行消费。
在这里插入图片描述

MQ的优缺点

MQ有三大优点:

  1. 解耦
    如果我们一个业务需要依赖多个模块共同实现。利用MQ,我们只需要在主业务完成之后发送一条MQ消息即可。主业务和其他业务之间,没有强耦合关系。
  2. 异步
    主业务执行完毕之后,就可以返回给前端。从业务进行异步执行,没有必要让用户进行等待。降低业务响应时间,提升用户的体验。
  3. 削峰
    高并发的情况下,通过队列来存储消息,消息对应的业务异步进行处理,避免在流量峰值到来的时候造成系统瘫痪。
    MQ有三大缺点:
  4. 系统依赖的服务多。
  5. 系统复杂性提高。(消息丢失?消息重复消费?消息顺序?)
  6. 业务一致性。主业务与从业务是否一致

如何使用rabbitmq

这里我们就实现简单的在springCloud项目中使用rabbitMq的例子。

  1. 引入依赖
        org.springframework.bootspring-boot-starter-amqp
  1. 添加rabbitMq配置
    在这里插入图片描述

  2. 编写消息生产者
    在这里插入图片描述

  3. 编写消息消费者
    在这里插入图片描述

  4. 测试
    提供一个test接口用来测试

    @Autowiredprivate SpringMqProduceTest springMqProduceTest;@GetMapping("testMq/{message}")public String testMq(@PathVariable("message") String message){springMqProduceTest.testSimpleQueue("testMq",message);return "已发送:"+message;}

执行效果:
调用接口
在这里插入图片描述
控制台输出
在这里插入图片描述

总结&提升

通过总结rabbitMQ的使用,体会MQ消息队列的作用,通过这个队列可以让我们代码耦合度更小。理解MQ的好处才能在以后的工作中更好的使用这门技术。

相关内容

热门资讯

今日重大通报“微信麻将有没有挂... 今日重大通报“微信麻将有没有挂”详细开挂教材,确实是有挂的,需要了解加客服微信【3671900】很多...
最新消息“全民松原麻将透视.挂... 您好:全民松原麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【8487422】很多玩家在这款游戏...
玩家必看“新超圣大厅辅助透视挂... 您好:新超圣大厅这款游戏可以开挂,确实是有挂的,需要软件加微信【5902455】,很多玩家在新超圣大...
科普实测“宝宝浙江游戏有没有挂... 您好:宝宝浙江游戏这款游戏可以开挂,确实是有挂的,需要软件加微信【5902455】,很多玩家在宝宝浙...
今日.热议“安徽王牌麻将有挂吗... 今日.热议“安徽王牌麻将有挂吗”(确实是有挂)【无需打开直接搜索微信【4579337】操作使用教程:...