gpt4 book ai didi

java - Spring Couchbase 健康指示器

转载 作者:太空宇宙 更新时间:2023-11-04 12:01:04 24 4
gpt4 key购买 nike

我在为 Spring 项目设置运行状况指示器时遇到问题。由于版本 1.4.0 Spring 附带了自己的 CouchbaseHealthIndicator (请参阅 http://docs.spring.io/spring-boot/docs/1.4.1.RELEASE/api/org/springframework/boot/actuate/health/CouchbaseHealthIndicator.html ),但我无法使其工作。其他健康指标运行良好(本项目中的磁盘空间,其他项目中的邮件和数据库)。

@ConditionalOnClass({ CouchbaseOperations.class, Bucket.class })
@ConditionalOnBean(CouchbaseOperations.class)
@ConditionalOnEnabledHealthIndicator("couchbase")

这是健康指示器初始化的条件。提到的类位于类路径中。项目启动后,我让它打印其应用程序上下文中的 bean - 有一个 bean 'CouchbaseTemplate',它实现了所需的 CouchbaseOperations。

我还像这样手动启用了 couchbase 健康检查

management.health.couchbase.enabled = true

尽管如此,它仍然会检查磁盘空间,而不检查沙发底座。

您可以在 GitHub 上找到我的项目:https://github.com/Age15990/CouchbaseHI请随时下载并尝试。如果您以前遇到过这个问题或者您知道如何解决它,我很乐意阅读您的答案。

提前致谢!

最佳答案

spring-boot-starter-actuator 似乎存在缺陷。我为此提交了一张票here .

解决方法可能是您自己提供配置:

@Configuration
@ConditionalOnClass({ CouchbaseOperations.class, Bucket.class })
//@ConditionalOnBean(CouchbaseOperations.class)
@ConditionalOnEnabledHealthIndicator("couchbase")
public class CouchbaseHealthConfig extends CompositeHealthIndicatorConfiguration<CouchbaseHealthIndicator, CouchbaseOperations>
{
private final Map<String, CouchbaseOperations> couchbaseOperations;

public CouchbaseHealthConfig(Map<String, CouchbaseOperations> couchbaseOperations)
{
this.couchbaseOperations = couchbaseOperations;
}

@Bean
@ConditionalOnMissingBean(name = "couchbaseHealthIndicator")
public HealthIndicator couchbaseHealthIndicator()
{
return createHealthIndicator(this.couchbaseOperations);
}
}

说明:

沙发底座运行状况指示器的自动配置似乎已损坏。当我从 HealthIndicatorAutoConfiguration.class 中的原始配置中注释掉 @ConditionalOnBean(CouchbaseOperations.class) 时,它对我有用。

这意味着 CouchbaseOperations.class 在自动配置发生之前未正确初始化。

关于java - Spring Couchbase 健康指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40905089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com