列出我所有的kafka消费者信息

Listing all my kafka consumers informations

我想列出我所有的kafka消费者并检查他们的状态,组...

在我只使用 spring-kafka 之前,我做了以下操作并且它有效

private final KafkaListenerEndpointRegistry kafkaListenerEndpointRegistry;

var listenerContainers = kafkaListenerEndpointRegistry.getAllListenerContainers();

    listenerContainers.forEach(mlc -> {

        var isRunning = mlc.isRunning();
        var group = mlc.getGroupId()
        // other checks

但是现在当我将 spring-cloud-stream 与 kafka 一起使用时,listenerContainers 是一个空列表!

我怎样才能对 SCS 做同样的事情?

使用 Spring Cloud Stream,添加一个 ListenerContainerCustomizer bean 并捕获每个侦听器容器(例如,将它们存储在列表中)。

List<AbstractMessageListenerContainer<?, ?>> containers = new ArrayList<>();

@Bean
ListenerContainerCustomizer<AbstractMessageListenerContainer<?, ?>> customizer() {
    return (container, dest, group) -> this.containers.add(container);
}