当前位置: 首页 > news >正文

MQ的作用

一、三大核心作用

  1. 解耦

    • 是什么​:系统A不需要直接调用系统B、C、D的接口,只需要将消息发送到MQ。系统B、C、D根据需要自行从MQ订阅消息。即使有系统E未来需要加入,也只需要订阅MQ,而无需系统A做任何代码修改。

    • 好处​:降低了系统间的依赖关系,架构更加灵活,一个系统的故障不会直接导致调用链上的其他系统崩溃。

  2. 异步

    • 是什么​:主流程(如用户下单)中,不需要同步等待次要流程(如发送短信、更新积分)完成。主流程将消息写入MQ后即可返回成功,次要流程异步地从MQ中消费消息并处理。

    • 好处​:极大缩短了主流程的响应时间,提升了用户体验和系统吞吐量。例如,下单后立即返回“订单提交成功”,而不是等短信发完再返回。

  3. 削峰填谷

    • 是什么​:在流量洪峰(如秒杀活动)时,海量请求先涌入MQ中排队,后端的处理系统按照自己的能力匀速地从MQ中消费消息,避免被突发流量冲垮。

    • 好处​:保护后端系统,防止系统因压力过大而宕机,提高了系统的稳定性和可用性。MQ起到了一个“蓄水池”或“缓冲带”的作用。


二、重要的延伸作用

在三大核心作用的基础上,MQ还衍生出以下关键作用:

  1. 数据分发/通信

    • 是什么​:MQ天然支持发布/订阅(Pub/Sub)模式。一个生产者发出的消息,可以被多个消费者同时订阅和消费。

    • 场景​:

      • 数据同步​:比如,用户中心的主数据发生变化后,发一条消息到MQ,订单系统、商品系统、营销系统等都可以订阅这条消息,来更新自己冗余存储的用户信息,实现最终一致性。

      • 事件驱动架构​:一个微服务完成某个动作后(如订单已支付),发布一个事件(OrderPaidEvent),其他关心该事件的微服务(如库存服务、积分服务、物流服务)会接收到事件并触发相应的业务逻辑。

  2. 顺序保证

    • 是什么​:某些场景下(如先下单、再付款、再发货),消息的处理顺序至关重要。一些MQ(如RabbitMQ的单个队列、Kafka的Partition)可以保证消息在特定条件下的先进先出(FIFO)顺序。

    • 场景​:数据库的Binlog同步、金融领域的交易流水处理。

  3. 缓冲与流控

    • 是什么​:这是“削峰”的一个更细粒度的体现。当生产者和消费者的处理速度不匹配时,MQ可以作为中间的缓冲区。如果消费者暂时故障或处理变慢,消息会积压在MQ中,待其恢复后继续处理,避免了数据丢失。

    • 好处​:平滑了系统间的处理速率差异,增强了系统的鲁棒性。

  4. 冗余与可靠性

    • 是什么​:大多数MQ都支持消息的持久化。即使消费端服务宕机,消息也会安全地存储在MQ服务器中,待服务恢复后可以重新消费,确保了关键业务数据不丢失。

    • 场景​:金融交易、订单处理等对数据一致性要求高的场景。

  5. 扩展性

    • 是什么​:由于系统间通过MQ进行通信,耦合度低,可以非常方便地通过增加消费者实例来水平扩展系统的处理能力。例如,感觉发短信的服务处理慢了,可以直接启动多个短信服务实例来并行消费MQ中的消息。

  6. 可恢复性

    • 是什么​:当系统中某个组件失效时,不会影响消息的投递。消息会在MQ中存续,直到被正确的消费者成功处理。这为系统的部分故障恢复提供了便利。

总结

作用

核心思想

典型场景

解耦

降低系统间依赖

微服务间的通信,新系统接入

异步

提升响应速度

主流程与次要流程分离(如发通知)

削峰填谷

平衡系统负载,防止崩溃

秒杀、抢购等瞬时高并发场景

数据分发

一对多通信

数据同步、事件驱动架构

顺序保证

确保消息处理顺序

数据库同步、交易流水

冗余可靠

数据不丢失

支付、订单等核心业务

所以,当被问到MQ的作用时,可以先回答解耦、异步、削峰这三个最核心的,然后可以补充说明:“除此之外,MQ还能实现数据分发、顺序处理、提高系统的可扩展性和可靠性等重要作用。” 这样就非常完整了。

http://www.dtcms.com/a/496848.html

相关文章:

  • 东莞网站推广专业的企业小程序开发公司
  • 柴油网站怎么做找素材的网站大全
  • Visual Basic 值传递与地址传递
  • html做音乐网站模板网站开发合同范本
  • 当地人做导游的旅游网站产品外观设计用什么软件
  • 站酷网网址银川网站建设哪家好
  • 滦南县建设局网站小程序登录的具体流程
  • 网站建设分享装饰工程 技术支持 东莞网站建设
  • 石家庄seo网站排名网站做强制访问控制
  • 广西建设工程质量监督网站做医院的网站 配色怎么选择
  • 论文精读:《Robot Person Following in Uniform Crowd Environment》
  • 网站平台建立广州做网站哪个公司做得好
  • 美工网站做兼职固安建设行政主管部门官方网站
  • 鸿蒙Harmony实战开发教学(No.6)-Search组件基础到进阶篇
  • 免费网站建设下载网站建设与推广培训学校
  • 重庆模板网站多少钱网页设计与制作课程设计报告小结
  • 如何来做网站优化湖南州省郴州
  • 网站建设公司薪资美工怎么做网站效果图
  • 用Lxml高效解析XML格式数据:以天气API为例
  • 哪些动物可以做网站名代做土木工程专业毕业设计网站
  • 门户网站建设情况简介深圳推广公司哪家正规
  • linux——基本操作指令——下
  • 免费的外贸网站推广方法教育类网站 前置审批
  • 广东集团网站建设杭州富阳建设局网站首页
  • 网站建设需要些什么设备wordpress 底部按钮
  • 建设企业网站的模式帮助中心网站源码
  • 9. 数列
  • 建设区服务网站怎么学做电商然后自己创业
  • 公司如何组建网站网站建设旗帜条幅
  • 网站建设的投资预算怎么写关键词seo排名怎么选