MST

星途 面试题库

面试题:消息队列 Kafka开发中副本机制的基本原理是什么

请简要阐述Kafka开发中副本机制的基本原理,包括副本的类型(如领导者副本、追随者副本)以及它们在消息同步、故障恢复等方面是如何工作的。
31.9万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

副本机制基本原理

Kafka 中每个分区都有多个副本,这些副本分布在不同的 broker 上,用于提供数据冗余和高可用性。

副本类型

  1. 领导者副本(Leader Replica):每个分区有且仅有一个领导者副本。生产者发送的消息以及消费者读取的消息都直接与领导者副本交互。它负责处理所有的读写请求。
  2. 追随者副本(Follower Replica):除领导者副本外的其他副本为追随者副本。它们不处理客户端的读写请求,主要功能是从领导者副本同步数据,保持与领导者副本的数据一致性。

消息同步

  1. 生产者发送消息:生产者将消息发送到领导者副本所在的 broker。领导者副本接收到消息后,先将其写入本地日志,然后向生产者发送确认响应。
  2. 追随者副本同步:追随者副本通过定期向领导者副本发送 Fetch 请求来拉取新消息。领导者副本会根据追随者副本的请求,返回其尚未同步的消息。追随者副本接收到消息后,写入本地日志。

故障恢复

  1. 领导者副本故障:如果领导者副本所在的 broker 发生故障,Kafka 会从追随者副本中选举出一个新的领导者副本。选举过程通常由 Kafka 的控制器(Controller)负责,它会根据副本的 ISR(In - Sync Replicas,与领导者副本保持同步的追随者副本集合)状态来选择新的领导者。新领导者选举出来后,其他追随者副本会开始与新领导者同步数据。
  2. 追随者副本故障:如果某个追随者副本所在的 broker 发生故障,该副本会暂时从 ISR 中移除。当故障的 broker 恢复后,该追随者副本会重新加入 ISR,并开始与领导者副本同步数据,追赶落后的消息。