Vereinfachte Version der auf Spring Kafka basierenden Implementierung
[demos/kafka/training] / src / main / java / de / juplo / kafka / ApplicationHealthIndicator.java
index 03a14c8..0466df4 100644 (file)
@@ -3,30 +3,21 @@ package de.juplo.kafka;
 import lombok.RequiredArgsConstructor;
 import org.springframework.boot.actuate.health.Health;
 import org.springframework.boot.actuate.health.HealthIndicator;
-import org.springframework.stereotype.Component;
+import org.springframework.kafka.config.KafkaListenerEndpointRegistry;
 
 
-@Component
 @RequiredArgsConstructor
 public class ApplicationHealthIndicator implements HealthIndicator
 {
-  private final EndlessConsumer<String, Message> consumer;
+  private final String id;
+  private final KafkaListenerEndpointRegistry registry;
 
 
   @Override
   public Health health()
   {
-    try
-    {
-      return consumer
-          .exitStatus()
-          .map(Health::down)
-          .orElse(Health.outOfService())
-          .build();
-    }
-    catch (IllegalStateException e)
-    {
-      return Health.up().build();
-    }
+    return registry.getListenerContainer(id).isRunning()
+        ? Health.up().build()
+        : Health.down().build();
   }
 }