这里记录了分布式消息队列(如 Kafka、RabbitMQ、RocketMQ)相关的核心面试题:

基础与架构选型

消息可靠性与一致性

  • 如何保证消息不丢失?(生产端、Broker 端、消费端分别如何处理)
  • 如何处理消息重复消费的问题?(如何保证消息消费的幂等性
  • 如何保证消息的顺序消费?(全局有序 vs 局部有序)
  • 什么是死信队列(DLQ)和延迟队列?如何实现延迟队列?
  • 消息队列积压了大量消息,应该如何处理和优化?
  • 什么是分布式事务消息?RocketMQ 是如何实现事务消息的?

Kafka 深度原理

  • Kafka 的整体架构是怎样的(Producer、Broker、Consumer、Topic、Partition、ZooKeeper/KRaft)?
  • Kafka 为什么吞吐量这么高?(顺序读写、零拷贝、PageCache、批量发送)
  • 什么是 Kafka 的 ISR(In-Sync Replicas)机制?
  • Kafka 的 HW(High Watermark)和 LEO(Log End Offset)是什么?
  • Kafka 的消费者组(Consumer Group)和 Rebalance(重平衡)机制是怎样的?
  • Kafka 中的消息是如何存储的(Segment、.log、.index、.timeindex)?