1.消息队列MQ的简介-学习笔记

1. 消息队列MQ的简介

MQ全称 Message Queue(消息队列),是在消息传输的过程中保存消息的容器。多用于分布式系统之间进行通信


1.2 分布式系统的通信方式

  1. 远程直接调用:
    在这里插入图片描述

  2. 通过中间件进行操作
    在这里插入图片描述

1.3. 使用消息中间件的优劣势

1.3.1 优势

应用解耦:提高系统的容错性和扩展性

  • 直接调用方式
    在这里插入图片描述
  • 使用中间件的方式
    在这里插入图片描述


    异步提速:提高用户体验和系统吞吐量
  • 使用远程调用方式
    在这里插入图片描述
  • 使用中间件
    在这里插入图片描述
    削峰填谷:提高系统的稳定性
    使用消息中间件可以控制访问B、C、D系统的访问量,防止高峰期造成瘫痪,但同时在高峰期过后的一段时间内,B、C、D系统仍然会进行工作。也就是:高峰期没那么高,的那会持续一段时间

1.3.2 劣势

一个东西有优势,那么必然就有它的劣势。来看一下消息中间件的劣势吧!

  • 系统复杂度提高
    消息中间件的加入大大增加了系统的复杂度,以前系统间的调用是同步的,现在通过MQ进行异步调用,需要保证消息的顺序性,需要处理消息丢失的情况,还要保证消息不被重复使用。而且还要对消息中间件进行维护
  • 一致性问题
    A 系统要完成业务,需要通过MQ给B、C、D三个系统发送消息数据,如果B、C系统处理成功,D系统处理失败,这时候还要考虑数据处理的一致性问题
  • 可用性降低
    一个系统对外部的依赖越多,系统的稳定性越差,一旦MQ宕机,那么业务必然收到影响。

如何决定使用还是不使用消息中间件呢?

  1. 生产者不需要从消费者那边获得反馈,这才可以进行异步操作。
  2. 用了消息中间件的收益要明显大于没使用的情况,收益还要超过管理这些MQ的成本

1.4 RabbitMQ原理图

在这里插入图片描述

说明:
producer: 生产者,也就是给消息中间件发消息的程序
Connection: 连接对象
Channel: 通道(信道),通过信道与消息中间件进行连接
Broker:消息中间件所在的服务器
Virtual Host: 虚拟主机,消息队列与交换机都存在这里
Exchange:交换机,负责Producer与Queue的通信
Queue:消息队列
Consumer: 消费者,也就是需要被调用的程序,消息的目标对象
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值