Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.7K
Vistas
Spring Boot: indicador de salud de Kafka

Tengo algo como a continuación que funciona bien, pero preferiría verificar el estado sin enviar ningún mensaje (no solo verificar la conexión del socket). Sé que Kafka tiene algo como KafkaHealthIndicator listo para usar, ¿alguien tiene experiencia o ejemplo al usarlo?

 public class KafkaHealthIndicator implements HealthIndicator { private final Logger log = LoggerFactory.getLogger(KafkaHealthIndicator.class); private KafkaTemplate<String, String> kafka; public KafkaHealthIndicator(KafkaTemplate<String, String> kafka) { this.kafka = kafka; } @Override public Health health() { try { kafka.send("kafka-health-indicator", "❥").get(100, TimeUnit.MILLISECONDS); } catch (InterruptedException | ExecutionException | TimeoutException e) { return Health.down(e).build(); } return Health.up().build(); } }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

kafkaAdminClient.describeCluster(..) es el punto donde se prueba la disponibilidad de Kafka.

 @Configuration public class KafkaConfig { @Autowired private KafkaAdmin kafkaAdmin; @Bean public AdminClient kafkaAdminClient() { return AdminClient.create(kafkaAdmin.getConfigurationProperties()); } @Bean public HealthIndicator kafkaHealthIndicator(AdminClient kafkaAdminClient) { final DescribeClusterOptions options = new DescribeClusterOptions() .timeoutMs(1000); return new AbstractHealthIndicator() { @Override protected void doHealthCheck(Health.Builder builder) throws Exception { // When Kafka is not connected, describeCluster() method throws // an exception which in turn sets this indicator as being DOWN. kafkaAdminClient.describeCluster(options); builder.up().build(); } }; } }

Para una sonda más detallada, agregue:

 DescribeClusterResult clusterDesc = kafkaAdminClient.describeCluster(options); builder.up() .withDetail("clusterId", clusterDesc.clusterId().get()) .withDetail("nodeCount", clusterDesc.nodes().get().size()) .build();
over 4 years ago · Santiago Trujillo Denunciar

0

Utilice la API de AdminClient para comprobar el estado del clúster describiendo el clúster y/o los temas con los que interactuará y verificando que esos temas tengan la cantidad necesaria de réplicas sincronizadas, por ejemplo.

Kafka tiene algo como KafkaHealthIndicator listo para usar

no lo hace La integración de Spring con Kafka podría

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda