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

相关内容

热门资讯

一汽豪掷37亿拿下零跑5%股权... 成立十周年之际,零跑宣告了和一汽的股权合作。12月29日,零跑汽车(下称“零跑”)于港交所公告,前一...
2026节点增长大会圆满收官,... 岁尾年初,AI早已跨越“概念验证”的青涩,全面挺进“产业重塑”的深水区。从生命科技的细胞工厂到穿梭城...
挑战年销量400万,零跑意欲撕... 在零跑汽车成立十周年之际,零跑迎来了又一位新的大股东——中国一汽。随着一汽的入股,这家新势力车企将携...
天箭科技可能“披星戴帽”,调减... 微成都报道 12月29日盘后,天箭科技(002977)发布重大风险提示公告。受军品价格调整影响,公司...
合见工软启动上市辅导,估值13... 红星资本局12月29日消息,日前,证监会官网显示,国产EDA头部企业上海合见工业软件集团股份有限公司...