弹簧引导中的存储安装如何工作?

问题描述

我有一个由其他人创建的项目。它基本上是从存储装载读取数据,我相信使用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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...