Hands-On Enterprise Java Microservices with Eclipse MicroProfile
上QQ阅读APP看书,第一时间看更新

Understanding health checks and how MicroProfile handles them

In cloud-native architectures, health checks are used to determine whether a computing node is alive and ready to perform work. The concept of readiness describes the state when containers start up or roll over (that is, redeployment). During this time, the cloud platform needs to ensure that no network traffic is routed to that instance before it is ready to perform work.

Liveness, on the other hand, describes the state of a running container; that is, can it still respond to requests? If either the liveness or readiness states are seen as invalid, the computing node will be discarded (terminated or shut down) and eventually replaced by another, healthy, instance.

Health checks are an essential contract with the orchestration framework and scheduler of the cloud platform. The check procedures are provided by the application developer and the platform uses these to continuously ensure the availability of your application or service.

MicroProfile Health Check 1.0 (MP-HC) supports a single health check endpoint that can be utilized for either a liveness or readiness check. MicroProfile Health Check 2.0 plans to add support for multiple endpoints to allow an application to define both liveness and readiness probes.

The MP-HC specification details two elements: a protocol along with a response wire format part and a Java API for defining the response content.

The architecture of the MP-HC feature is modeled as an application that consists of zero or more health check procedures that are logically linked together with AND to derive the overall health check status. A procedure represents an application-defined check of a required condition that has a name, state, and, optionally, data about the check.