消息队列(一)之概念以及常用场景

本文阐述了消息队列(MQ)在系统架构中的关键作用,包括实现系统间解耦、支持异步处理以及帮助系统削峰填谷等功能。通过使用消息队列,可以有效提升系统的稳定性和响应速度。

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

消息队列,一般我们会简称它为MQ(Message Queue)

科普:

把数据放到消息队列叫做生产者

从消息队列里边取出数据叫做消费者

一、为什么要用消息队列?

1、解耦

系统A将userId写到消息队列中,系统C和系统D从消息队列中拿数据。这样有什么好处?

  •  系统A只负责把数据写到队列中,谁想要或不想要这个数据(消息),系统A一点都不关心。
  •  即便现在系统D不想要userId这个数据了,系统B又突然想要userId这个数据了,都跟系统A无关,系统A一点代码都不用改。
  •  系统D拿userId不再经过系统A,而是从消息队列里边拿。系统D即便挂了或者请求超时,都跟系统A无关,只跟消息队列有关。

这样一来,系统A与系统B、C、D都解耦了。

2、异步

 

系统A执行完了以后,将userId写到消息队列中,然后就直接返回了(至于其他的操作,则异步处理)。

3、 削峰/限流

  •  本来整个请求需要用950ms(同步)
  •  现在将调用其他系统接口异步化,从请求到返回只需要100ms(异步)

 系统B和系统C根据自己的能够处理的请求数去消息队列中拿数据,这样即便有每秒有8000个请求,那只是把请求放在消息队列中,去拿消息队列的消息由系统自己去控制,这样就不会把整个系统给搞崩。

文章来源于 http://developer.51cto.com/art/201904/595020.htm

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值