/ / HealthIndicator for Cassandra Modèle - printemps-données, printemps-démarrage, printemps-données-cassandra

HealthIndicator for Cassandra Modèle - printemps-données, printemps-démarrage, printemps-données-cassandra

Je construis un service Web qui expose des donnéesde Cassandra à l'interface RESTful. En outre, l'utilisation de Spring-boot-web pour la partie service REST et de Spring-Boot-Actator pour les fonctionnalités de production, Spring-data-cassandra pour Cassandra Je cherche un HealthIndicator personnalisé (http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html#production-ready-health) pour CassandraTemplate que je peux brancher.

Je n’en ai trouvé aucune dans la documentation Spring-data-cassandra. Avons-nous du sous-développement?

Plus généralement, quelle serait une bonne stratégie pour vérifier la santé de CassandraTemplate?

Réponses:

1 pour la réponse № 1

Ni Spring Boot, ni Spring Data Cassandrafournit un indicateur de santé pour Cassandra hors de la boîte, mais la construction de votre propre est simple. Il vous suffit de créer un nouveau bean HealthIndicator qui interagit avec Cassandra. Par exemple:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health.Builder;
import org.springframework.dao.DataAccessException;
import org.springframework.data.cassandra.core.CassandraOperations;
import org.springframework.stereotype.Component;

@Component
public class CassandraHealthIndicator extends AbstractHealthIndicator {

private final CassandraOperations cassandra;

@Autowired
public CassandraHealthIndicator(CassandraOperations cassandra) {
this.cassandra = cassandra;
}

@Override
protected void doHealthCheck(Builder builder) throws Exception {
try {
this.cassandra.execute("SELECT now() FROM system.local");
builder.up().build();
} catch (DataAccessException ex) {
builder.down(ex).build();
}
}

}

Tant que ce bean existe dans le contexte de votre application, le composant Actionneur de Spring Boot le trouvera et l’utilisera pour déterminer la santé de votre application.

La requête que vous exécutez contre Cassandra peut varier en fonction de vos besoins. La requête utilisée ci-dessus provient de cette réponse à une question sur la réalisation d'un bilan de santé sur Cassandra.


0 pour la réponse № 2

CassandraHealthIndicator est disponible depuis Spring Boot 2.0