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