java - Spring Couchbase 健康指示器

标签 java spring couchbase indicator health-monitoring

我在为 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/

相关文章:

java.io.FileNotFoundException : class path resource can't be opened

eclipse - 与服务器通信失败 : 500 Internal server error and no log files

node.js - 认证失败。 couchbase 中的 OpenBucket

java - 操作++/-- 的参数无效

java - 将 JSON 反序列化为 transient 字段

java - 格式化 100 以下的数字,前面加 0

java - 已被 CORS 策略阻止 : Response to preflight request doesn't pass

java - Spring Boot "debug"配置属性设置了什么?

json - N1QL - 在 CouchBase 中查询多级嵌套的 JSON 数据

Couchbase Sync Gateway - 获取文档的先前修订版?