【发布时间】:2019-10-23 22:50:45
【问题描述】:
我是 Apache Kafka 的新手,正在探索 SimpleConsumer 以读取来自该主题的消息。
我使用下面的代码来做同样的事情,
FetchRequestBuilder builder = new FetchRequestBuilder();
FetchRequest fetchRequest = builder.addFetch(topic, partitionId, offset, 1024).build();
FetchResponse fetchResponse;
try {
fetchResponse = consumer.fetch(fetchRequest);
} catch (Exception e) {}
这会读取特定分区中的所有可用消息;我想设置要阅读的最大消息数。在这个阶段有没有办法做到这一点?当队列中有大量消息时,我不希望所有消息都落在 JVM 堆中。
另一个问题,
以下代码返回一个 ByteBufferMessageSet。
fetchResponse.messageSet(topic, partitionId);
这是否意味着并非所有可用的消息都真正进入内存?
【问题讨论】:
标签: java memory apache-kafka kafka-consumer-api