获取 Consumer 的 group.id
当在多个容器中运行相同的监听器代码时,能够确定一条记录来自哪个容器(以其 group.id consumer 属性标识)可能会很有用。
你可以在监听器线程上调用 KafkaUtils.getConsumerGroupId() 来做到这一点。或者,你也可以在方法参数中访问 group id。
@KafkaListener(id = "id", topics = "someTopic")
public void listener(@Payload String payload, @Header(KafkaHeaders.GROUP_ID) String groupId) {
...
}
important
这在接收 List<?> 记录的记录监听器和批监听器中可用。它不在接收 ConsumerRecords<?, ?> 参数的批监听器中可用。在那种情况下,请使用 KafkaUtils 机制。