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

消息路由与绑定专题测试

20 题 45 分钟 难度:★★

考察知识点

  • 消息路由与绑定相关概念
  • RabbitMQ 进阶实践
💡 参考答案在文末
判断题
1

在 RabbitMQ 中,queueBind 方法用于建立队列与交换机之间的绑定关系,绑定关系中可以指定 routing_key 和可选的 arguments 参数。

A

B

2

当消息发布到交换机但无法匹配任何队列时,如果设置了 mandatory 参数为 true,RabbitMQ 会将消息通过 Return 回调返回给生产者。

A

B

3

在 Topic 交换机中,绑定键 "#.error" 可以匹配路由键为 "error" 的消息。

A

B

4

RabbitMQ 允许将一个队列绑定到多个交换机,也可以将一个队列绑定到同一交换机的多个路由键。

A

B

5

在一个 RabbitMQ 系统中,可以根据不同业务场景混合使用 Direct、Fanout 和 Topic 交换机,以实现灵活的消息路由策略组合。

A

B

单选题
6

调用 queueBind 方法时,以下哪个参数是必需的?

A

arguments(额外参数)

B

routingKey(路由键)

C

queue(队列名)和 exchange(交换机名)

D

noWait(是否异步)

7

当 mandatory 参数设置为 false 时,消息无法匹配到任何队列会发生什么?

A

消息被放入默认死信队列

B

消息被返回给生产者

C

消息被丢弃

D

消息被持久化到磁盘

8

绑定键为 ".log." 的 Topic 交换机,以下哪个路由键可以匹配成功?

A

system.log

B

app.log.error

C

log.error

D

system.error.log.warn

9

某队列绑定了 Direct 交换机的 "error" 和 "warning" 两个路由键,同时也绑定了 Fanout 交换机。当生产者向 Direct 交换机发送 routing_key 为 "error" 的消息时,该队列会接收几次?

A

0 次

B

1 次

C

2 次

D

3 次

10

某电商平台需要将订单消息路由到不同的处理系统:库存系统需要所有订单消息,财务系统只需要支付成功的订单,物流系统需要按地区(如 "shipping.cn"、"shipping.us")分类接收。最适合的交换机组合是?

A

全部使用 Direct 交换机

B

全部使用 Fanout 交换机

C

全部使用 Topic 交换机

D

库存系统用 Fanout 绑定,财务系统用 Direct 绑定,物流系统用 Topic 绑定

多选题
11

在设计 RabbitMQ 路由策略时,以下哪些做法是正确的?

A

根据消息分发模式选择交换机类型

B

避免在同一个业务流中混用多种交换机

C

为不同类型的消息定义清晰的路由键命名规范

D

在 Fanout 交换机中设置有效的 routing_key 以实现消息过滤

12

以下哪些绑定键可以匹配路由键 "com.rabbitmq.client"?

A

com.#

B

com..

C

#.client

D

com.rabbit.#

13

关于队列的多重绑定,以下哪些说法是正确的?

A

一个队列可以绑定到多个不同类型的交换机

B

队列绑定到同一交换机的多个路由键时,每条消息都会被多次投递到该队列

C

多重绑定可以用于实现消息的多来源聚合

D

队列绑定到多个交换机时,消费者需要分别处理来自不同路由键的消息

14

关于 queueBind 方法的 arguments 参数,以下哪些说法是正确的?

A

arguments 可以用于配置消息头匹配规则(x-match)

B

arguments 参数在 Fanout 交换机绑定中通常为空

C

arguments 可以设置绑定的过期时间

D

arguments 参数在所有类型的交换机中都是必需的

15

关于 mandatory 参数和 Return 机制,以下哪些说法是正确的?

A

mandatory=true 时,消息无匹配队列会通过 ReturnCallback 返回

B

ReturnCallback 中可以获取消息的 routing_key 和 replyCode

C

mandatory 参数对 Direct 交换机和 Fanout 交换机的作用相同

D

设置了 mandatory=true 就一定能保证消息不丢失

填空题
16

设计路由策略时,如果需要将消息按层级结构(如 "系统.模块.级别" )进行分类路由,应选择 ____________ 交换机;如果只需要将消息广播到所有消费者,应选择 ____________ 交换机。

17

Topic 交换机绑定键 "order.#" 可以匹配路由键 "order" ( "#" 匹配 ____________ ),也可以匹配 "order.create.success" ( "#" 匹配 ____________ )。

18

一个队列绑定到 Direct 交换机的路由键 "error" 和 "warning" ,当 routing_key 为 "error" 的消息发送时,该队列接收 ____________ 次;若同一个队列绑定到 Fanout 交换机和 Direct 交换机,当消息发送到 Fanout 交换机时,该队列会接收到消息的 ____________

19

使用 queueBind 方法绑定队列和交换机时,必需提供的参数是 ________________________ ,routing_key 参数在 Fanout 交换机场景中可以设置为空字符串。

20

当消息无匹配路由时,设置 mandatory=____________ 可以触发 ReturnCallback 将消息返回给生产者,默认情况下 mandatory=____________ ,无匹配路由的消息会被直接丢弃。

参考答案
1.正确 2.正确 3.正确 4.正确 5.正确 6.C 7.C 8.B 9.B 10.D 11.A;C 12.A;B;C;D 13.A;C;D 14.A;B;C 15.A;B;C 16.Topic;Fanout 17.零个单词;多个单词 18.1;完整副本 19.队列名;交换机名 20.true;false
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 消息确认机制基础专题测试
下一套试卷 → 消息追踪与排查专题测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码