12.8. 사용자 정의 상태 점검 추가
Karaf 서버가 요청을 처리할 준비가 되었기 전에 사용자 트래픽을 수신하지 못하도록 추가 사용자 정의 heath 검사를 제공할 수 있습니다. 사용자 정의 상태 점검을 사용하려면 io.fabric8.karaf.checks.HealthChecker
또는 io.fabric8.karaf.checks.ReadinessChecker
인터페이스를 구현하고 OSGi 레지스트리에 해당 오브젝트를 등록해야 합니다.
절차
pom.xml
파일에 다음 mvn 종속성을 추가합니다.pom.xml
<dependency> <groupId>io.fabric8</groupId> <artifactId>fabric8-karaf-checks</artifactId> </dependency>
참고OSGi 레지스트리에서 오브젝트를 생성하고 등록하는 가장 간단한 방법은 SCR을 사용하는 것입니다.
예제
사용 가능한 디스크 공간이 있는지 확인하기 위해 상태 점검을 수행하는 예는 다음과 같습니다.
import io.fabric8.karaf.checks.*; import org.apache.felix.scr.annotations.*; import org.apache.commons.io.FileSystemUtils; import java.util.Collections; import java.util.List; @Component( name = "example.DiskChecker", immediate = true, enabled = true, policy = ConfigurationPolicy.IGNORE, createPid = false ) @Service({HealthChecker.class, ReadinessChecker.class}) public class DiskChecker implements HealthChecker, ReadinessChecker { public List<Check> getFailingReadinessChecks() { // lets just use the same checks for both readiness and health return getFailingHeathChecks(); } public List<Check> getFailingHealthChecks() { long free = FileSystemUtils.freeSpaceKb("/"); if (free < 1024 * 500) { return Collections.singletonList(new Check("disk-space-low", "Only " + free + "kb of disk space left.")); } return Collections.emptyList(); } }