全部学科
Python全栈
python
NodeJS全栈
nodejs

核心概念入门专题测试

17 题 30 分钟 难度:★

考察知识点

  • RabbitMQ 核心概念与基础理论
  • RabbitMQ 入门实践
💡 参考答案在文末
判断题
1

RabbitMQ 中,一个 TCP 连接(Connection)上可以复用多个轻量级通道(Channel),多个通道之间互不干扰,因此多线程应用可以共享同一个 TCP 连接。

A

B

2

RabbitMQ 中,交换机与队列之间的绑定关系可以在代码中通过编程方式动态创建,也可以在管理界面中手动配置。

A

B

3

RabbitMQ 中,交换机接收生产者发送的消息后,会根据路由规则和绑定关系将消息转发到对应的队列;如果消息无法路由到任何队列,默认情况下该消息会被丢弃。

A

B

4

在 RabbitMQ 的 Topic 交换机中,路由键中的 * 符号可以匹配多个单词(例如 order.*.created 可以匹配 order.usa.createdorder.china.created),但不能匹配 order.usa.europe.created

A

B

5

RabbitMQ 中的队列(Queue)遵循 FIFO(先进先出)原则,即先发送到队列的消息会先被消费者接收。

A

B

6

RabbitMQ 的虚拟主机(VHost)可以为不同的应用提供完全隔离的运行环境,包括独立的队列、交换机、绑定和权限配置,但不同 VHost 中的用户可以访问同一个队列。

A

B

单选题
7

在 RabbitMQ 中,关于队列(Queue)的声明,以下说法正确的是:

A

队列只能由生产者声明,消费者无法声明

B

队列只能由消费者声明,生产者无法声明

C

生产者和消费者都可以声明队列,但如果双方声明时的参数不一致,会导致通道关闭

D

队列只能由管理员通过管理界面手动创建,不能在代码中声明

8

在 RabbitMQ 中,一个队列可以同时绑定到多个交换机,关于这种设计的作用,以下说法正确的是:

A

一个队列只能绑定一个交换机,绑定第二个时会覆盖第一个

B

一个队列可以绑定多个交换机,这样可以接收来自不同交换机的消息

C

一个队列绑定多个交换机会导致消息重复投递

D

绑定多个交换机会显著降低消息投递性能,因此官方不推荐

9

RabbitMQ 内置了多种交换机类型,其中使用最广的默认交换机(Default Exchange)属于以下哪种类型?

A

fanout

B

direct

C

topic

D

headers

10

在 RabbitMQ 中,生产者发送消息时指定的路由键(Routing Key)最大长度限制是多少?如果路由键超过该限制会发生什么?

A

128 字节,超过限制的消息被丢弃

B

255 字节,超过限制的发送操作会抛出异常

C

512 字节,超过限制的路由键会被自动截断

D

没有长度限制,可以任意指定

11

在 RabbitMQ 中,以下关于 Channel(通道)的生命周期和使用方式,说法正确的是:

A

Channel 是线程安全的,可以在多个线程之间共享同一个 Channel 实例

B

Channel 是非线程安全的,每个线程应该使用自己独立的 Channel

C

Channel 在 Connection 关闭后仍然可以继续使用

D

Channel 的最大数量由客户端决定,RabbitMQ 服务器不做限制

12

在 RabbitMQ 中,以下关于默认虚拟主机(/)的说法,正确的是:

A

/ 是系统自动创建的唯一 VHost,所有未指定 VHost 的连接都会路由到它

B

/ 只是一个普通 VHost,可以像其他 VHost 一样被删除或重命名

C

RabbitMQ 启动时会自动创建 / VHost,但如果用户创建了其他 VHost 并配置了默认连接,可以不再使用 /

D

/ VHost 拥有特殊的权限,所有其他 VHost 的用户都必须通过它进行认证

多选题
13

在 RabbitMQ 的 Direct 交换机中,关于路由键的匹配行为,以下说法正确的有:

A

Direct 交换机会精确匹配路由键与绑定键,只有完全相等时消息才会被路由

B

一个 Direct 交换机可以有多个队列绑定,只要这些队列的绑定键不同

C

Direct 交换机支持通配符匹配,可以使用 *# 进行模糊路由

D

多条绑定可以拥有相同的路由键,此时消息会被投递到所有匹配的队列

14

在 RabbitMQ 中,关于 VHost 的使用场景和配置,以下说法正确的有:

A

在同一个 RabbitMQ 集群中创建多个 VHost,可以实现不同业务线之间的资源隔离

B

用户必须至少被赋予一个 VHost 的访问权限才能成功建立连接

C

VHost 之间的消息可以通过配置跨 VHost 路由实现互通

D

使用 rabbitmqctl add_vhost /myapp 命令可以创建一个名为 /myapp 的 VHost

15

在 RabbitMQ 中,关于 Connection 与 Channel 的关系和设计优势,以下说法正确的有:

A

使用 Channel 而非独立 TCP 连接的主要目的是减少操作系统的文件描述符消耗

B

每个 Channel 有独立的确认状态,因此一个 Channel 的消息确认不会影响其他 Channel

C

当 RabbitMQ 服务器重启后,已创建的 Channel 会自动恢复到之前的状态

D

客户端可以在同一个 Connection 上创建任意数量的 Channel,只要不超过服务器配置的上限

填空题
16

在 RabbitMQ 中,使用 rabbitmqctl set_permissions 命令为用户配置 VHost 访问权限时,需要指定三个权限参数,分别对应配置权限、写权限和读权限。这三个权限参数在命令中的排列顺序是:____________________________________(用英文单词表示,如 configure)。

17

在 RabbitMQ 的 Topic 交换机中,路由键使用 . 作为单词分隔符。假设某队列绑定了路由键模式 logs.#,则以下路由键中能被匹配到的有:logs.infologs.error.databaselogging.infoapp.logs。请写出所有能匹配的路由键,用分号分隔。答案:____________2_!!

参考答案
1.正确 2.正确 3.正确 4.正确 5.正确 6.错误 7.C 8.B 9.B 10.B 11.B 12.C 13.A;B;D 14.A;B;D 15.A;B;D 16.configure;write;read 17.logs.info;logs.error.database
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 插件机制专题测试
下一套试卷 → 死信队列与延迟队列专题测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码