[17.0.0.3 and later]

执行 MicroProfile 运行状况检查

配置 mpHealth-1.0 功能部件并实现 HealthCheck 应用程序编程接口 (API),以便在微服务中提供运行状况检查。

关于此任务

运行状况检查是微服务提供的 MicroProfile 运行状况 API 实现。使用运行状况检查可评估服务的运行状况。这些检查主要用作已容器化的环境中的机器到机器机制,例如 Kubernetes 中的活动性检查mpHealth-1.0 功能部件提供了一个 /health 端点,该端点表示已安装的微服务的二进制状态(UPDOWN)。微服务可提供零次或零次以上运行状况检查,并且服务器的总体运行状况是来自每次运行状况检查的状态的聚集。仅当所有运行状况检查都报告正结果时,整体结果才为正。

过程

  1. 配置该功能部件。更新 server.xml 文件以添加该功能部件:
    <featureManager>
       <feature>mpHealth-1.0</feature>
    </featureManager>
  2. 使用 API 来提供您想要执行的运行状况检查:
    @FunctionalInterface
    public interface HealthCheck {
    
        HealthCheckResponse call();
    }

    以下示例说明您可以如何使用 API 进行运行状况检查:

    @Health
    @ApplicationScoped
    public class MyCheck implements HealthCheck {
    
       @Override
       public HealthCheckResponse call() {
            return HealthCheckResponse.named("MyCheck")
                    .withData("key1", "val1")
                    .withData("key2", "val2")
                    .up()
                    .build();
    
       }
    }
    /health 端点发出的 HTTP 请求将返回具有下列其中一个状态码的响应:
    • 代码 200 表示具有正结果的运行状况检查。
    • 代码 503 表示整体结果为负。
    • 代码 500 表示系统无法处理运行状况检查请求。此代码可能指示过程中发生错误。

    响应还包含 JavaScript 对象表示法 (JSON) 有效内容,其中含有运行状况检查的详细信息。以下代码显示一个正结果示例:
    {
     "outcome": "UP",
     "checks": [
        {
          "name": "MyCheck",
          "state": "UP",
          "data: {
            "key": "value",
            "key1": "val1",
            "key2": "val2"
          }
        }
      ]
    }
    以下代码显示一个负结果示例:
    {
     "outcome": "DOWN",
     "checks": [
       {
        "name": "check1",
        "state": "UP"
       },
       {
        "name": "check2",
        "state": "DOWN"
       }
      ]
    }
    如果您配置该功能部件,但未提供任何运行状况检查,那么系统会以代码 200 响应。有效内容包含正结果 UP 以及一组空检查。

用于指示主题类型的图标 任务主题

文件名:twlp_microprofile_healthcheck.html