MQ消息队列

MQ

  • MQ全称Message Queue(消息队列), 实在消息传输过程中保存消息的容器。多用于分布式系统之间进行通信
  • 两种 通信方式:
    在这里插入图片描述
    在这里插入图片描述

MQ优势

消息到达MQ后直接给出响应,然后服务去消费相应的消息,用户体验极好

  1. 应用解耦:提高系统容错性和可维护性
    服务间调用由RPC直接调用,变成了消息的消费(即调用者将消息传入MQ,被调用者只需要消费该消息即可)
    服务间耦合度降低了,后期维护升级业务也不需要更改服务端代码,只需要在MQ中更改消息消费方即可
  2. 异步提速:提升用户体验和系统的吞吐量
    RPC:单线程同步消费消息
    在这里插入图片描述
    MQ:多线程异步消费消息
    在这里插入图片描述
  3. 晓峰填谷:提高系统稳定性
    在这里插入图片描述
    在这里插入图片描述

MQ劣势

在这里插入图片描述

  1. 系统可用性降低:引用外部依赖越多,可用性越差
  2. 系统复杂度提高:以前时直接RPC调用,加入MQ异步调用后,问题增多(如消息重复消费,丢失,传递顺序等)
  3. 一致性问题:被调用的多个服务有一个消息消费失败,如何保证数据处理的一致性
  • 使用MQ满足的条件:
  1. 生产者不需要从消费处获得反馈(参数),如果需要返回参数后调用另一个服务来消费该参数消息,则构不成异步

  2. 容许短暂的不一致性,如商品下单是消息给MQ后立即反馈,消息的消费在其之后

  3. 加入MQ有效果,即优势(模块解耦,异步提速,削峰填谷)能超过加入 管理MQ的成本

MQ的常见产品

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值