Obtaining the Consumer group.id

在多个容器中运行相同的侦听器代码时,可能需要确定记录来自哪个容器(由其 group.id 消费者属性标识)。

你可以在侦听器线程上调用 KafkaUtils.getConsumerGroupId() 来执行此操作。或者,你可以在方法参数中访问组 ID。

@KafkaListener(id = "id", topicPattern = "someTopic")
public void listener(@Payload String payload, @Header(KafkaHeaders.GROUP_ID) String groupId) {
    ...
}

在接收记录 List<?> 的记录侦听器和批处理侦听器中,这一点是可用的。它在接收 ConsumerRecords<?, ?> 参数的批处理侦听器中是 not 可用的。在这种情况中,使用 KafkaUtils 机制。