代码如下。查不出数据recods没有内容
Properties props = new Properties();
props.put("bootstrap.servers", bootstrapServers);
props.put("group.id", groupId);
props.put("enable.auto.commit", false);
props.put("auto.commit.interval.ms", "1000");
props.put("session.timeout.ms", "30000");
props.put("max.poll.records", maxPollRecords);
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
//consumer.subscribe(Arrays.asList(topic));
TopicPartition p = new TopicPartition(topic,2);
consumer.assign(Arrays.asList(p));
consumer.seek(p,488430);
//while (true) {
ConsumerRecords<String, String> records = consumer.poll(100);
for (ConsumerRecord<String, String> record : records) {
String V = record.value();
}
// }
https://www.orchome.com/429
我说的不是在正常情况下,无法消费消息。而在指定一个offset的时候。执行完
ConsumerRecords<String, String> records = consumer.poll(100); records里没有数据。 如果不是指定消费的话。还是可以正常取值的
consumer.seek(p,488430);
这句去掉呢?指定的offset位置不在你指定分区上呢?
我确定在这个分区,并且在这个offset上面。这是我在生产端得到的回应。并且前期我也验证过。在生产端得到的回应。和消费端取出的消息是对应的。出就是说在
我的意思是 你不指定offset的时候,能不能消费到
经我在次确认。不指定offset可以正常取值。如果指定offset就没有办法取值了
我怀疑的就是在指定分区的情况,kafka并没有支持这一点。
把while循环打开就可以拿到数据了,反正我是这样实现的!
是可以消费数据。而我发现第一次consumer.poll(100)就取不到的,第二次才可以取到数据。不知道为什么
你的答案