获取 ConcurrentMessageListenerContainer 当前正在处理的所有分区列表的推荐方法是什么

What is the recommended way to obtain a list of all partitions that a ConcurrentMessageListenerContainer is currently handling

我正在寻找 best/recommended 方法来获取 ConcurrentMessageListenerContainer 在阅读主题时正在使用的分区列表。目前我正在手动执行此操作,通过实现 ConsumerAwareRebalanceListener 来跟踪 assignments/revocations 但我想知道是否没有 better/simpler 方法来实现此目的。

目标是在应用程序中使用此信息,因此我始终需要最新的分区列表。查看 API 的 ConcurrentMessageListenerContainer,我看是暴露了 getAssignedPartitions().

有人问过类似的问题here,但直到现在还没有公认的答案。

如果您的 ConcurrentMessageListenerContainerKafkaListenerEndpointRegistry 管理,您可以使用 KafkaListenerEndpointRegistry 通过容器的 ID 获取有关您的侦听器容器的信息,并且您可以看到 ContainerPropertiesAssignedPartitions,... 这个侦听器容器。

使用 KafkaListenerEndpointRegistry 的示例:https://docs.spring.io/spring-kafka/docs/current/reference/html/#pause-resume