首页/ 学科题库/ rabbitmq/ 底层原理与架构专题测试
rabbitmq 模拟试卷

底层原理与架构专题测试

20 题 60 分钟 难度:★★★
  • 底层原理与架构相关概念与原理
  • RabbitMQ 专家级实践

试卷习题(20 题)

参考答案在文末
判断题
1
判断题

Mnesia 是 RabbitMQ 用于存储集群元数据的分布式数据库,它支持 ACID 事务并在所有节点间同步数据,因此当某个节点宕机后,该节点上的数据会自动从其他节点恢复,无需人工干预。

A

对

B

错

2
判断题

BEAM 虚拟机采用抢占式调度(Preemptive Scheduling),每个 Erlang 进程的执行时间片(reduction count)耗尽时会被强制让出 CPU,因此 Erlang 进程的阻塞操作不会影响其他进程的调度。

A

对

B

错

3
判断题

RabbitMQ 中,持久化消息(Delivery Mode = 2)在 Broker 接收后会立即同步写入磁盘,只有写入成功后才会向生产者返回 Publisher Confirm,因此持久化消息的发布延迟一定高于非持久化消息。

A

对

B

错

4
判断题

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

A

对

B

错

单选题
5
单选题

在 AMQP 0-9-1 协议中,以下哪种帧类型用于在 Connection 级别传输协议协商和控制信息?

A

Header Frame

B

Body Frame

C

Method Frame

D

Heartbeat Frame

6
单选题

在 RabbitMQ 的 Mnesia 数据库中,用于存储队列和交换机定义的元数据表主要使用以下哪种存储类型?

A

ram_copies(仅内存存储)

B

disc_copies(磁盘存储,所有操作同时写入磁盘)

C

disc_only_copies(仅磁盘存储,读取时需要从磁盘加载)

D

上述三种类型的混合使用

7
单选题

RabbitMQ 配置中,erl +S 参数用于设置 BEAM 的调度器数量(Schedulers)。以下关于调度器的描述正确的是?

A

调度器数量应始终设置为 CPU 核心数的 2 倍以获得最佳性能

B

每个调度器绑定到一个操作系统线程,并独立调度 Erlang 进程

C

调度器数量越多越好,不受 CPU 核心数限制

D

调度器仅负责 I/O 密集型进程的调度,CPU 密集型进程由 OS 调度

8
单选题

当 RabbitMQ 队列中的消息量超过内存容量时,以下关于消息驱逐(Message Paging)机制的描述正确的是?

A

最新的消息被驱逐到磁盘,旧消息保留在内存

B

旧消息被驱逐到磁盘,最新消息保留在内存以支持快速投递

C

所有消息平均分布在内存和磁盘中

D

消息全部保留在内存,仅索引写入磁盘

9
单选题

RabbitMQ 内部各组件(如连接进程、队列进程、路由进程)之间进行数据传递时,使用的是以下哪种 Erlang 机制?

A

共享内存(Shared Memory)

B

进程间消息传递(Message Passing),使用 ! 操作符发送消息

C

全局变量(Global Variables)

D

文件系统临时文件中转

10
单选题

RabbitMQ 中每条持久化消息在队列中都有一个对应的索引记录,该索引主要存储以下哪些信息?

A

消息内容全文和消息大小

B

消息在日志文件中的偏移量和消息 ID

C

消费者的 ACK 状态和消息过期时间

D

交换机的名称和路由键

11
单选题

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

A

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

B

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

C

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

D

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

12
单选题

在 RabbitMQ 服务端解析 AMQP 协议时,以下关于帧解码过程的描述正确的是?

A

RabbitMQ 使用 JSON 格式反序列化 AMQP 帧内容

B

AMQP 帧使用固定的二进制格式,RabbitMQ 通过模式匹配解码

C

RabbitMQ 依赖 Erlang 的 term_to_binary 进行反序列化

D

AMQP 帧需要先转换为 XML 再解析

多选题
13
多选题

关于 Mnesia 数据库的读写操作,以下描述正确的有?

A

Mnesia 支持事务性读写,通过 mnesia:transaction 保证原子性

B

Mnesia 的 dirty_read/dirty_write 操作速度快但不保证事务隔离

C

Mnesia 的写操作在 disc_copies 表上会阻塞等待磁盘确认

D

Mnesia 使用 Erlang Term 作为数据的内部存储格式

E

Mnesia 不支持跨节点的数据复制

14
多选题

RabbitMQ 原生支持 AMQP 0-9-1,并通过插件支持 AMQP 1.0。以下关于两个版本区别的描述正确的有?

A

AMQP 1.0 引入了 Container 概念替代 0-9-1 的 Connection

B

AMQP 1.0 支持更灵活的消息路由和拓扑结构

C

AMQP 0-9-1 使用 Exchange/Queue 模型,AMQP 1.0 使用 Source/Target 模型

D

AMQP 1.0 不再支持消息确认机制

E

两个版本的帧格式和编解码方式完全不同

15
多选题

一条持久化消息从生产者发布到最终被消费者确认,在 RabbitMQ 存储系统中经历以下哪些阶段?

A

消息写入预写日志(WAL)

B

消息写入队列索引文件

C

消息投递到消费者后,从 WAL 中标记为可删除

D

消费者 ACK 后,消息立即从磁盘物理删除

E

消息在内存中保留一份副本用于快速投递

16
多选题

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

A

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

B

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

C

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

D

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

E

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

填空题
17
填空题

AMQP 0-9-1 连接建立时,客户端首先发送 帧(包含协议版本信息),随后服务端返回 方法进行能力协商。

18
填空题

在 RabbitMQ 集群中,存储元数据的 Mnesia 节点分为两种角色: 节点将数据持久化到磁盘, 节点仅在内存中存储数据,启动时从 disc 节点同步数据。

19
填空题

BEAM 虚拟机默认支持的最大 Erlang 进程数量由 参数控制,默认值为 (约 100 万)。RabbitMQ 的每个连接和队列都对应一个或多个 Erlang 进程。

20
填空题

RabbitMQ 的预写日志(WAL)文件默认存储在 目录下的 子目录中,每个队列的消息按写入顺序追加到日志文件。

参考答案
1.错误 2.正确 3.正确 4.错误 5.C 6.D 7.B 8.B 9.B 10.B 11.B 12.B 13.A;B;C;D 14.A;B;C;E 15.A;B;C;E 16.B;D;E 17.protocol-header;connection.start 18.disc;ram 19.process_limit;1048576 20.mnesia;msg_stores
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 工作队列模式专题测试 下一套 → 性能调优与优化专题测试