消息队列面试题, RabbitMQ 中主要有哪几个角色或者说概念?
消息队列面试题, RabbitMQ 中主要有哪几个角色或者说概念?
QA
Step 1
Q:: RabbitMQ中主要有哪几个角色或者说概念?
A:: RabbitMQ中主要有以下几个重要的角色或概念:
1.
Producer(生产者):负责发送消息到交换机。
2.
Consumer(消费者):从队列中接收和处理消息。
3.
Exchange(交换机):接收来自生产者的消息并将其路由到绑定的队列。
4.
Queue(队列):用于存储消息,直到消费者处理它们。
5.
Binding(绑定):定义交换机和队列之间的关系。
6.
Routing Key(路由键):生产者发送消息时指定的标签,用于将消息路由到相应的队列。
7.
Connection(连接):生产者和消费者通过TCP连接与RabbitMQ服务器通信。
8.
Channel(通道):一个TCP连接中的虚拟连接,用于多路复用,减少资源消耗。
9.
Message(消息):生产者发送的数据包,由交换机路由到队列。
Step 2
Q:: RabbitMQ中的交换机有哪几种类型?
A:: RabbitMQ中的交换机有以下几种类型:
1.
Direct Exchange:通过完全匹配路由键将消息发送到队列。
2.
Fanout Exchange:将消息广播到所有绑定的队列,不考虑路由键。
3.
Topic Exchange:通过模式匹配路由键(使用通配符)将消息发送到队列。
4.
Headers Exchange:通过消息头属性进行匹配,将消息发送到队列。
Step 3
Q:: RabbitMQ如何保证消息的可靠性传输?
A:: RabbitMQ通过以下几种机制保证消息的可靠性传输:
1.
持久化(Persistence):将消息持久化到磁盘,防止服务器重启时消息丢失。
2.
确认机制(Acknowledgements):消费者处理完消息后发送确认,未确认的消息会重新入队。
3.
镜像队列(Mirrored Queues):在多个节点上复制队列数据,提高容错能力。
4. **死信队列(Dead Letter Exchange,
DLX)**:处理无法投递或被拒绝的消息。