0

我正在运行一个从 spring-cloud 配置服务器获取配置的 spring.boot 应用程序。该应用程序非常简单,一个访问 Oracle 数据库的 rest api。在应用程序上下文中,有一个包裹在 ia Hihari 池中的 Oracle 数据源。

运行 /actuator/health 时,不会触发数据库健康检查。输出:

{
  status: "UP",
  components: {
    clientConfigServer: {
      status: "UP",
      details: {
        propertySources: [
          "configClient",
          "/var/git-repo/xxx/xxx-localhost.yml",
          "/var/git-repo/application-localhost.properties",
          "/var/git-repo/xxx/xxx.yml",
          "/var/git-repo/application.properties"
        ]
      }
    },
    discoveryComposite: {
      description: "Discovery Client not initialized",
      status: "UNKNOWN",
      components: {
        discoveryClient: {
          description: "Discovery Client not initialized",
          status: "UNKNOWN"
        }
      }
    },
    diskSpace: {
      status: "UP",
      details: {
        total: 1587526397952,
        free: 1272794873856,
        threshold: 10485760
      }
    },
    ping: {
      status: "UP"
    },
    refreshScope: {
      status: "UP"
    }
  }
}

但是,如果我关闭配置服务器并通过以下方式使用本地配置: spring.cloud.config.enabled=false 输出为:

{
  status: "UP",
  components: {
    db: {
      status: "UP",
      details: {
        database: "Oracle",
        result: "Hello",
        validationQuery: "SELECT 'Hello' from DUAL"
      }
    },
    discoveryComposite: {
      description: "Discovery Client not initialized",
      status: "UNKNOWN",
      components: {
        discoveryClient: {
          description: "Discovery Client not initialized",
          status: "UNKNOWN"
        }
      }
    },
    diskSpace: {
      status: "UP",
      details: {
        total: 1587526397952,
        free: 1272794869760,
        threshold: 10485760
      }
    },
    ping: {
      status: "UP"
    },
    refreshScope: {
      status: "UP"
    }
  }
}

我确信对此有解释,但我似乎找不到它,所以任何帮助将不胜感激。

4

1 回答 1

0

结果证明斯宾塞吉布是绝对正确的。大约五年前,在常见的 application.properties 中,有人添加了 management.health.db.enabled=false。谜团已揭开。

于 2020-04-02T11:54:40.653 回答