R

RabbitMQ 面试题

连载中

RabbitMQ 面试题:消息可靠性投递、死信队列、镜像队列、消费幂等与积压处理。

5 篇文章 开始阅读

教程目录

1

RabbitMQ 的核心概念?

一、核心组件 Producer:生产者,发送消息到 Exchange。 Exchange:交换机,接收消息并按路由规则路由到 Queue。 Queue:队列,存储消息,消费者从队列取。 Consumer:消费者。 Binding:Exchange 和 Queue 的绑定关系,带 routing ke

2

RabbitMQ 的消息确认机制?

一、生产者确认(Publisher Confirm) 消息投递到 Exchange 后返回 confirm。 消息路由到 Queue(持久化消息持久化到磁盘)后返回 ack。 可配合 mandatory 参数,消息不可路由时返回给生产者。 二、消费者确认(Consumer ACK) 自动确认(aut

3

RabbitMQ 如何保证消息可靠?

一、生产端 开启 Publisher Confirm,确保消息到达 Exchange。 开启 Return 机制,消息不可路由时通知生产者。 本地消息表 + 定时补偿。 二、Broker 端 交换机、队列、消息都持久化(durable=true, deliveryMode=2)。 镜像队列:队列复制

4

RabbitMQ 和 RocketMQ 的区别?

一、对比 维度 RabbitMQ RocketMQ 开发语言 Erlang Java 吞吐量 万级 十万级 延迟 微秒级 毫秒级 事务消息 不支持 支持 顺序消息 支持(弱) 支持 延迟消息 支持插件 原生支持 管理界面 有 有 二、选择

5

RabbitMQ 的 prefetch 机制?

一、定义 prefetch(QoS)控制 RabbitMQ 一次推送给消费者多少条未确认的消息,实现限流和负载均衡。 二、设置 channel.basicQos(10); // 每个消费者最多 10 条未确认消息 三、作用 防止消息都推给快的消费者,慢的消费者闲置,实现公平分发。 防止消费者内存被