【白话MQ】消息队列MQ的使用和选型

面试题:

  • 为什么使用消息队列?
  • 消息队列的优缺点?
  • Kafka、ActiveMQ、RabbitMQ、RocketMQ 的区别和适合的场景?

为什么使用消息队列?

回答这个问题,为什么要使用消息队列?
答案肯定是因为使用它有好处,或是能解决业务痛点、或是能提升系统性能、或是能提升开发效率。

而使用消息队列能做到:解耦、异步、削峰

1. 解耦

作为一个开发人员,想必我们对设计原则多多少少也有一些了解,高内聚低耦合是软件工程中对设计好坏判断的一个标准。

这里说的解耦的意思,就是降低耦合度。

想象一下,系统A同时和系统B、C、D等多个系统存在业务联系,使用的最简单的方式,就是接口直接调用。

这个过程有两个特点:同步阻塞

系统A对数据的修改,实时同步更新到B、C、D系统中,且在同步过程中,系统A在当前线程中不能做任何其他的操作。

  1. 一旦同步过程出现一点点的问题,则整个系统的业务就无法继续进行下去。
  2. 新增或者删除同步的系统(系统D不需要更新系统A的状态了,新系统E需要根据系统A的状态同步更新),都需要修改系统A的接口调用代码,这违反了开闭原则

而使用MQ作为一个消息的缓冲区,系统A把所有对其他系统的同步通知消息都交给MQ,然后再由需要消息的其他B、C、E系统消费消息,可以有效的降低系统之间的耦合度。避免系统A调用其他系统时可能出现的全部系统奔溃。

2. 异步

在解耦的部分,已经对系统间的调用过程有了讲解,其中一个特点就是:同步

同步的一个好处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder.Ren

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值