Kafka topic中有数据,但是消费者poll不到数据,重启下就可以poll到数据,想问下是什么原因

奥维尔的教堂 发表于: 2019-09-12   最后更新时间: 2019-09-12 17:39:46   4,181 游览
发表于 2019-09-12
添加评论

兄弟 你得提供一些代码呀

Properties props = new Properties();
  props.put("max.partition.fetch.bytes", "1048576");
  props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); 
  props.put("auto.offset.reset", "latest");
  props.put("request.timeout.ms", "100000"); 
  props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
  props.put("group.id", "DataTMR_hbase");
  props.put("enable.auto.commit", "false");
  props.put("bootstrap.servers", "xxxxxx");
  Consumer<string,string> consumer = new KafkaConsumer<string,string>(props);
  consumer.subscribe(topicnamelist);
  whiletrue){
            ConsumerRecords<string,string> consumerRecords = consumer.poll(1000);
  }
}

代码主要就是这段

还有个问题想请教下 ,一个topic有三个分区,我创建了一个consumer去poll数据,然后放进queue队列里面,多线程消费这个队列。我想改成三个consumer去消费,如果用subscribe订阅,会不会造成reblance

poll的时间也太长了,关注下手动提交offset的逻辑,是这个导致的,你可以先改成自动提交测试一下。
参考:https://www.orchome.com/451

刚启动subscribe的时,消费者组内进行rebalance,不会影响你的性能的。

好的 我先试下 有疑问在请教你

你的答案

查看kafka相关的其他问题或提一个您自己的问题