# Kafka 的设计与实践思考

DevFeed: [Kafka 的设计与实践思考](<https://devfeed.tech/articles/kafka-40994.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/kafka-design-practice/>)

Author: Joway

Published: 2018-04-16T00:00:00Z

Content type: tutorial

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Kafka](<https://devfeed.tech/topics/kafka.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [broker](<https://devfeed.tech/tags/broker.md>), [data](<https://devfeed.tech/tags/data.md>), [file](<https://devfeed.tech/tags/file.md>), [index](<https://devfeed.tech/tags/index.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [leader](<https://devfeed.tech/tags/leader.md>), [partition](<https://devfeed.tech/tags/partition.md>), [replication](<https://devfeed.tech/tags/replication.md>), [sync](<https://devfeed.tech/tags/sync.md>), [tech](<https://devfeed.tech/tags/tech.md>), [zookeeper](<https://devfeed.tech/tags/zookeeper.md>)

## AI overview

A Chinese-language technical article presents a personal summary of Kafka's architecture, internal components, storage design, and APIs. It explains the roles of ZooKeeper, brokers, partitions, replication, leaders, ISR, offsets, segments, sparse indexes, and message access.

## Source excerpt

前几天看了 librdkafka 的官方文档，这篇文档不仅仅讲解了如何使用 Kafka ，某种程度也讲解了分布式系统实现的难点和使用细节，故而让我对 Kafka 的实现原理产生了浓厚的兴趣。 这篇文章从 Kafka 的设计到使用做了一些个人总结，围绕真正实践场景，探寻其设计上的智慧与妥协。 设计 架构设计 Zookeeper Zookeeper 存储了 Kafka 集群状态信息 。 Zookeeper 还负责从 Broker 中选举出一个机器作为 Controller, 并确保其唯一性。 同时, 当 Controller 宕机时, 再选举一个新的 。