Spring Boot 和 Spring Data Cassandra 都没有为 Cassandra 提供开箱即用的 HealthIndicator,但构建你自己的很简单。您只需要创建一个与 Cassandra 交互的新 HealthIndicator bean。例如:
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();
}
}
}
只要此 bean 存在于您的应用程序上下文中,Spring Boot 的 Actuator 组件就会在确定应用程序的健康状况时找到并使用它。
您对 Cassandra 执行的确切查询可能因您的要求而异。上面使用的查询取自这个关于在 Cassandra 上执行健康检查的问题的答案。