使用 KafkaTemplate
接收
本节介绍如何使用 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
时,仅支持正的、绝对的偏移量。