RABBITMQ 高级技能认证测试
考察知识点
- 底层原理与架构(Erlang/OTP 架构、Erlang 进程模型、存储引擎等)
- 性能调优与优化(吞吐量优化、延迟优化、内存管理、磁盘 IO 等)
- 高可用与容灾(集群故障转移、数据同步策略、灾难恢复等)
- 安全与权限控制(认证授权、TLS/SSL、VHost 权限、审计日志等)
- 消息追踪与排查(Firehose 追踪、日志分析、性能剖析、故障排查等)
- 生产实践与最佳实践(容量规划、监控告警、降级策略、压测方案等)
- 源码分析与扩展(核心源码解读、插件开发、协议扩展等)
AMQP 0-9-1 协议中,Connection 层级之下直接是 Exchange 层级,消息通过 Exchange 路由到 Queue,因此 AMQP 协议模型是 Connection → Exchange → Queue → Consumer 四层结构。
关于 BEAM 虚拟机的垃圾回收(GC)机制,以下描述正确的有?
以下关于 Mnesia 在 RabbitMQ 中存储职责的描述,正确的是?
在 RabbitMQ 中,启用消息批处理(Batching)可以显著降低网络 RTT(Round-Trip Time)带来的开销,因此在高吞吐场景下,批量发送的消息数量越大,系统整体吞吐量一定越高。
在 RabbitMQ 的 rabbitmq.conf 配置文件中,用于限制单节点最大并发连接数的参数是 _______________,默认值为 ______。
在 RabbitMQ 吞吐量分析中,以下哪些现象可能表明磁盘 IO 成为系统瓶颈?
RabbitMQ 的镜像队列(Mirrored Queues)机制可以在主队列(Master)所在节点宕机时,自动将镜像队列(Slave)提升为新的主队列,整个过程对消费者透明,因此镜像队列可以完全避免消息丢失。
某 RabbitMQ 集群配置为每天执行一次元数据备份,如果凌晨 2 点发生故障需要恢复,最大可能丢失多少时间的元数据变更?
使用 Quorum 队列的 RabbitMQ 集群,如果要求能容忍任意 2 个节点故障而继续正常工作,集群至少需要部署多少个节点?
在 RabbitMQ 中,使用 rabbitmqctl set_permissions 命令为用户设置权限时,conf、write、read 三个正则表达式参数分别控制的是:用户对资源的创建权限、对资源的写操作权限、对资源的读操作权限。如果一个用户的 read 权限设置为 ^$(空字符串正则),则该用户可以读取该 VHost 下所有队列和交换机的内容。
某公司有 dev、staging、production 三个环境的微服务需要共享 RabbitMQ 基础设施。团队提出了两种方案:
- 方案 A:在同一个 RabbitMQ 集群中创建三个 VHost(
/dev、/staging、/production)进行隔离 - 方案 B:为每个环境部署独立的 RabbitMQ 实例
请从以下维度对比两种方案:(1) 资源隔离强度 (2) 运维复杂度 (3) 故障影响范围 (4) 成本。并说明在什么场景下应该选择方案 B。
请为一个新的生产级 RabbitMQ 部署制定完整的安全加固方案。方案应覆盖以下四个维度,并给出具体的配置或操作步骤:
- 认证安全:用户凭据管理
- 网络安全:访问控制和端口保护
- 数据安全:传输加密
- 审计管控:操作日志和监控
以下关于 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 会停止所有队列的消费者
关于 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)
某电商系统的订单服务报告"部分订单消息丢失"。请给出一个系统化的排查方案,按照消息从生产者到消费者的完整链路,列出每个排查步骤、使用的工具和命令、以及判断标准。
在对 RabbitMQ 集群进行滚动升级(Rolling Upgrade)时,以下哪种操作顺序是正确的?
以下哪些是 RabbitMQ 生产环境中常见的故障类型?
以下哪种方式是 RabbitMQ 推荐的集群部署和配置的自动化运维方案?
RabbitMQ Server 的核心进程模型中,每个虚拟主机(vhost)都运行在独立的 BEAM 虚拟机实例中,彼此之间完全隔离。
关于 RabbitMQ 消息进入 Queue 后的存储与分发源码逻辑,以下哪些描述是正确的?
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验