93、简述kafka架构设计
kafka架构设计
- Consumer Group:消费者组,消费者组内每个消费者负责消费不同分区的数据,提高消费能力。逻辑上的一个订阅者。
- Topic: 可以理解为一个队列,Topic 将消息分类,生产者和消费者面向的是同一个 Topic。
- Partition: 为了实现扩展性,提高并发能力,一个Topic 以多个Partition的方式分布到多个 Broker 上,每个Partition 是一个有序的队列。一个Topic 的每个Partition都有若干个副本 (Replica),一个Leader和若干个Follower。生产者发送数据的对象,以及消费者消费数据的对象,都是 Leader。Follower负责实时从 Leader 中同步数据,保持和 Leader 数据的同步。Leader 发生故障时,某个 Follower 还会成为新的 Leader.
- offset: 消费者消费的位置信息,监控数据消费到什么位置,当消费者挂掉再重新恢复的时候,可以从消费位置继续消费。
- Zookeeper: Kafka 集群能够正常工作,需要依赖于 Zookeeper,Zokeeper 帮助 Kafka 存储和管理集群信息。