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

连接管理与Channel专题测试

20 题 45 分钟 难度:

考察知识点

  • 连接管理与Channel相关概念
  • RabbitMQ 进阶实践
1
判断题

在RabbitMQ应用中,为每个消息发送都创建新的Connection和Channel是最简单的做法,且在生产环境中推荐使用这种方式。

A

B

2
单选题

在Spring Boot应用中配置RabbitMQ连接池,使用spring-boot-starter-amqp时默认的连接管理方式是?

A

使用CachingConnectionFactory缓存Connection和Channel

B

每次操作都创建全新的Connection

C

使用HikariCP连接池管理Connection

D

使用Apache Commons Pool管理Connection

3
填空题

RabbitMQ连接池的大小配置需要综合考虑__________________________两个核心因素。连接池过大可能导致Broker __________耗尽,过小则可能成为应用的性能瓶颈。

4
多选题

以下关于RabbitMQ连接池配置的描述,哪些是正确的?

A

连接池中的Connection数量越多,消息吞吐量一定越高

B

应该根据Broker的max_connections配置来规划应用侧连接池上限

C

CachingConnectionFactory的Channel缓存大小可以通过channelCacheSize属性调整

D

连接池初始化时预创建连接可以减少首次消息发送的延迟

5
判断题

RabbitMQ的Channel是线程安全的,可以在多个业务线程之间安全地共享同一个Channel实例来发布和消费消息。

A

B

6
单选题

在高并发场景下,以下哪种Channel复用策略是最合理的?

A

全局共享一个Channel,所有线程都通过它发送消息

B

每个线程创建自己的Channel,用完立即关闭

C

使用ThreadLocal为每个线程绑定独立Channel,并通过池化机制控制总数量

D

为每个消息创建新的Channel

7
填空题

在多线程环境下使用RabbitMQ时,如果一个Channel被多个线程同时调用basicPublish方法,可能导致____________________。Spring AMQP通过___________机制来解决这个问题。

8
多选题

关于RabbitMQ Channel复用,以下哪些说法是正确的?

A

一个Connection上可以创建多个Channel

B

发布消息和消费消息可以共用同一个Channel

C

使用Publisher Confirms时,建议为确认回调使用独立的Channel

D

Channel的序号(channel number)在同一个Connection内唯一

9
判断题

RabbitMQ的心跳机制是在应用层实现的,不依赖TCP的keep-alive功能,即使网络中间设备(如防火墙)长时间没有数据流也不会误判连接断开。

A

B

10
单选题

RabbitMQ客户端配置心跳间隔为30秒,如果网络中断导致Broker在60秒内未收到任何客户端数据,Broker会如何处理?

A

继续等待,直到120秒后才判定连接超时

B

立即关闭该连接,并通知客户端

C

判定连接已死亡,主动关闭该连接

D

发送一条额外的Heartbeat帧探测客户端

11
填空题

在RabbitMQ Java客户端中,可以通过设置_________________参数来协商心跳间隔,如果设置为0表示________。心跳间隔设置过小会导致____________,设置过大会延长死连接的检测时间。

12
多选题

关于RabbitMQ心跳机制和断线重连,以下哪些说法是正确的?

A

心跳超时导致的连接关闭后,客户端需要手动重新建立连接

B

在大量消息持续传输的场景下,Heartbeat帧不会额外发送

C

心跳检测可以替代TCP keep-alive,两者功能完全重复

D

Spring AMQP的CachingConnectionFactory支持自动重连功能

13
判断题

RabbitMQ的一个Connection可以同时访问多个Virtual Host中的资源,因为Connection是VHost之上的概念。

A

B

14
单选题

在微服务架构中,一个应用需要同时访问RabbitMQ的两个VHost(/orders/notifications),以下哪种连接管理方式最合理?

A

创建一个Connection,通过切换VHost来访问不同资源

B

创建两个独立的Connection,分别连接到/vhost和/notifications

C

创建一个Connection,在消息头中标注目标VHost

D

只需要连接默认VHost"/",在其中创建所有资源

15
填空题

在管理多VHost连接时,通常采用____________的方式,通过___________作为key来查找对应的ConnectionFactory。每个VHost连接可以使用独立的______资源,避免互相影响。

16
多选题

在RabbitMQ中引入多VHost架构,以下哪些是其主要目的?

A

实现不同业务域之间的资源隔离

B

为不同租户(tenant)提供独立的权限管控

C

提升消息传输的吞吐量

D

允许不同团队独立管理各自VHost的资源而互不干扰

17
判断题

RabbitMQ连接异常断开后,未确认的消息(unacknowledged messages)会自动重新入队,不需要应用层做额外处理。

A

B

18
单选题

在RabbitMQ消费者端实现连接故障自愈时,以下哪个步骤是必需的?

A

捕获TopologyRecoveryException后重新启动整个应用

B

监听ShutdownSignalException事件,在回调中重新声明队列和绑定

C

在消息处理方法中检测连接状态,发现断开则手动重连

D

依赖RabbitMQ自动恢复功能,不需要应用层做任何处理

19
填空题

RabbitMQ Java客户端的自动恢复功能可以通过________________________启用,启用后客户端会在连接断开后自动重建______________________________。但应用层的____________仍需手动管理。

20
多选题

关于RabbitMQ连接异常处理与恢复策略,以下哪些做法是正确的?

A

使用指数退避策略实现重连,避免Broker恢复时产生连接风暴

B

连接恢复后,所有未确认的消息会自动重新投递给消费者

C

在消费者端实现幂等处理,因为重连后可能存在消息重复投递

D

连接关闭事件可以通过ShutdownListener进行监听

← 上一个试卷 管理控制台与监控专题测试
下一个试卷 → 集群与高可用专题测试

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

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

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

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