Service Description: Load Balancer Status Service
Service name: Load Balancer Status Service
Date: 02 Nov 2017
Short description: Sends back a status response configured for each node in the cluster so the load balancer behavior can be controlled from the gateway.
To meet availability and/or performance requirements, the CA API Gateway can be implemented in a cluster with multiple gateway nodes. As part of the cluster setup, an external load balancer must be configured to direct traffic to the different nodes in the cluster.
In general, a load balancer will check each node for health in combination with a manual configuration to decide if it should send traffic to a node. Most load balancers recognize 3 statuses: healthy, drain and unavailable, which can be either manually configured by the load balancer administrator or automatically triggered by the load balancer based on node status. A healthy node can receive traffic, drain means that existing session can be completed but no new sessions should be sent to a node while an unavailable node should not receive any traffic from the load balancer.
Because the load balancer is usually not maintained by the API Gateway administrators, it will require involvement of an additional person, the load balancer administrator, when doing maintenance with downtime on the cluster nodes. However, if a load balancer supports determining node status based on the content of a http response from each node, a service can be used to control the status on the load balancer. This way an API Gateway administrator can do maintenance on cluster nodes without the need to involve the load balancer administrator.
This service can be used to provide a http response for a health check from a load balancer. By default, it will return a http 200 response code with a plain text message which can be either OK, DRAIN or OFFLINE, depending on the setting which was selected in the policy.
The full documentation with implementation instructions can be found here: Loadbalancer Status Service - V1.0.pdf