Kafka 的分区与副本机制
301 字
2 分钟
Kafka 的分区与副本机制
在 Kafka 中,每个 Kafka 实例称为 Broker,每个 Broker 中可以保存多个 Topic。每个 Topic 可以划分为多个分区,**每个分区保存的数据是不一样的,**这些分区可以在同一个 Broker 中,也可以在散布在不同的 Broker 中。
一个 Broker 可以存储不同 Topic 的不同分区,也可以存储同一个 Topic 的不同分区。

分区与复制
主题的每个分区都有至少一个副本,也就是 --replication-factor 参数必须大于 1。副本分为 leader 和 follower 两种,每个副本都需要消耗一个存储空间,leader 对外提供读写消息,而 follower 提供冗余备份,leader 会及时将消息增量同步到所有 follower 中。
在 hello-topic 主题中,当分区只有一个副本时,或只关注 leader 副本时,leader 副本对应的 Broker 节点位置如下:

如果设置了多个副本( --replication-factor=3 ) 时,leader 副本和 follower 副本的位置如下所示:

在不同的副本中,只有 leader 副本能够进行读写,follower 接收从 leader 推送过来的数据,做好冗余备份。


文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章智能推荐
1
微服务之间如何传递 trace
后端开发跨服务传递的是 trace 上下文而非 tracer:HTTP header、gRPC metadata 与 MQ 消息头的标准做法。
2
一致性哈希:consistent 与 rendezvous 的对比
后端开发两种分布式哈希的均匀度与耗时对比结论:节点少选 rendezvous,节点多且时间敏感选 consistent。
3
微服务鉴权与网关职责
后端开发Gateway 负责认证、Service 负责授权:身份上下文透传、反例风险与文件服务落地场景。
4
本地负缓存
后端开发把不存在/失败的查询结果缓存在本地内存中,短时间内直接返回,避免重复打到下游系统。
5
MySQL 索引与慢查询优化
后端开发慢查询 200ms 阈值、JOIN 对数据量的影响、IN 列表过大丢索引与分批查询。
随机文章随机推荐











