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的好处才能在以后的工作中更好的使用这门技术。

相关内容

热门资讯

150欧元的刀终于刺向中国跨境... 出品|虎嗅商业消费组作者|周月明编辑|苗正卿题图|视觉中国欧盟这次终于把“刀”真正落在了跨境小包上。...
瑞幸不想困在9块9 本文来自微信公众号:山上,作者:何简,编辑:王彬,题图来自:视觉中国中国最大的连锁咖啡品牌瑞幸咖啡正...
DeepSeek给出了对寒武纪... 本文来自微信公众号:最话 FunTalk,作者:何伊然,编辑:刘宇翔,题图来自:AI生成一个有趣的问...
国产手机Air化成潮流,为啥手... 如果要问最近一段时间,手机市场最大的变革趋势是什么?并不是大家以为的折叠屏、AI手机什么的,而是Ai...
第一批大模型公司要上市了,问题... 本文系基于公开资料撰写,仅作为信息交流之用,不构成任何投资建议2025年12月17日,北京智谱华章科...