图解kafka消费者两种分区分配策略

c1 c2 c3
range策略 p0、p1 p2、p3 p4
roundrobin策略 p0、p3 p1、p4 p2

可能你会觉得两种策略差不多,两种策略都是:c1两个分区、c2两个分区、c3一个分区

下面再来看多个TOPIC的情况:

c1 c2 c3
range策略 p1_0、p1_1、p2_0、p2_1 p1_2、p1_3、p2_20、p2_3 p1_4、p2_4
roundrobin策略 p1_0、p1_3、p2_1、p2_4 p1_1、p1_4、p2_2 p1_2、p2_0、p2_3

 在多TOPIC下,两种策略就体现出不一样了。

range策略下:c1四个分区、c2四个分区、c3两个分区

roundrobin策略下:c1四个分区、c2三个分区、c3三个分区

range策略:对多个主题,分别按分区进行按范围划分,可能出现消费者之间分区数相差较大。(默认)

roundrobin策略:对多个主题作为一个整体,根据主题+分区进行排序,然后分配给消费者。极端情况下可能会出现错误分配。所以kafka默认的消费者分区策略是range。

猜你喜欢

转载自blog.csdn.net/cakecc2008/article/details/118297892