中国建设劳动学会是正规网站吗,版本设计网站,高端开发网站系统,wordpress首页优化缩略图Kafka 的 Topic#xff08;主题#xff09; 和 Partition#xff08;分区#xff09; 是数据组织的核心概念#xff0c;它们的映射关系及在 Broker 上的分布直接影响 Kafka 的性能、扩展性和容错能力。以下是详细解析#xff1a; 一、Topic 与 Partition 的映射关系
Top…
Kafka 的 Topic主题 和 Partition分区 是数据组织的核心概念它们的映射关系及在 Broker 上的分布直接影响 Kafka 的性能、扩展性和容错能力。以下是详细解析 一、Topic 与 Partition 的映射关系
Topic 是逻辑分类Partition 是物理分片 Topic消息的逻辑分类例如 order_events、user_logs类似于数据库中的表。Partition每个 Topic 被划分为多个 Partition每个 Partition 是一个有序的、不可变的消息队列。 消息在 Partition 内按顺序追加有序但全局无序不同 Partition 的消息顺序不保证。Partition 数量在 Topic 创建时指定后续可增加但不能减少。
分区的核心作用 并行处理多个 Consumer 可同时消费不同 Partition提升吞吐量。水平扩展通过增加 Partition 数量可突破单机性能瓶颈。容错性每个 Partition 的副本分布在多个 Broker 上避免单点故障。
消息写入规则 生产者通过 Partitioner 决定消息写入哪个 Partition默认策略 轮询Round Robin无 Key 时均匀分配。哈希 KeyHash-based有 Key 时按 Key 的哈希值选择 Partition保证相同 Key 的消息进入同一 Partition。 二、Partition 在 Broker 上的分布 1. Partition 副本机制
每个 Partition 有多个副本Replica分为两类 Leader 副本处理所有读写请求是唯一对外服务的副本。Follower 副本异步从 Leader 同步数据不处理客户端请求。
副本数Replication Factor创建 Topic 时指定例如 replication-factor3 表示每个 Partition 有 3 个副本。
2. Partition 分布策略
Kafka 会尽量将 Partition 的副本均匀分布在不同的 Broker 上规则如下
第一副本分配 首个副本的分配策略有两种由 Broker 参数 broker.rack 决定 无机架感知轮询或随机选择一个 Broker。有机架感知优先选择不同机架的 Broker。
后续副本分配 其他副本按顺序分配到与前一副本不同的 Broker尽量分散。
示例 假设一个 Kafka 集群有 3 个 BrokerBroker 0、1、2创建一个 Topic test参数为 partitions3、replication-factor2。 可能的分布如下
Partition 0: LeaderBroker0, Replicas[Broker0, Broker1]
Partition 1: LeaderBroker1, Replicas[Broker1, Broker2]
Partition 2: LeaderBroker2, Replicas[Broker2, Broker0]
3. 查看 Partition 分布
使用 Kafka CLI 工具查看 Topic 的 Partition 分布
bash bin/kafka-topics.sh --describe --topic test --bootstrap-server localhost:9092# 输出示例
Topic: test PartitionCount: 3 ReplicationFactor: 2Topic: test Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0,1Topic: test Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2Topic: test Partition: 2 Leader: 2 Replicas: 2,0 Isr: 2,0
Replicas该 Partition 的所有副本所在的 Broker ID。Leader当前处理请求的副本所在的 Broker ID。IsrIn-Sync Replicas与 Leader 保持同步的副本集合。 三、设计 Partition 分布的关键原则
均匀分布 Partition 的 Leader 应均匀分布在所有 Broker 上避免单个 Broker 成为性能