RabbitMQ常见面试题

1. RabbitMq的消息类型(6种)消息确认机制

2. RabbitMq中的概念及解释

  •  Server(Broker):接收客户端连接,实现AMQP协议的消息队列和路由功能的进程;
  •  Virtual Host:虚拟主机的概念,类似权限控制组,一个Virtual Host里可以有多个Exchange和Queue。   
  •  Exchange:交换机,接收生产者发送的消息,并根据Routing Key将消息路由到服务器中的队列Queue。
  •  ExchangeType:交换机类型决定了路由消息行为,RabbitMQ中有三种类型Exchange,分别是fanout、direct、topic;
  •  Message Queue:消息队列,用于存储还未被消费者消费的消息;
  •  Message:由Header和body组成,Header是由生产者添加的各种属性的集合,包括Message是否被持久化、优先级是多少、由哪个Message Queue接收等;body是真正需要发送的数据内容;
  • BindingKey:绑定关键字,将一个特定的Exchange和一个特定的Queue绑定起来。

2. 对mq有哪些理解(rabbitmq的模型,rabbitmq的特性,以及幂等问题),面试官问幂等如何解决(回答把token存在redis里头,然后检测是否存在token),面试官追问,难道不会有并发存token的情况吗(回答redis是单线程的,会有顺序,set同一个值成功会返回操作的行数)。

3.rabbitmq交换机有哪几种模式,他是如何来保证数据不丢失的,持久化机制,消息确认机制等等

4.消息队列的应用场景,rabbitmq是推模式还是拉模式

5.RabbitMQ的exchange有几种?RabbitMQ的queue有几种

6.rabbitmq队列可以连多少个消费者。

7.rabbitmq 交换机 持久化 确认机制 消息丢失处理

8.RabbitMQ如何保证可靠性:持久化+确认机制,持久化:消息、Exchange、Queue都会持久化,确认机制,比如消息投递上去后,RabbitMQ会在存到硬盘后返回ACK,根据ACK可以判断是否投递成功,以上保证了消息的可靠。

9. 如何让你设计一个消息队列,如何设计?

https://www.jianshu.com/p/67c14aebd5b2