问题描述
我有一个由其他人创建的项目。它基本上是从存储装载读取数据,我相信使用netapp。但是,这种解释对我来说还不够详细。
我目前正在尝试在弹簧靴中使用执行器来实现健康状况探针。我为存储装载创建了自定义类,名为StorageMountHealthIndicator
。这是我的配置代码和运行状况指示器代码:
配置:
@Value("#{'${storageMounts.transient}'.split(',\\s*')}")
private List<String> transientStorageMounts;
@Value("#{'${storageMounts.persistent}'.split(',\\s*')}")
private List<String> persistentStorageMounts;
@Value("#{'${storageMounts.cold}'.split(',\\s*')}")
private List<String> coldStorageMounts;
@Bean
public StorageMountHealthIndicator storageMountHealthIndicator() {
List<String> storageMounts = new ArrayList<>(transientStorageMounts);
storageMounts.addAll(persistentStorageMounts);
storageMounts.addAll(coldStorageMounts);
return new StorageMountHealthIndicator(storageMounts);
}
StorageMountHealthIndicator:
@Component
public class StorageMountHealthIndicator implements HealthIndicator {
private static final Logger LOG = LoggerFactory.getLogger(StorageMountHealthIndicator.class);
private final List<String> readableStorageMounts;
private final String message_key = "Storage Mount";
public StorageMountHealthIndicator(final List<String> readableStorageMounts) {
this.readableStorageMounts = readableStorageMounts;
}
@Override
public Health health() {
for (String mount : readableStorageMounts) {
if (!Files.isReadable(Paths.get(mount))) {
LOG.error("Storage mount: {} is not readable",mount);
return Health.down().withDetail(message_key,"Not Available").build();
}
}
return Health.up().withDetail(message_key,"Available").build();
}
private static Boolean isRunningServiceA() {
Boolean isRunning = true;
return isRunning;
}
}
这是我用于本地测试的属性:
...
...
dispatcher.storageMounts.transient=/mnt/i
dispatcher.storageMounts.persistent=/mnt/r,/mnt/s,/mnt/t
dispatcher.storageMounts.cold=/mnt/u,/mnt/v,/mnt/w
当我在本地运行该应用并调用http://localhost:8080/actuator/health
时,它会给我:
...
"storageMount": {
"status": "DOWN","details": {
"Storage Mount": "Not Available"
}
}
...
根据响应,它似乎正在工作。但是,我不知道为什么状态为“ DOWN”,并且不确定如何更改。
通常如何使用netapp和springboot对存储装载进行编码?我对存储挂载非常陌生,对springboot来说也很陌生。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)