消息中间件面试题及答案

文章目录


前    言
本文仅收录了一些常见的消息中间件面试题,如需查看其它java面试题可查看我另一篇博文:

JAVA | 2021最全Java面试题及答案汇总


正    文

1. RabbitMQ 中的 broker 是指什么?cluster 又是 指什么?

答:broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 RabbitMQ
应用程序。cluster 是在 broker 的基础之上,增加了 node 之间共享元数据的约束。

2. RabbitMQ 中 RAM node 和 disk node 的区别?

答:RAM node 仅将 fabric(即 queue、exchange 和 binding等 RabbitMQ基础构件)
相关元数据保存到内存中,但 disk node 会在内存和磁盘中均进行存储。RAM node 上唯一
会存储到磁盘上的元数据是 cluster 中使用的 disk node 的地址。要求在 RabbitMQ
cluster 中至少存在一个 disk node 。

3. RabbitMQ 上的一个 queue 中存放的 message 是 否有数量限制?

答:可以认为是无限制,因为限制取决于机器的内存,但是消息过多会导致处理效率的
下降。

4. RabbitMQ 概念里的 channel、exchange 和 queue 这些东东是逻辑概念,还是对应着进程实体?它们 分别起

  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于消息中间件面试题,以下是一些可能会涉及的问题和答案: 1. 什么是消息中间件?它的作用是什么? 消息中间件是一种用于在分布式系统中进行异步通信的软件组件。它的作用是解耦发送者和接收者,提供可靠的消息传递机制,确保消息的可靠性和顺序性,并具备高吞吐量和低延迟的特性。 2. RabbitMQ和Kafka是常见的消息中间件,它们有什么区别? RabbitMQ和Kafka都是流行的开源消息中间件,但它们有一些不同之处。RabbitMQ是一个传统的AMQP消息中间件,它提供了丰富的特性,例如消息确认、持久化、事务等,适用于传统的消息传递场景。而Kafka是一个高吞吐量的分布式消息系统,主要用于处理大规模的高并发数据流,具备高性能和可伸缩性的特点。 3. 消息积压是什么问题?如何解决消息积压的问题? 消息积压是指消息队列中未能及时被消费的消息越来越多,导致队列中的消息堆积过多。这会导致消费者无法及时处理新的消息,影响系统的吞吐量和性能。 解决消息积压的问题可以从以下几个方面入手: - 增加消费者的数量,提高消息消费的并发性。 - 调整消息队列的容量,增加队列的大小,以容纳更多的消息。 - 对于长时间未被消费的消息,可以考虑设置消息的过期时间,或者通过消息的重试机制重新投递。 4. Kafka中的主题是什么意思?主题和分区的关系是怎样的? 在Kafka中,主题是消息的逻辑容器,生产者将消息发布到一个或多个主题,而消费者从主题中订阅消息。 主题可以有多个分区,用于实现分布式存储和处理。每个分区都是一个有序的、不可变的消息序列,分区中的消息按照写入的顺序进行存储和读取。每个分区都有一个唯一的标识符(partition id),并且可以在不同的机器上进行存储和处理,实现了消息的并行处理和负载均衡。 综上所述,面试中可能会涉及到消息中间件的概念、常见的消息中间件技术(如RabbitMQ和Kafka),以及一些常见的问题和解决方法(如消息积压和Kafka的主题与分区)。请根据面试题的具体要求和深度进行准备和回答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值