[17.0.0.3 and later]

MicroProfile 상태 검사 수행

mpHealth-1.0 기능을 구성하고 HealthCheck API(Application Programming Interface)를 구현하여 마이크로서비스에 상태 검사를 제공합니다.

이 태스크 정보

상태 검사는 마이크로서비스에서 제공하는 MicroProfile 상태 API 구현입니다. 상태 검사를 사용하여 서비스의 상태를 평가하십시오. 이러한 검사는 주로 컨테이너 환경(예: Kubernetes의 활동성 검사)에서 머신 대 머신 메커니즘으로 수행됩니다. mpHealth-1.0 기능은 설치된 마이크로서비스의 2진 상태(UP 또는 DOWN)를 나타내는 /health 엔드포인트를 제공합니다. 마이크로서비스는 0개 이상의 상태 검사를 제공할 수 있으며, 서버의 전체 상태는 각 상태 검사에서 상태를 집계한 것입니다. 전체 결과는 모든 상태 검사가 정상적인 결과를 보고하는 경우에만 긍정적입니다.

프로시저

  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은 시스템이 상태 검사 요청을 처리할 수 없음을 나타냅니다. 이 코드는 프로시저의 오류를 나타낼 수 있습니다.

    응답에는 상태 검사의 세부사항이 포함된 JSON(JavaScript Object Notation) 페이로드도 포함되어 있습니다. 다음 코드는 정상적인 결과의 예를 표시합니다.
    {
     "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