全部学科
Python全栈
python
NodeJS全栈
nodejs
📝 1 篇文章 4 道配套习题

消息确认机制基础专题

专题说明

本专题围绕 RabbitMQ 消息确认机制展开,通过 4 道精选题目帮助学习者理解消息确认的工作原理,掌握自动确认与手动确认的区别,以及如何处理消息拒绝和死信队列等场景。

学习目标

  1. 理解消息确认机制的设计目的与工作原理
  2. 掌握自动确认与手动确认的使用场景和配置方法
  3. 能够正确处理消息拒绝和配置死信队列

学习建议

入门阶段建议先理解核心概念,再动手实践。

📝 配套习题(4 题)

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

在手动确认模式下,消费者必须在处理完消息后显式调用 basicAck 方法向 Broker 发送确认,否则消息会一直保留在队列中等待重新投递。

A

B

单选题
2

在 RabbitMQ 中,关于自动确认模式(Auto Acknowledge),下列说法错误的是:

A

消费者在订阅队列时设置 autoAck=true 即可启用自动确认模式

B

消息一旦被投递给消费者,Broker 会立即将该消息从队列中删除

C

自动确认模式下,如果消费者在处理消息过程中崩溃,消息不会丢失

D

自动确认模式适用于消息处理速度快且对消息丢失不敏感的场景

3

当消费者无法处理某条消息时(如消息格式错误、业务逻辑校验失败),可以使用 basicNackbasicReject 拒绝消息。关于这两个方法,下列说法正确的是:

A

basicReject 可以批量拒绝多条消息,而 basicNack 只能拒绝单条消息

B

调用 basicNack(deliveryTag, false, true) 时,被拒绝的消息会重新入队

C

调用 basicReject(deliveryTag, false) 时,被拒绝的消息会重新入队

D

消息重新入队后,会优先投递给最初拒绝它的那个消费者

多选题
4

为了防止 RabbitMQ 服务重启后消息丢失,需要进行持久化配置。以下关于消息持久化的说法正确的有:

A

只需将队列声明为持久化(durable=true),消息就会自动持久化

B

消息持久化需要在发布消息时设置 deliveryMode=2(持久化模式)

C

队列持久化(durable=true)确保 RabbitMQ 重启后队列结构仍然存在

D

即使队列和消息都设置了持久化,消息仍可能在写入磁盘前因服务器宕机而丢失

参考答案
1.正确 2.C 3.B 4.B;C;D
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 消息序列化与格式专题
下一个专题 → 消息路由与绑定专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码