全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📝 1 篇文章 20 道配套习题

消息路由与绑定专题

专题说明

本专题深入讲解 RabbitMQ 消息路由机制、绑定键配置、路由键匹配规则以及高级路由策略。

学习目标

  1. 理解消息从生产者到队列的完整路由流程
  2. 掌握绑定键与路由键的匹配规则
  3. 能够设计复杂的路由策略和故障转移机制

学习建议

建议通过实际代码练习理解路由键与绑定键的匹配逻辑。

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

📝 配套习题(20 题)

1
判断题

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

A

B

2
单选题

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

A

arguments(额外参数)

B

routingKey(路由键)

C

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

D

noWait(是否异步)

3
多选题

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

A

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

B

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

C

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

D

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

4
填空题

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

5
判断题

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

A

B

6
单选题

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

A

system.log

B

app.log.error

C

log.error

D

system.error.log.warn

7
多选题

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

A

com.#

B

com..

C

#.client

D

com.rabbit.#

8
填空题

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

9
判断题

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

A

B

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
填空题

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

13
判断题

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

A

B

14
单选题

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

A

0 次

B

1 次

C

2 次

D

3 次

15
多选题

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

A

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

B

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

C

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

D

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

16
填空题

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

17
判断题

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

A

B

18
单选题

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

A

消息被放入默认死信队列

B

消息被返回给生产者

C

消息被丢弃

D

消息被持久化到磁盘

19
多选题

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

A

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

B

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

C

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

D

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

20
填空题

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

← 上一个专题 消息确认机制基础专题
下一个专题 → 消息追踪与排查专题

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

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

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

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