ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Kafka全套核心术语

Kafka全套核心术语 Kafka全套核心术语Kafka全套核心术语一、基础角色二、消息与主题相关三、消费者相关术语四、高级概念极简版Kafka 核心关系文字 简单Mermaid图✅一句话关系文字层级从上往下看重点规则就4条写报告总结Kafka全套核心术语一、基础角色Producer 生产者消息发送方。你的perf_producer.py、robot_dog_sim.py、drone_sim.py都是生产者往Kafka推送设备传感器消息。Consumer 消费者消息接收方。你的perf_consumer.py订阅主题拉取消息做业务处理。Broker一台独立的Kafka服务实例Kafka服务器/容器。多个broker组成Kafka集群你docker跑的是单broker。负责接收、存储消息响应读写请求。ZooKeeperKafka依赖的协调服务。保存集群元数据broker列表、topic分区信息、leader副本、消费者offset等。新版本Kafka已经逐步去掉ZK但课程里一般还会提到。二、消息与主题相关Topic 主题逻辑上的消息分类相当于消息的文件夹。生产者发消息必须指定topic消费者订阅topic消费。你的例子device-data专门存放设备上报数据。Partition 分区Topic的物理分片Kafka最小读写单元。一个topic拆成多个partition你实验topic是6个分区同一条key的消息固定进同一个partition实现同key保序分区分散在不同broker提升并发读写能力。Replica 副本replicas分区的备份用来高可用。一个分区有多份副本放在不同broker防止服务器宕机消息丢失。副本分为两种Leader主副本处理这个分区所有读写请求生产者只写leader消费者只读leader。Follower从副本被动同步leader的数据不处理读写leader挂掉follower自动升级为新Leader。Message / Record 消息记录Kafka里最小数据单元由三部分组成key消息键你项目用deviceId做key保证同设备消息进同一个分区value消息主体你的设备DTO转成的JSON字符串metadataoffset、timestamp、partition等信息Offset 偏移量分区内消息的序号每个partition独立编号从0开始递增。作用消费者靠offset记录读到哪一条消息就是Offset持久化。三、消费者相关术语Consumer Group 消费者组一组消费者共享同一个group.id。同一个topic的一个分区只能被组内一个消费者消费组内消费者数量 ≤ 分区数量多消费者并行消费不同分区提升消费能力。就是你之前做的rebalance实验的基础。Rebalance 再平衡消费者组内发生变化新增/下线消费者、分区增减触发分区重新分配给组内消费者。会短暂停止消费生产环境尽量避免频繁rebalance。Offset Commit 提交偏移量消费者处理完消息后把当前消费位置(offset)提交到Kafka保存。earliest从分区最早的消息开始消费latest只消费新产生的消息四、高级概念DLQ Dead Letter Queue 死信队列死信主题。正常topic中多次处理失败、无法消费的消息转发到DLQ人工排查避免阻塞正常消费。CompletableFutureSpringKafka发送消息返回的异步对象whenComplete回调获取发送结果。AckAcknowledgment确认生产者发送消息后broker返回确认。acks1leader副本写成功就返回确认默认acksall所有副本写完才返回可靠性最高。Retention 消息保留策略消息不会永久保存按时间/大小自动清理。比如默认保留7天到期磁盘删除消息。极简版Kafka 核心关系文字 简单Mermaid图✅一句话关系1个Topic主题包含多个Partition分区1个Partition有多个副本Replica1个Leader主副本 若干Follower从副本副本放在不同Broker服务器上。Producer生产者 → 发消息到Topic消息根据keydeviceId路由到同一个Partition读写只走Partition的Leader副本Follower只同步备份Consumer消费者组一个消费者读一个Partition读Leader消费者组Broker3Broker2Broker1发消息 keydeviceIdProducer生产者Topic:device-dataPartition0Partition1Partition0 ⭐LeaderPartition0 FollowerPartition1 ⭐LeaderPartition1 FollowerConsumer1Consumer2文字层级从上往下看Producer生产者 ↓ Topic【主题】(device-data) ├─ Partition0【分区0】 │ ├ Leader副本 → Broker1负责读写 │ └ Follower副本 → Broker2备份 └─ Partition1【分区1】 ├ Leader副本 → Broker2负责读写 └ Follower副本 → Broker3备份 ↓ ConsumerGroup消费者组 Consumer1 读 Partition0 Consumer2 读 Partition1重点规则就4条写报告Topic是逻辑名字不是服务器Partition是Topic拆分出来的存储分片。每个Partition有1个Leader多个Follower副本副本分散在不同Broker机器。Producer只写LeaderConsumer只读LeaderFollower只同步数据不处理读写。同一个key(deviceId)的消息一定落到同一个Partition实现同设备消息保序。总结生产者发送消息到TopicTopic由多个分区Partition组成每个分区存在多份副本Leader主副本、Follower从副本副本分布在不同Broker服务节点。生产者写入、消费者读取只访问Leader副本Follower同步备份数据做容灾。消费者组内一个消费者负责消费一个分区。Kafka核心术语简述BrokerKafka服务节点多个Broker构成集群Topic逻辑主题用于业务消息分类PartitionTopic物理分片是读写最小单元同key消息进入同一分区实现消息保序Replica副本分区的备份分为Leader主副本负责读写、Follower从副本同步数据故障时晋升Leader保障高可用Producer生产者发送消息Consumer消费者拉取消息Offset分区内消息序号记录消费位置ConsumerGroup消费者组一组消费者共同消费Topic一个分区同一时间只能被组内一个消费者消费DLQ死信队列存放无法正常处理的异常消息。
返回列表