面试大全-MQ-消息队列

Posted rundreamsFly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试大全-MQ-消息队列相关的知识,希望对你有一定的参考价值。

为什么要使用MQ

  • 解耦、异步、削峰
  • 解耦:一个系统或者说一个模块,调用了多个系统或者模块,互相之间很复杂,维护起来比较麻烦。但是这个接口不需要同步接口的,比如通知等,这个时候采用异步化进行解耦
  • 异步:某些操作,比如非事务操作,这个时候可以采用异步的方式
  • 削峰:减少高峰期对服务器的压力。

MQ有什么缺点

  • 系统可用性降低,从某种情况来说,因为依赖中间件越多,出问题的概率就越大。
  • 系统复杂度提高:怎么保证消息不会重复消费,保证消息没有丢失
  • 一致性问题:可以采用事务消息。
  • https://blog.csdn.net/QGhurt/article/details/114630705

如何保证高可用的

  • RabbitMQ 是比较有代表性的,因为是基于主从(非分布式)做高可用性的,我们就以 RabbitMQ为例子讲解第一种 MQ 的高可用性怎么实现。RabbitMQ 有三种模式:单机模式普通集群模式镜像集群模式
  • 普通集群模式,意思就是在多台机器上启动多个 RabbitMQ 实例,每个机器启动一个。你创建的
    queue,只会放在一

以上是关于面试大全-MQ-消息队列的主要内容,如果未能解决你的问题,请参考以下文章

消息队列面试题

消息队列MQ面试专题(rabbitmq)

MQ消息中间件,面试能问写什么?

mq面试必备

分布式服务(RPC)+分布式消息队列(MQ)面试题精选

Java面试题:引入消息队列后如何保证其高可用性?