Using KafkaTemplate to Receive

本部分介绍如何使用 KafkaTemplate 来接收消息。

从 2.8 版开始,该模板有四个 receive() 方法:

ConsumerRecord<K, V> receive(String topic, int partition, long offset);

ConsumerRecord<K, V> receive(String topic, int partition, long offset, Duration pollTimeout);

ConsumerRecords<K, V> receive(Collection<TopicPartitionOffset> requested);

ConsumerRecords<K, V> receive(Collection<TopicPartitionOffset> requested, Duration pollTimeout);

如您所见,您需要知道您需要检索的记录的分区和偏移量;为每个操作创建(并关闭)一个新的 Consumer

使用最后两个方法,会分别检索每条记录,并将结果组合到 ConsumerRecords 对象中。在为请求创建 TopicPartitionOffset 时,仅支持正绝对偏移量。