kafka 1个consumer 多个partition 只消费一个partition

张映 发表于 2019-05-10

分类目录: hadoop/spark/scala

标签:, ,

一个topic创建了几个partition,启动consumer的时候,只会消费一个partition,消费完了后,会把这个consumer给关闭掉。再启动consumer时,还是只会消费上次消费的那个partition。中间没有任何报错。

1,产生这个问题的原因

consumer启动时,只会消费一个partition,然后不能关闭consumer,然后在进行consumer.poll的时候,就可以从其他partition消费了。

就算consumer不关闭,偶尔也会从一个分区读取数据,consumer,timeout的时候,consumer会自启动,这个时候,也只会从一个分区读取

2,partition和consumer对应规则,总结出来一句话。

consumer对partition,是一对一,一对多都可以

partition对consumer,只能是一对一

如果consumer启动数,大于partition数,肯定有consumer消费不到数据的。

关于网上有的说只消费一个partition,根kafka-clients包版本有关,试了二个版本,发现根版本没关系。



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/hadoop/2135.html

1 条评论

  1. lin 留言

    请问你文章里的“然后不能关闭consumer,然后在进行consumer.poll的时候,就可以从其他partition消费了。”是什么意思?consumer.poll 这个动作,是要怎么实现?我连接kafka,也只能消费到topic里的一个分区。