kafka 分区分配及再平衡总结

Posted 小码农叔叔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka 分区分配及再平衡总结相关的知识,希望对你有一定的参考价值。

前言

对kafka有一定了解的同学应该知道,kafka发送到topic的数据是分区存储的,而后,对于消费者来说,只需要指定kafka服务的IP、端口号,以及指定具体的topic名称即可,而不需要具体关系消费哪个分区的数据;

但在kafka内部,这个过程还是挺复杂的,我们知道,在编写kafka消费端逻辑代码时,需要在代码中配置 "group"参数,即消费端消费某个topic的数据时,需要指定具体的消费组名称,否则,程序根本无法跑起来;

下图展示了kafka从producer发送消息,到consumer消费消息时,消息进行流动的一个大致的示意图*(这里忽略了内部其他的逻辑);

本文由于是探讨消费组分区消费再均衡的问题,仅从消费端出发,针对某个消费者组内的多个消费者消费topic的数据,结合上图做一个简单的说明;

假设kafka集群服务已经开启并且生产者已经推送了一定数据的消息到具体的topic的情况下,这时候启动消费端,接下来做的事情大概如下:

  1. 每个consumer都发送JoinGroup请求(每个分区所在的broker都存在一个叫做coordin

以上是关于kafka 分区分配及再平衡总结的主要内容,如果未能解决你的问题,请参考以下文章

Kafka重平衡机制

kafka如何平衡分区负载?

Kafka之副本信息Leader 选举流程故障处理细节分区副本分配手动调整分区副本存储Leader Partition 负载平衡增加副本文件存储机制文件清理策略高效读写数据

kafka 再平衡机制

Jet Kafka负载平衡

Kafka重平衡机制