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

生产实践与最佳实践专题测试

20 题 60 分钟 难度:

考察知识点

  • 生产实践与最佳实践相关概念与原理
  • RabbitMQ 专家级实践
1
单选题

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

A

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

B

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

C

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

D

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

2
多选题

关于 RabbitMQ 版本升级的策略,以下哪些描述是正确的?

A

RabbitMQ 支持跨多个大版本直接升级(如从 3.8.x 直接升级到 4.x),无需中间过渡版本

B

升级前应备份 mnesia 数据库目录和配置文件

C

升级过程中如果发现问题,可以降级回滚到旧版本,但需要确保数据目录格式兼容

D

对于仲裁队列(Quorum Queues),升级期间可以保持集群的部分节点运行,不影响可用性

3
填空题

RabbitMQ 集群滚动升级过程中,每升级一个节点后,应通过 ________________________ 命令确认节点已正确加入集群,并通过 ________________________ 命令验证整个集群的拓扑结构,最后通过 _______________________ 确认队列恢复状态。

4
判断题

RabbitMQ 升级时,只需要关注 RabbitMQ 本身的版本兼容性,Erlang/OTP 的版本可以保持不变,因为 RabbitMQ 向后兼容所有 Erlang 版本。

A

B

5
简答题

请描述 RabbitMQ 集群滚动升级的完整操作流程,包括升级前的准备工作、升级过程中的验证步骤,以及升级失败时的应急回滚方案。

6
单选题

在 RabbitMQ 生产环境中,发现某个队列的消息积压严重(消息数量持续增长),以下哪种排查思路是正确的?

A

消息积压一定是消费者处理速度过慢导致,直接增加消费者数量即可

B

应先检查消费者的 ack 状态、prefetch_count 设置以及是否有消费者断开(unacked 消息堆积)

C

消息积压说明队列配置错误,需要重新创建队列

D

消息积压只能通过增加节点来解决

7
多选题

以下哪些情况可能导致 RabbitMQ 生产环境出现连接泄漏问题?

A

客户端在异常断开时没有正确关闭连接,导致服务端残留僵尸连接

B

负载均衡器(如 HAProxy)的健康检查连接未正确复用

C

客户端使用了过长的 heartbeat 超时时间,导致服务端无法及时发现死连接

D

队列中积累了大量未消费的消息

8
判断题

当 RabbitMQ 触发内存告警(memory alarm)时,会自动阻塞所有发布者的连接,直到内存使用降低到 watermark 以下。

A

B

9
填空题

排查 RabbitMQ 连接异常断开问题时,首先应检查 _________ 配置是否合理;如果连接频繁断开且没有明确的错误日志,可能是网络中存在 ________________ 清理了空闲连接。

10
多选题

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

A

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

B

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

C

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

D

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

11
判断题

当 RabbitMQ 集群发生网络分区时,如果配置了 cluster_partition_handling = autoheal,集群会在网络恢复后自动选择一个分区作为权威分区,并将其他分区的数据同步过来。

A

B

12
简答题

生产环境中某个队列突然出现大量消息积压,消费者处理速度远跟不上消息发布速度。请描述你的排查和处置流程。

13
单选题

在 RabbitMQ 消费者服务灰度发布过程中,以下哪种流量切换策略最为安全和可控?

A

直接停止旧版本消费者,启动新版本消费者,一次性全量切换

B

通过 Policy 调整队列优先级,让新版本消费者优先消费,旧版本逐步退出

C

使用独立的灰度队列,通过 Federated Exchange 将部分流量路由到灰度队列,验证后再逐步切换

D

通过修改客户端的 routing_key 来区分新旧消费者

14
多选题

关于 RabbitMQ 消费者灰度发布中的风险回滚机制,以下哪些做法是正确的?

A

灰度发布前应先保留旧版本消费者的完整部署配置,以便快速回滚

B

回滚时应优先停止新版本消费者,恢复旧版本的消费能力

C

灰度期间如果发现问题,应清空灰度队列中的消息以避免重复消费

D

回滚过程中应确保消息不丢失,必要时通过死信队列或备份队列暂存消息

15
填空题

在 RabbitMQ 灰度发布方案中,可以通过配置 __________________ 将无法路由的消息转发到备用交换机实现流量隔离;通过 ________ 队列属性可以控制消息的消费优先级;通过 ______ 插件可以实现跨集群的消息同步,用于灰度环境的消息迁移。

16
判断题

在 RabbitMQ 消费者灰度发布过程中,只要保证了新旧消费者的消费逻辑一致,就无需考虑消息的幂等性处理。

A

B

17
单选题

在 RabbitMQ 中实现多业务共享集群的管控和隔离,以下哪种方式是最核心和标准的做法?

A

为每个业务创建独立的 RabbitMQ 集群

B

使用虚拟主机(vhost)和权限系统,为每个业务分配独立的 vhost 并配置资源配额

C

通过不同的交换机名称来区分不同业务的消息

D

依赖操作系统级别的容器隔离

18
多选题

RabbitMQ 中通过 Policy 可以实现多租户治理中的资源管控,以下哪些 Policy 参数用于限制资源使用?

A

max-length — 限制队列中消息的最大数量

B

max-length-bytes — 限制队列中消息占用的最大字节数

C

message-ttl — 设置消息的生存时间,防止消息无限堆积

D

ha-mode — 设置队列的镜像模式,与资源配额无关

19
填空题

在多租户 RabbitMQ 集群中,可以通过 __________ 限流(在用户维度设置 max-connections)控制每个租户的最大连接数;通过 ______ 实现逻辑隔离,确保租户间的队列和交换机互不可见;通过 ______ 设置全局资源配额,限制每个租户的队列数量和消息堆积上限。

20
判断题

在 RabbitMQ 共享集群中,使用不同的 vhost 实现了多租户的逻辑隔离,因此不同 vhost 的租户之间不会相互影响,不存在性能干扰的问题。

A

B

← 上一个试卷 源码分析与扩展专题测试
下一个试卷 → 管理控制台与监控专题测试

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

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

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

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