Kafka集群原理
Kafka 集群由多个独立的服务器节点(Broker)组成,这些 Broker 通过网络连接协同工作。
一个集群:通常包含多个 Broker 以实现冗余、和扩展性。
Kafka集群Broker
Broker 是构成 Kafka 集群的基本单元。多个 Broker 协同工作,共同组成了功能强大的 Kafka 集群。
Kafka 集群 (The Library): 是一个整体的、分布式的消息系统。
Broker (The Building): 是 Kafka 集群中的一个独立的服务器实例。每个 Broker 都是集群中的一个节点,负责管理一部分数据和处理一部分客户端请求。
Kafka 集群好比一个大型的图书馆,而 Broker 就是图书馆里的一栋栋独立的建筑。
Kafka集群Partition
Partition:Kafka主题下的逻辑分区,是Kafka并行处理、和扩展的基础。
Topic 的 Partition 分布在不同的 Broker 上,这样做的好处是实现了数据的水平扩展和负载均衡。
一个 Broker 可以负责:多个 Topic 的多个 Partition。
假设我们有 3 个 Broker 的 Kafka 集群:broker-0
, broker-1
, broker-2
定义一个 Topic:user-events
,有 3 个 Partition,副本因子为 2。
Kafka 会自动将 Partition 分布在 Broker 上,比如:
Partition | Leader Broker | Follower Broker |
---|---|---|
0 | broker-0 | broker-1 |
1 | broker-1 | broker-2 |
2 | broker-2 | broker-0 |
这体现了 Kafka 集群中 Broker 之间的数据分摊与副本容灾机制。
Kafka通过分区划分数据,实现消息的水平扩展。每个Partition有一个单独的Leader,负责处理读写请求,其它副本作为Follower追赶Leader数据。
总之,Kafka集群通过Broker节点组成分布式系统,利用Topic和Partition实现消息的高效分发和存储,副本机制保障数据可靠性。
mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!

后台回复【架构】即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》