全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页

消息发送与接收专题测试

18 题 30 分钟 难度:

考察知识点

  • 消息发送与接收基本概念
  • RabbitMQ 消息收发实践
1
单选题

在RabbitMQ中,生产者发送消息到指定交换机时,首先需要建立的底层连接对象是什么?

A

Channel

B

Connection

C

Queue

D

Exchange

2
单选题

消费者订阅队列并监听消息时,需要提供一个回调来处理接收到的消息,这个回调在RabbitMQ Java客户端中通常实现哪个接口?

A

MessageListener

B

DeliverCallback

C

ConsumerCallback

D

ReceiveHandler

3
单选题

生产者使用channel.basicPublish()方法发送消息时,如果要将消息发送到名为"order_exchange"的交换机,并指定路由键为"order.create",以下哪个参数顺序是正确的?

A

basicPublish(exchange, routingKey, props, body)

B

basicPublish(routingKey, exchange, props, body)

C

basicPublish(exchange, body, routingKey, props)

D

basicPublish(props, exchange, routingKey, body)

4
单选题

消费者订阅队列时,如果将autoAck参数设置为true,意味着什么?

A

消息需要消费者手动确认后才能被删除

B

消息一旦被消费者接收就会自动从队列中删除

C

消息会被持久化保存,不会自动删除

D

消息只有在消费者断开连接后才会被删除

5
单选题

使用RabbitMQ Java客户端创建连接时,以下关于虚拟主机(Virtual Host)的描述错误的是?

A

虚拟主机用于实现多租户隔离

B

不同虚拟主机中可以存在同名的交换机和队列

C

创建ConnectionFactory时默认使用的虚拟主机是"/admin"

D

通过connectionFactory.setVirtualHost()方法可以设置虚拟主机

6
判断题

在使用RabbitMQ Java客户端时,ConnectionFactory的setPort()方法默认设置的端口号是5672。使用完Connection和Channel后,应该先关闭Channel再关闭Connection。

A

B

7
单选题

在创建RabbitMQ连接时,如果RabbitMQ服务器未启动或网络不可达,代码会抛出哪种异常?在实际开发中,应该使用什么结构来确保即使发生异常,已打开的资源也能被正确关闭?

A

IOException,使用try-with-resources结构

B

TimeoutException,使用try-finally结构

C

ConnectionException,使用try-catch结构

D

IOException或TimeoutException,使用try-with-resources或try-finally结构

8
判断题

当RabbitMQ连接因认证失败(用户名或密码错误)而中断时,会抛出AuthenticationFailureException异常。在捕获到连接异常后,应该立即重试连接,而不需要任何延迟。

A

B

9
判断题

在RabbitMQ中,生产者可以直接将消息发送到队列,而不需要经过交换机。

A

B

10
判断题

在RabbitMQ中,消费者调用channel.basicConsume()方法后,会立即阻塞当前线程并等待消息到达。

A

B

11
多选题

使用RabbitMQ Java客户端创建ConnectionFactory时,以下哪些是必须或常用的配置参数?

A

setHost() - 设置RabbitMQ服务器地址

B

setPort() - 设置连接端口号

C

setUsername()和setPassword() - 设置认证凭据

D

setVirtualHost() - 设置虚拟主机

12
填空题

在RabbitMQ Java客户端中,创建ConnectionFactory后,通过调用_____________方法建立连接,该方法可能抛出___________________________两种异常,连接使用完毕后应先关闭_______再关闭__________

13
多选题

在RabbitMQ连接过程中,以下哪些情况会导致抛出IOException异常?

A

RabbitMQ服务器未启动,无法建立TCP连接

B

用户名或密码错误导致认证失败

C

指定的虚拟主机不存在

D

网络连接超时

14
填空题

在Java中确保RabbitMQ资源被正确关闭,推荐使用__________________语法,它会自动调用实现了_____________接口的资源的______方法;在finally块中关闭资源时,应先判断引用是否为______以避免____________________

15
判断题

在RabbitMQ中,消息的持久化只需要设置消息的deliveryMode属性为2即可,与队列的durable属性无关。

A

B

16
单选题

在RabbitMQ中发送JSON格式的消息时,以下哪种方式正确地设置了消息属性和内容编码?

A

直接将JSON字符串转为字节数组发送,不设置任何属性

B

将JSON字符串转为UTF-8编码的字节数组,并设置contentType为"application/json"

C

将JSON字符串转为字节数组,设置contentType为"text/plain"

D

使用MessageProperties.PERSISTENT_TEXT_PLAIN作为属性,直接发送JSON字符串

17
多选题

RabbitMQ消息的BasicProperties可以设置以下哪些属性?

A

contentType - 消息内容类型

B

correlationId - 关联ID,用于请求-响应模式

C

expiration - 消息过期时间

D

priority - 消息优先级

18
填空题

在RabbitMQ Java客户端中,构建消息属性时使用_______________________模式,设置消息持久化的deliveryMode值为______,设置消息内容类型为JSON时应设置contentType为________________,构建完成后调用______方法生成_______________对象。

← 上一个试卷 死信队列与延迟队列专题测试
下一个试卷 → 消息可靠性保障专题测试

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

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

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

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