消息队列面试题, Kafka 中 Zookeeper 的作用?
消息队列面试题, Kafka 中 Zookeeper 的作用?
QA
Step 1
Q:: Kafka 中 Zookeeper 的作用是什么?
A:: Zookeeper 在 Kafka 集群中起到关键的协调作用。它负责管理和协调 Kafka broker、跟踪消息队列的状态、维护 broker 列表、选择 partition leader 以及管理消费者组的 offset。通过使用 Zookeeper,Kafka 可以确保集群的一致性和高可用性。
Step 2
Q:: Kafka 中的消费者组是什么?
A:: 消费者组是一组协同工作的消费者实例,它们共同消费一个或多个主题。每个消费者组中的消费者实例共享同一个组 ID。通过消费者组,Kafka 实现了消息的负载均衡,确保同一个分区的消息只被一个消费者实例消费。
Step 3
Q:: Kafka 的分区机制是如何工作的?
A:: Kafka 将每个主题分成多个分区,每个分区是一个有序的、不可变的消息队列。生产者可以将消息发布到特定的分区,消费者按分区顺序消费消息。分区机制提高了 Kafka 的并行处理能力和吞吐量。
Step 4
Q:: Kafka 中的副本机制是如何保证高可用性的?
A:: Kafka 通过将每个分区的数据复制到多个 broker(称为副本)来实现高可用性。一个分区有一个 leader 和多个 follower 副本,leader 处理所有的读写请求,follower 从 leader 同步数据。当 leader 发生故障时,Zookeeper 会选举新的 leader,从而保证系统的高可用性。
Step 5
Q:: Kafka 的消费偏移量是什么?
A:: 消费偏移量(offset)是消费者在 Kafka 中读取的消息位置标记。Kafka 通过维护每个消费者组的 offset,确保消费者从正确的位置继续消费消息。offset 存储在 Zookeeper 或者 Kafka 的内部主题中。