kafka 消费者分区分配,在 kafka-2.2 里有三种实现
![a1d16f71ad8193ea94e3e3e6e31d83a8.png](https://i-blog.csdnimg.cn/blog_migrate/3348184328e9eaf195d7f87992094fba.jpeg)
RangeAssignor:
每次对一个主题分配消费者,分区数能整除消费者数,则每个消费者得到分区数一样,如果有余数,排在前面的消费者在有多的剩余分区情况下,就会多分配一个分区
比如两个消费者C0,C1;两个主题 t0, t1; 每个主题三个分区 t0p0,t0p1,t0p2;t1p0,t1p1,t1p2;(每个消费者都订阅了每个主题)
C0: [t0p0, t0p1, t1p0, t1p1] // 先分配t0, 消费者按字典序排序,往前的得到的多
C1: [t0p2, t1p2]
又比如:三个消费者,两个主题,五个分区 (每个消费者都订阅了每个主题)
C0: [t0p0, t0p1, t1p0, t1p1] // 先分配t0, 消费者按字典序排序,往前的得到的多
C1: [t0p2, t0p3, t1p2, t1p3] // 看起来不太均衡
C2: [t0p4, t1p4]
Round