У меня есть Kafka Topic (1.0.0) с одним разделом. Потребитель упакован в EAR, и при развертывании в Wildfly 10 опрос последнего сообщения всегда возвращает 0 сообщений. Хотя тема не пустая.
final TopicPartition tp = new TopicPartition(topic, 0);
final Long beginningOffset = consumer.beginningOffsets(Collections.singleton(tp)).get(tp);
final Long endOffset = consumer.endOffsets(Collections.singleton(tp)).get(tp);
consumer.assign(Collections.singleton(tp));
consumer.seek(tp, endOffset - 1);
Когда я делаю опрос, я получаю 0 записей. Хотя в журнале говорится:
Consumer is now at position 377408 while Topic begin is 0 and end is 377409
Когда я изменяю на -2, как:
consumer.seek(tp, endOffset - 2);
Я получаю одно сообщение:
Consumer is now at position 377407 while Topic begin is 0 and end is 377409
Но, конечно, это не правильная запись, ГДЕ сообщение 377408?
Перепробовал много способов добиться конца и т. Д., Но это никогда не срабатывало.
Вот мой конфиг Consumer:
Properties properties = new Properties();
properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, Configuration.KAFKA_SERVERS.getAsString());
properties.put(ConsumerConfig.GROUP_ID_CONFIG, GROUP_ID);
properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, LongDeserializer.class);
properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false");
properties.put(ConsumerConfig.ISOLATION_LEVEL_CONFIG, "read_committed");
Примечание: я пытался с read_uncommitted И read_committed, оба дают одинаковый результат.