kafka的分区分配策略有哪些?

提问者:帅平 问题分类:面试刷题
kafka的分区分配策略有哪些?
6 个回答
国民小哥哥
国民小哥哥
Sticky,这个从字面看来意思就是粘性策略,大概是这个意思。主要考虑的是在分配均衡的前提下,让分区的分配更小的改动。
比如之前P0\P1分配给消费者A,那么下一次尽量还是分配给A。
这样的好处就是连接可以复用,要消费消息总是要和broker去连接的,如果能够保持上一次分配的分区的话,那么就不用频繁的销毁创建连接了。
发布于:5个月前 (01-03) IP属地:未知
温柔刀下鬼
温柔刀下鬼
RoundRobin,也就是我们常说的轮询了,这个就比较简单了,不画图你也能很容易理解。
这个会根据所有的主题进行轮询分配,不会出现Range那种主题越多可能导致分区分配不均衡的问题。
P0-˃A,P1-˃B,P1-˃A。。。以此类推
发布于:5个月前 (01-03) IP属地:未知
孤居
孤居
Range,这个是默认的策略。大概意思就是对分区进行排序,排序越靠前的分区能够分配到更多的分区。
比如有3个分区,消费者A排序更靠前,所以能够分配到P0\P1两个分区,消费者B就只能分配到一个P2。
如果是4个分区的话,那么他们会刚好都是分配到2个。

但是这个分配策略会有点小问题,他是根据主题进行分配,所以如果消费者组订阅了多个主题,那就有可能导致分区分配不均衡。
比如下图中两个主题的P0\P1都被分配给了A,这样A有4个分区,而B只有2个,如果这样的主题数量越多,那么不均衡就越严重。
发布于:5个月前 (01-03) IP属地:四川省
我来回答