排序
面试题:为什么 RocketMQ 不使用 Zookeeper 作为注册中心呢?而选择自己实现 NameServer?
RocketMQ 选择自己实现 NameServer 而不是使用 Zookeeper 作为注册中心,主要基于以下几个原因: 1. 轻量级设计 Zookeeper 的复杂性:Zookeeper 是一个分布式协调服务,功能强大但相对较重,引...
面试题:为什么需要消息队列?
消息队列(Message Queue)是分布式系统中非常重要的组件,它的引入主要是为了解决系统设计中的一些常见问题。以下是使用消息队列的主要理由和优势: 1. 解耦系统组件 问题 在传统的紧耦合系统...
面试题:RabbitMQ 中消息什么时候会进入死信交换机?
在 RabbitMQ 中,死信交换机(Dead Letter Exchange, DLX) 是一种特殊的交换机,用于处理无法被正常消费的消息。当消息满足某些条件时,它会被重新发布到死信交换机,进而路由到死信队列...
面试题:如何处理消息堆积?
消息堆积是消息队列中常见的问题,通常是由于消费者处理能力不足、消息生产速率过快或系统故障导致的。处理消息堆积需要从多个方面入手,包括优化消费者性能、调整消息队列配置、扩容系统资源等...
面试题:简述下消息队列核心的一些术语?
消息队列(Message Queue)是分布式系统中常用的组件,用于解耦生产者和消费者,实现异步通信和流量削峰。以下是消息队列中的一些核心术语及其解释: 1. 生产者(Producer) 定义:生产者是消息...
面试题:看过源码?那说说 Kafka 控制器事件处理全流程?
Kafka 控制器(Controller)是 Kafka 集群的核心组件之一,负责管理集群的元数据和协调分布式操作。控制器的主要职责包括分区 Leader 选举、分区重新分配、Broker 上下线处理等。在面试中,如果...
面试题:说一下消息队列的模型有哪些?
消息队列的模型是指消息在系统中传递和处理的模式。不同的模型适用于不同的业务场景,常见的消息队列模型包括以下几种: 1. 点对点模型(Point-to-Point, P2P) 定义 生产者将消息发送到队列中...
面试题:RabbitMQ 中无法路由的消息会去到哪里?
在 RabbitMQ 中,如果消息无法被路由到任何队列(例如没有绑定队列或路由键不匹配),消息的处理方式取决于交换机的配置。以下是消息无法路由时的可能去向: 1. 默认行为:消息被丢弃 如果...
面试题: 如何处理重复消息?
处理重复消息是分布式消息队列中的一个常见问题,通常是由于网络重传、生产者重试或消费者重复消费等原因导致的。为了保证系统的正确性,需要设计合理的机制来处理重复消息。以下是处理重复消息...
面试题:说一下 Kafka 为什么性能高?
Kafka 之所以性能高,主要得益于以下几个关键设计: 1. 顺序读写 Kafka 将消息顺序写入磁盘,避免了随机 I/O 操作。顺序读写比随机读写快得多,尤其是在机械硬盘上。 消费者也是顺序读取消息,...