Kafka中Partition和Consumer数量应该怎么分配?


一、背景

Kafka中各个概念关系如下:

  • 一个Topic有多个Partition
  • 一个Consumer Group有多个Consumer
  • 一个Consumer可以监听多个Partition

二、Kafka中Partition和Consumer数量应该怎么分配?

Kafka中Partition和Consumer分配情况可以大概分为下面几种:

  • Partition多,Consumer少:意味着其中一个或多个Consumer要负责多个Partition,会出现消费不平衡的情况(解决方案:将Partition数设置为Consumer数的整数倍,保证每个Consumer分配到相等的Partition数,如Partition数为8,Consumer数为4
  • Partition少,Consumer多:会出现部分Consumer没有分配到Partition而造成浪费
  • Partition和Consumer相等:可以保证Consumer消费的消息是有序的(因为单个Partition下是有序的,但不能保证多个Partition是全局有序的)

文章作者: GaryLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GaryLee !
  目录