快速导航
面试题:
- 为什么使用消息队列?
- 消息队列的优缺点?
- Kafka、ActiveMQ、RabbitMQ、RocketMQ 的区别和适合的场景?
为什么使用消息队列?
回答这个问题,为什么要使用消息队列?
答案肯定是因为使用它有好处,或是能解决业务痛点、或是能提升系统性能、或是能提升开发效率。
而使用消息队列能做到:解耦、异步、削峰
1. 解耦
作为一个开发人员,想必我们对设计原则多多少少也有一些了解,高内聚低耦合是软件工程中对设计好坏判断的一个标准。
这里说的解耦的意思,就是降低耦合度。
想象一下,系统A同时和系统B、C、D等多个系统存在业务联系,使用的最简单的方式,就是接口直接调用。
这个过程有两个特点:同步 和 阻塞
系统A对数据的修改,实时同步更新到B、C、D系统中,且在同步过程中,系统A在当前线程中不能做任何其他的操作。
- 一旦同步过程出现一点点的问题,则整个系统的业务就无法继续进行下去。
- 新增或者删除同步的系统(系统D不需要更新系统A的状态了,新系统E需要根据系统A的状态同步更新),都需要修改系统A的接口调用代码,这违反了开闭原则。
而使用MQ作为一个消息的缓冲区,系统A把所有对其他系统的同步通知消息都交给MQ,然后再由需要消息的其他B、C、E系统消费消息,可以有效的降低系统之间的耦合度。避免系统A调用其他系统时可能出现的全部系统奔溃。
2. 异步
在解耦的部分,已经对系统间的调用过程有了讲解,其中一个特点就是:同步
同步的一个好处

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



