从零了解MQ

从零了解MQ

有从别的地方复制的介绍,侵删

是什么

代表消息队列,是一种应用程序对应用程序的通信方法;通过消息传递队列发送和接收消息数据,达到两者之间的信息交换。

组成

  1. Broker
    消息服务器,作为server提供消息核心服务
  2. Producer
    消息生产者,业务的发起方,负责生产消息传输给broker,
  3. Consumer
    消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理
  4. Topic
    主题,发布订阅模式下的消息统一汇集地,不同生产者向topic发送消息,由MQ服务器分发到不同的订阅者,实现消息的广播
  5. Queue
    队列,PTP模式下,特定生产者向特定queue发送消息,消费者订阅特定的queue完成指定消息的接收
  6. Message
    消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输

种类

老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。

模式分类

  1. 多对多
    一个或多个publish将一条msg发到一个或多个queue中,一个queue可以有多个consumer监听,但是msg只能被其中一个consumer消费
  2. Pub/Sub发布订阅(广播)
    一个或多个publish将一条msg发给全部queue,可以有多个consumer消费

MQ核心使用场景(优点):

  1. 应用解耦
  2. 异步消息
  3. 流量削峰
耦合、解耦
  1. 两者有调用关系,就会产生依赖,这就是耦合
  2. 常见的方法是通过缓冲区来降低相互的依赖性,就是解耦。
同步、异步
  1. 同步
    B一直等待A的处理结果出来之后,才去做接下来要做的事情
  2. 异步
    B在等待A处理的同时,先去做别的事情,直到A通知,B才去接收数据
阻塞、非阻塞
  1. 阻塞
    B主动去监听或询问A是否处理完毕
  2. 非阻塞
    A主动去告诉B自己已经处理完毕
削峰

通过缓冲区存储的方法,来解决瞬间出现大量操作导致系统死机的情况。

MQ缺点:

  1. 系统可用性降低
    如果MQ死掉,将会导致整个系统全部崩溃
  2. 系统复杂度提高
    会出现:消息重复消费、消息丢失、传递消息的顺序错误 等情况
  3. 一致性问题
    有的系统请求成功了,有的失败了,没办法判断和处理
  4. 效率
    增加了一层MQ,效率有所降低。
  5. 调试和测试的工作加大。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值