kafka的分区策略
一、生产端的消费策略二、消费端的生成策略1、range (默认分配策略)对应的实现类是 org.apache.kafka.clients.consumer.RangeAssignor将分区按数字顺序排行序,消费者按名称的字典序排序用分区总数除以消费者总数。如果能够除尽,平均分配;若除不尽,则位于排序前面的消费者将多负责一个分区2、RoundRobin基于轮询算法对应的实现类是 org.apache
·
一、生产端的消费策略
略
二、消费端的生成策略
1、range (默认分配策略)
对应的实现类是 org.apache.kafka.clients.consumer.RangeAssignor
- 将分区按数字顺序排行序,消费者按名称的字典序排序
- 用分区总数除以消费者总数。如果能够除尽,平均分配;若除不尽,则位于排序前面的消费者将多负责一个分区
2、RoundRobin基于轮询算法
对应的实现类是 org.apache.kafka.clients.consumer.RoundRobinAssignor
- 将所有主题的分区组成TopicAndPartition列表
- 对TopicAndPartition列表按照hashCode进行排序某个topic
- 最后通过轮询算法来分配 partition 给到各个消费者
3、stricky
StickyAssignor
参考:https://lihuimintu.github.io/2021/02/14/kafka-partition-strategy/
更多推荐
已为社区贡献4条内容
所有评论(0)