废话不多说了,开始发车。
1. Kafka 的技术难点究竟在哪?
2. Kafka 架构设计的任督二脉
因此,Partition 是 Kafka 最基本的部署单元。本文之所以将 Partition 称作 Kafka 架构设计的任督二脉,基于下面两点原因:
1、Partition 是存储的关键所在,MQ「一发一存一消费」的核心流程必然围绕它展开。
2、Kafka 高并发设计中最难的三高问题都能和 Partition 关联起来。
3. Kafka的宏观架构设计
假设现在有两个 Topic,每个 Topic 都设置了两个 Partition,如果 Kafka 集群是两台机器,部署架构将会是下面这样:
从消费者来看,首先要满足两个基本诉求:
1、广播消费能力:同一个 Topic 可以被多个消费者订阅,一条消息能够被消费多次。
2、集群消费能力:当消费者本身也是集群时,每一条消息只能分发给集群中的一个消费者进行处理。
最终的消费关系如下图所示:假设主题 A 共有 4 个分区,消费组 2 只有两个消费者,最终这两个消费组将平分整个负载,各自消费两个分区的消息。
4. 写在最后
下篇文章将从微观角度切入,深入分析 Kafka 的设计原理,我们下期见!
大家好,我是武哥,前亚马逊工程师,现大厂技术总监,持续分享个人的成长收获,关注我一定能提升你的视野,让我们一起进阶吧!