一、生产端的消费策略

二、消费端的生成策略

1、range (默认分配策略)

对应的实现类是 org.apache.kafka.clients.consumer.RangeAssignor

  1. 将分区按数字顺序排行序,消费者按名称的字典序排序
  2. 用分区总数除以消费者总数。如果能够除尽,平均分配;若除不尽,则位于排序前面的消费者将多负责一个分区

2、RoundRobin基于轮询算法

对应的实现类是 org.apache.kafka.clients.consumer.RoundRobinAssignor

  1. 将所有主题的分区组成TopicAndPartition列表
  2. 对TopicAndPartition列表按照hashCode进行排序某个topic
  3. 最后通过轮询算法来分配 partition 给到各个消费者

3、stricky

StickyAssignor

参考:https://lihuimintu.github.io/2021/02/14/kafka-partition-strategy/

https://segmentfault.com/a/1190000039010754

https://www.cnblogs.com/hzmark/p/sticky_assignor.html

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐