作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们上一章介绍了中间件:Zookeeper,本章将介绍另外一个中间件:Kafka。目前这2个中间件都是基于JAVA语言的。
我们上个小节介绍了Kafka里面一个很核心的逻辑概念:主题(Topic),在创建Topic的时候,涉及到两个很关键的参数:分区(Partition)和副本(Replica),我们今天就来详细介绍这2个概念。
Kafka 中的 分区(Partition) 和 副本(Replica) 是两个核心概念,它们共同支撑了 Kafka 的高吞吐量、可扩展性和高可用性。以下是它们的详细解释和关系:
replication factor 参数控制)。副本分为两种角色:fetch 请求),保持与 Leader 的同步。维度 | 分区(Partition) | 副本(Replica) |
|---|---|---|
核心目标 | 提高并行性和吞吐量 | 保证高可用性和数据持久性 |
数据分布 | 每个分区存储 Topic 的部分数据 | 每个副本是某个分区的完整备份 |
读写角色 | Leader 副本处理读写请求 | Follower 副本仅同步数据 |
数量控制 | 由 num.partitions 决定 | 由 replication.factor 决定 |
物理存储 | 分区分布在多个 Broker 上 | 副本分布在不同的 Broker 上(避免单点故障) |
在上个小节我们提到,如果向一个不存在的Topic发送消息,如果我们允许它创建,则会读取默认的配置,这个默认的配置是下面2个参数:
如果我们使用Kafka的脚本创建也是读取这2个参数,他们默认都是1。