全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页

RABBITMQ 高级技能认证测试

20 题 90 分钟 难度:

考察知识点

  • 底层原理与架构(Erlang/OTP 架构、Erlang 进程模型、存储引擎等)
  • 性能调优与优化(吞吐量优化、延迟优化、内存管理、磁盘 IO 等)
  • 高可用与容灾(集群故障转移、数据同步策略、灾难恢复等)
  • 安全与权限控制(认证授权、TLS/SSL、VHost 权限、审计日志等)
  • 消息追踪与排查(Firehose 追踪、日志分析、性能剖析、故障排查等)
  • 生产实践与最佳实践(容量规划、监控告警、降级策略、压测方案等)
  • 源码分析与扩展(核心源码解读、插件开发、协议扩展等)
1
判断题

AMQP 0-9-1 协议中,Connection 层级之下直接是 Exchange 层级,消息通过 Exchange 路由到 Queue,因此 AMQP 协议模型是 Connection → Exchange → Queue → Consumer 四层结构。

A

B

2
多选题

关于 BEAM 虚拟机的垃圾回收(GC)机制,以下描述正确的有?

A

BEAM 采用分代垃圾回收(Generational GC)策略

B

每个 Erlang 进程拥有独立的堆空间,GC 以进程为单位执行

C

BEAM 的 GC 是全局暂停的(Stop-the-World),会影响所有进程

D

进程堆空间满时触发该进程的独立 GC

E

老对象(存活时间长的数据)会被提升到老年代减少扫描频率

3
单选题

以下关于 Mnesia 在 RabbitMQ 中存储职责的描述,正确的是?

A

Mnesia 存储所有消息内容,包括消息体和消息头

B

Mnesia 仅存储元数据(队列、交换机、绑定、用户权限等),消息内容由独立的持久化模块存储

C

Mnesia 存储消费者确认状态,消息内容存储在其他数据库

D

Mnesia 存储消息路由键,消息体存储在文件系统中

4
判断题

在 RabbitMQ 中,启用消息批处理(Batching)可以显著降低网络 RTT(Round-Trip Time)带来的开销,因此在高吞吐场景下,批量发送的消息数量越大,系统整体吞吐量一定越高。

A

B

5
填空题

在 RabbitMQ 的 rabbitmq.conf 配置文件中,用于限制单节点最大并发连接数的参数是 _______________,默认值为 ______

6
多选题

在 RabbitMQ 吞吐量分析中,以下哪些现象可能表明磁盘 IO 成为系统瓶颈?

A

队列积压持续增长,但 CPU 使用率较低

B

Publisher Confirm 延迟显著增加

C

rabbitmq_disk_free 指标持续下降

D

消费者端 ack 速率远低于生产者 publish 速率

E

网络连接数达到上限但消息速率上不去

7
判断题

RabbitMQ 的镜像队列(Mirrored Queues)机制可以在主队列(Master)所在节点宕机时,自动将镜像队列(Slave)提升为新的主队列,整个过程对消费者透明,因此镜像队列可以完全避免消息丢失。

A

B

8
单选题

某 RabbitMQ 集群配置为每天执行一次元数据备份,如果凌晨 2 点发生故障需要恢复,最大可能丢失多少时间的元数据变更?

A

不会丢失,因为元数据实时同步到所有节点

B

最多丢失 24 小时的元数据变更(上次备份到故障期间的所有变更)

C

仅丢失 2 点前后的数据

D

不会丢失,因为 WAL 日志会记录所有元数据变更

9
单选题

使用 Quorum 队列的 RabbitMQ 集群,如果要求能容忍任意 2 个节点故障而继续正常工作,集群至少需要部署多少个节点?

A

3 个节点

B

4 个节点

C

5 个节点

D

7 个节点

10
判断题

在 RabbitMQ 中,使用 rabbitmqctl set_permissions 命令为用户设置权限时,conf、write、read 三个正则表达式参数分别控制的是:用户对资源的创建权限、对资源的写操作权限、对资源的读操作权限。如果一个用户的 read 权限设置为 ^$(空字符串正则),则该用户可以读取该 VHost 下所有队列和交换机的内容。

A

B

11
简答题

某公司有 dev、staging、production 三个环境的微服务需要共享 RabbitMQ 基础设施。团队提出了两种方案:

  • 方案 A:在同一个 RabbitMQ 集群中创建三个 VHost(/dev/staging/production)进行隔离
  • 方案 B:为每个环境部署独立的 RabbitMQ 实例

请从以下维度对比两种方案:(1) 资源隔离强度 (2) 运维复杂度 (3) 故障影响范围 (4) 成本。并说明在什么场景下应该选择方案 B。

12
简答题

请为一个新的生产级 RabbitMQ 部署制定完整的安全加固方案。方案应覆盖以下四个维度,并给出具体的配置或操作步骤:

  1. 认证安全:用户凭据管理
  2. 网络安全:访问控制和端口保护
  3. 数据安全:传输加密
  4. 审计管控:操作日志和监控
13
单选题

以下关于 RabbitMQ 核心监控指标的描述,说法正确的是:

A. queue_messages_ready 表示队列中等待被消费的消息数,该值持续升高说明消费者处理能力不足 B. fd_used 表示已使用的文件描述符数量,当该值接近 fd_total 时说明连接数过多,应增加最大连接数限制 C. mem_used 表示 RabbitMQ 进程使用的内存总量,该值达到 mem_limit 时会触发 Flow Control 并拒绝新连接 D. disk_free 表示磁盘剩余空间,当该值低于 disk_free_limit 时 RabbitMQ 会停止所有队列的消费者

14
多选题

关于 RabbitMQ rabbitmq_prometheus 插件的配置和指标特性,以下说法哪些是正确的?

A. 该插件可以通过 rabbitmq-plugins enable rabbitmq_prometheus 命令启用 B. 插件暴露的指标包括 Counter、Gauge、Histogram 三种 Prometheus 指标类型 C. 启用该插件后,需要在 Prometheus 的配置文件中手动添加每个节点的 scrape target D. 指标中包含 node 标签,可以区分集群中不同节点的指标数据 E. 该插件同时支持经典格式的指标(/metrics)和 per-object 格式(/metrics/per-object

15
简答题

某电商系统的订单服务报告"部分订单消息丢失"。请给出一个系统化的排查方案,按照消息从生产者到消费者的完整链路,列出每个排查步骤、使用的工具和命令、以及判断标准。

16
单选题

在对 RabbitMQ 集群进行滚动升级(Rolling Upgrade)时,以下哪种操作顺序是正确的?

A

同时停止所有节点,升级后同时启动

B

逐个停止节点,升级该节点后启动并等待同步完成,再处理下一个节点

C

先升级所有 follower 节点,最后升级 leader 节点

D

先升级 leader 节点,再升级 follower 节点

17
多选题

以下哪些是 RabbitMQ 生产环境中常见的故障类型?

A

网络分区(Network Partition)导致集群分裂,部分节点之间无法通信

B

磁盘空间不足触发磁盘告警,导致消息无法写入

C

Erlang 进程数超限(process_limit)导致无法创建新的连接或队列

D

mnesia 数据库表损坏导致元数据丢失

18
单选题

以下哪种方式是 RabbitMQ 推荐的集群部署和配置的自动化运维方案?

A

手动编写 Shell 脚本逐台执行 rabbitmq-server 启动命令

B

使用 Infrastructure as Code(IaC)工具(如 Ansible、Terraform)结合 rabbitmq.conf 和 definitions.json 实现代码化配置

C

通过 Web 管理界面逐个节点进行配置

D

使用 cron 定时任务每天重启集群以刷新状态

19
判断题

RabbitMQ Server 的核心进程模型中,每个虚拟主机(vhost)都运行在独立的 BEAM 虚拟机实例中,彼此之间完全隔离。

A

B

20
多选题

关于 RabbitMQ 消息进入 Queue 后的存储与分发源码逻辑,以下哪些描述是正确的?

A

消息进入队列后,如果是持久化消息,会先写入 rabbit_msg_store 再进入内存队列

B

队列进程会根据消费者的 prefetch_count 来决定是否推送消息

C

消息在队列中的排序遵循 FIFO 原则,但优先级队列会通过红黑树重新排序

D

消费者 ack 消息后,队列进程会立即从内存中删除消息,无论是否持久化

← 上一个试卷 RABBITMQ 初级技能认证测试
下一个试卷 → RabbitMQ 简介与安装专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库