什么是MQ(消息中间件)?能解决哪些问题?

消息中间件是分布式系统中用于异步数据传输的工具,通过消息队列模型实现系统解耦、流量削峰和异步处理。引入MQ可以降低模块间耦合,提升系统吞吐量,例如在支付场景中,关键流程同步处理,非关键流程如商家通知可异步处理。然而,使用MQ也需关注消息可靠投递等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、入门概述

1、1 什么是消息中间件?

消息中间件事利用高效可靠的消息传递机制进行异步的数据传输,并基于数据通信进行分布式系统的集成。通过提供消息队列模型和消息传递机制,可以在分布式的环境下扩展进程间的通信。

1、2 为什么要在系统中引入消息中间件?

解耦、削峰、异步

链式调用是我们在写程序的时候的一般流程,为了完成应整体的功能,会将其拆分成多个函数(或子模块),比如模块A调用模块B,模块B调用模块C,模块C调用模块D,但是在大型分布式应用中,系统间的RPC交互频繁,一个功能背后要调用上百个接口并非不可能,这种架构有一下几个劣势:

  • 1、这些接口之间的耦合比较严重,每系增一个下游的功能,都要上游的所有相关接口进行改造,举个例子:假如系统A要发送数据给系统B和C,发送给每个系统的数据可能有差异,因此系统A对要发送给每个系统的数据进行了组装,然后逐一发送;当代码上线后,新增了一个需求:把数据也发送给D。此时就需要修改A系统,让他感知到D的存在,同时把数据处理好给D。在这个过程中你会看到,每接入一个下游系统,都要对A系统进行代码改造,开发联调的效率很低。其整体架构如下图:
    在这里插入图片描述
  • 2、面对大流量并发时,容易被冲垮,每个接口模块的吞吐量是有限的,这个上限能力如同一个堤坝,当大流量来临的时候,就会被冲垮。
  • 3、存在性能问题,RPC接口调用基本上是同步的,整体的服务性能遵循“木桶原理”,即链路杂种最慢的接口:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值