Kafka记录、偏移量与分区基础:相关使用疑问咨询
Kafka分区(Partitions)与偏移量(Offsets)常见问题解答
问题1:发送Kafka记录时,它是被拆分到多个分区中,还是同一消息被多次发送到每个分区?
一条完整的Kafka record只会被发送到一个分区,既不会被拆分,也不会自动复制到多个分区。
- 分区选择通常由消息的
key决定:相同key的消息会被路由到同一个分区,以此保证同key消息的顺序性; - 如果没指定key,Kafka会用轮询(Round Robin)方式把消息均匀分配到各个分区,实现负载均衡;
- 你也可以自定义分区器(Partitioner)来控制消息的分区路由规则。
问题2:来自多个分区的多个偏移量会组成一条记录吗?
不会。每个分区的偏移量(Offset)是该分区内消息的唯一序号,不同分区的偏移量完全独立,不存在“多个偏移量组成一条记录”的情况。
- 每条record在所属分区内对应一个唯一的offset,用来标记它在这个分区里的位置;
- 消费者消费时,是按分区维度追踪offset的,比如消费者组里的不同消费者会负责不同分区,各自维护对应分区的消费偏移量。
内容的提问来源于stack exchange,提问作者Amir Choubani
相关产品推荐
相关产品推荐

