面试大全-MQ-消息队列
Posted rundreamsFly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试大全-MQ-消息队列相关的知识,希望对你有一定的参考价值。
为什么要使用MQ
- 解耦、异步、削峰
- 解耦:一个系统或者说一个模块,调用了多个系统或者模块,互相之间很复杂,维护起来比较麻烦。但是这个接口不需要同步接口的,比如通知等,这个时候采用异步化进行解耦
- 异步:某些操作,比如非事务操作,这个时候可以采用异步的方式
- 削峰:减少高峰期对服务器的压力。
MQ有什么缺点
- 系统可用性降低,从某种情况来说,因为依赖中间件越多,出问题的概率就越大。
- 系统复杂度提高:怎么保证消息不会重复消费,保证消息没有丢失
- 一致性问题:可以采用事务消息。
- https://blog.csdn.net/QGhurt/article/details/114630705
如何保证高可用的
- RabbitMQ 是比较有代表性的,因为是基于主从(非分布式)做高可用性的,我们就以 RabbitMQ为例子讲解第一种 MQ 的高可用性怎么实现。RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式
- 普通集群模式,意思就是在多台机器上启动多个 RabbitMQ 实例,每个机器启动一个。你创建的
queue,只会放在一
以上是关于面试大全-MQ-消息队列的主要内容,如果未能解决你的问题,请参考以下文章