消息队列面试题, 说说 RabbitMQ 的工作模式?
消息队列面试题, 说说 RabbitMQ 的工作模式?
QA
Step 1
Q:: 说说 RabbitMQ 的工作模式?
A:: RabbitMQ 有六种主要的工作模式:1. 简单模式(Simple):生产者发送消息到队列,消费者从队列中获取消息并处理。2. 工作队列模式(Work Queues):多个消费者竞争处理队列中的消息,以分散工作负载。3. 发布/订阅模式(Publish/Subscribe):消息被发送到交换器(Exchange),然后分发到绑定的队列,多个消费者可以订阅同一消息。4. 路由模式(Routing):消息通过路由键发送到特定的队列。5. 主题模式(Topics):消息根据主题路由键发送到符合条件的队列。6.
RPC 模式(Remote Procedure Call):实现远程过程调用,客户端发送请求消息并等待应答消息。
Step 2
Q:: RabbitMQ 是如何保证消息的可靠性传输的?
A:: RabbitMQ 提供多种机制来保证消息的可靠性传输,包括:1. 消息持久化:将消息存储在磁盘上,防止消息丢失。2. 确认机制(Acknowledgments):消费者在处理完消息后发送确认,RabbitMQ 收到确认后删除消息。3. 发布确认(Publisher Confirms):生产者在发布消息后等待 RabbitMQ 的确认,确保消息成功到达队列。4.
镜像队列(Mirrored Queues):在集群中复制队列,确保即使某个节点宕机,消息仍然可用。
Step 3
Q:: RabbitMQ 中的交换器(Exchange)有什么作用?
A:: 交换器(Exchange)在 RabbitMQ 中用于接收生产者发送的消息,并根据路由规则将消息分发到绑定的队列。RabbitMQ 有四种类型的交换器:1. 直连交换器(Direct):根据路由键完全匹配将消息分发到队列。2. 扇出交换器(Fanout):将消息广播到所有绑定的队列。3. 主题交换器(Topic):根据路由键模式匹配将消息分发到队列。4.
首部交换器(Headers):根据消息头属性进行路由。
Step 4
Q:: 如何在 RabbitMQ 中实现消息优先级?
A:: RabbitMQ 支持消息优先级,通过在声明队列时设置 x-max-
priority 参数来启用优先级队列。生产者在发送消息时,可以为每条消息指定一个优先级(priority)属性。RabbitMQ 会优先处理优先级高的消息。