首页/ 学科题库/ rabbitmq/ 消息发送与接收专题测试
rabbitmq 模拟试卷

消息发送与接收专题测试

18 题 30 分钟 难度:★
  • 消息发送与接收基本概念
  • RabbitMQ 消息收发实践

试卷习题(18 题)

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

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

A

对

B

错

2
判断题

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

A

对

B

错

3
判断题

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

A

对

B

错

4
判断题

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

A

对

B

错

5
判断题

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

A

对

B

错

单选题
6
单选题

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

A

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

B

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

C

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

D

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

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中,生产者发送消息到指定交换机时,首先需要建立的底层连接对象是什么?

A

Channel

B

Connection

C

Queue

D

Exchange

9
单选题

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

A

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

B

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

C

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

D

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

10
单选题

生产者使用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)

11
单选题

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

A

MessageListener

B

DeliverCallback

C

ConsumerCallback

D

ReceiveHandler

12
单选题

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

A

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

B

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

C

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

D

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

多选题
13
多选题

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

A

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

B

setPort() - 设置连接端口号

C

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

D

setVirtualHost() - 设置虚拟主机

14
多选题

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

A

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

B

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

C

指定的虚拟主机不存在

D

网络连接超时

15
多选题

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

A

contentType - 消息内容类型

B

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

C

expiration - 消息过期时间

D

priority - 消息优先级

填空题
16
填空题

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

17
填空题

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

18
填空题

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

参考答案
1.A 2.错误 3.错误 4.错误 5.B 6.C 7.D 8.B 9.B 10.A 11.B 12.B 13.A;B;C;D 14.A;B;C 15.A;B;C;D 16.newConnection;IOException;TimeoutException 17.try-with-resources;AutoCloseable;close 18.BasicProperties.Builder;2;application/json
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 死信队列与延迟队列专题测试 下一套 → 消息可靠性保障专题测试