消息队列(一)为什么需要消息队列

为什么需要消息队列

在说明什么是消息队列前,先来了解一下为什么需要使用消息队列,它解决了什么问题,不能为了用而用。

MQ 的应用场景有很多,耳熟能详的是的是:系统解耦、异步处理和流量削峰。除此之外,还有延迟通知、分布式事务、顺序消息、流式处理等等。

解耦

消息队列可以实现系统应用之间的解耦,那什么是解耦呢,先来看一个场景。

有一个系统A需要发送数据到BCD三个系统中,通过接口调用的方式,如下图

在这里插入图片描述

在平常开发中,我们会在A系统代码中调用BCD系统所提供的接口,当某日需求需要增加或者删除一个接口,那么我们需要增加或者删除相应的代码,如果需要频繁的修改,想到这种场景我的心态都要炸了。而且各种服务耦合在一起,不出现问题还好,一旦某个系统出现问题,就会影响整个业务流程,如果在相应的位置上进行try catch,那就相当于埋了颗炸弹,说不定什么时候,砰的一下就会被炸飞。

那使用消息队列后会怎样呢,来看下图

在这里插入图片描述

引入消息队列后,A系统将产生数据发送到MQ,当BCD系统需要使用A系统提供的数据时直接从MQ消费即可,如果新增或者删除系统时,不需要在修改A系统中的代码,直接从MQ消费或者取消消费即可,这样处理它不香吗。

异步处理

为了不影响用户的体验,系统需要尽可能快的响应给用户。试想一下,如果每次操作用户都需要等待1-2秒,那你这是在挑战用户,你当用户是Hello Kitty吗。如下图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值