Kafka 核心组件解析
BrokerKafka 集群中的单个节点负责消息存储和转发。每个 Broker 可托管多个分区Partition包含 Leader、Follower 和 Replica 角色。Topic逻辑数据分类单元例如topic_system表示系统日志数据。Topic 是生产者Producer和消费者Consumer交互的媒介。PartitionTopic 的物理分片表现为磁盘目录。每个 Partition 分配一个唯一 Offset 标识消息位置。Leader Partition处理读写请求协调 Follower 数据同步。Follower Partition备份 Leader 数据参与 Leader 选举高可用。Replica Partition仅提供读服务不参与选举。SegmentPartition 下的数据文件如system-0以日志格式存储默认 1GB 大小限制超限后生成新文件。数据保留周期默认为 7 天。生产者与消费者角色Producer将数据推送到指定 Topic例如 Filebeat 推送日志到topic_system。数据按分区策略如轮询分发到不同 Broker 的 Leader Partition。Consumer主动从 Topic 拉取Pull数据。通过 Offset 定位消息位置独立处理数据支持多消费者组并行消费。数据分发与同步流程数据写入生产者推送消息至 TopicKafka 根据分区数量及负载均衡策略如 Round Robin将消息分配至不同 Broker 的 Leader Partition并记录 Offset。数据同步Leader Partition 广播消息至所有 Follower 和 Replica确保数据冗余。同步采用 ISRIn-Sync Replica机制保证一致性。数据消费消费者向 Kafka 请求数据获取最新 Offset 后直接从对应 Partition 拉取消息。支持批量或实时拉取模式。分区与 Broker 关系一个 Broker 可托管多个 Topic 的分区Leader/Follower/Replica。Topic 创建时需指定分区数分区均匀分布在集群 Broker 上。分区数量影响并行处理能力但过多会导致元数据管理开销。关键配置参数log.segment.bytesSegment 文件大小默认 1GB。log.retention.hours数据保留时间默认 168 小时。num.partitionsTopic 默认分区数。default.replication.factor副本数建议 ≥2。代码示例创建 Topicbin/kafka-topics.sh --create \ --topic topic_system \ --partitions 3 \ --replication-factor 2 \ --bootstrap-server localhost:9092