kafka Rebalance

发生的情况:
1.消费组订阅了新的主题
2.消费组增加或减少了消费者
3.消费组订阅的主题修改了分区数量

如何判断有没有发生Rebalance呢?

检查消费组对应的broker日志,有没有类似于"(Re)join group" 之类的日志

如何给消费者分配分区呢
1.每个broker都有一个协调者组件,由协调者组件来分配,分配的策略可以配置在消费者参数里。
2.根据消费组id的hashcode来对位移主题分区数取余,得到的分区所在的broker即为这个消费组的协调者。

当kafka有第一个消费者时会自动创建位移主题:__consumer_offsets
broker端参数:

  • Kafka 自动创建的分区数
    offsets.topic.num.partitions 默认50
  • Kafka 自动创建的副本数
    offsets.topic.replication.factor 默认3

如果是自动提交位移,enable.auto.commit = true;consumer会根据 auto.commit.interval.ms这个配置一直写消息。会有一个Log Cleaner的线程去定期的Compact这些消息,即只保留最新的偏移量。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容