RabbitMQ面试题(一)

  1. 什么是RabbitMQ?
    答:RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件),生产者把消息发送到消息队列,消费者去消息队列中取消息消费,实现了服务之间的高度解耦。

  2. 使用RabbitMQ有什么好处?
    答:异步,解耦,削峰填谷

  3. 使用RabbitMQ有什么缺点?
    答:降低了系统的稳定性,下游系统都去消息队列里拿消息消费,要是消息队列服务宕机,那就崩了,所以还得考虑高可用。提高了系统的复杂性,加了一个新的中间件, 那么就要考虑这个中间件会引发的相关问题,比如消息丢失了怎么办,消息重复消费了怎么办等各种问题,这些都是需要实践和试错的。

  4. RabbitMQ有哪些重要的角色?
    答:
    生产者:消息的生产者,同时推送消息数据到消息服务器。
    消费者:消息的接收者,用来确认消息和消费消息数据。
    代理商:RabbitMQ就是代理商,它本身不生产消息,只是负责消息的存储和发送。

  5. 说说使用使用RabbitMQ的场景?
    答:用于服务间的异步通信,定时任务,请求削峰,顺序消费。

  6. 如何保证RabbitMQ的高可用?
    答:生产是不会只用一台RabbitMQ服务器来提供服务的,至少要搞个RabbitMQ集群来保证高可用。

  7. RabbitMQ集群方式有哪几种?
    答:普通集群模式,镜像集群模式。

  8. 普通集群模式是什么样的?
    答:普通集群模式,就是消息数据其实还是在一个RabbitMQ节点上,而其他RabbitMQ节点则知道这个消息具体是放在哪个节点,所以当有请求过来时,集群节点之间会做内部的通信,把请求转发到真正拥有相应消息数据的节点上,所以这种模式其实只是起到了一个类似负载均衡的效果,当拥有消息数据的节点宕机后,消息就丢失了,也就无法成功被消费了,不是高可用的。

  9. 镜像集群模式是什么样的?
    答:镜像集群模式,顾名思义,就是每个节点中的消息数据在其他节点也都存在,做了个镜像备份,这样哪怕一个节点宕机了,其他节点一样能提供一样的消息数据,做到了高可用。

  10. RabbitMQ的消息基于什么传输?
    答:由于TCP连接的创建和销毁开销较大,而且并发数受到系统资源的限制,会造成性能瓶颈。RabbitMQ则使用信道的方式来传输数据。信道是建立在真实的TCP连接内的虚拟连接,且每条TCP连接上的信道数量没有限制。

发布了289 篇原创文章 · 获赞 302 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/104796476
今日推荐