pub struct HttpHealthCheck {
pub consecutive_success: usize,
pub consecutive_failure: usize,
pub peer_template: HttpPeer,
pub reuse_connection: bool,
pub req: RequestHeader,
pub validator: Option<Box<dyn Fn(&ResponseHeader) -> Result<()> + Send + Sync>>,
pub port_override: Option<u16>,
pub health_changed_callback: Option<HealthObserveCallback>,
pub backend_summary_callback: Option<BackendSummary>,
/* private fields */
}Expand description
HTTP health check
This health check checks if it can receive the expected HTTP(s) response from the given backend.
Fields§
§consecutive_success: usizeNumber of successful checks to flip from unhealthy to healthy.
consecutive_failure: usizeNumber of failed checks to flip from healthy to unhealthy.
peer_template: HttpPeerHow to connect to the backend.
This field defines settings like the connect timeout and src IP to bind.
The SocketAddr of peer_template is just a placeholder which will be replaced by the
actual address of the backend when the health check runs.
Set the scheme field to use HTTPs.
reuse_connection: boolWhether the underlying TCP/TLS connection can be reused across checks.
falsewill make sure that every health check goes through TCP (and TLS) handshakes. Established connections sometimes hide the issue of firewalls and L4 LB.truewill try to reuse connections across checks, this is the more efficient and fast way to perform health checks.
req: RequestHeaderThe request header to send to the backend
validator: Option<Box<dyn Fn(&ResponseHeader) -> Result<()> + Send + Sync>>Optional field to define how to validate the response from the server.
If not set, any response with a 200 OK is considered a successful check.
port_override: Option<u16>Sometimes the health check endpoint lives one a different port than the actual backend. Setting this option allows the health check to perform on the given port of the backend IP.
health_changed_callback: Option<HealthObserveCallback>A callback that is invoked when the healthy status changes for a Backend.
backend_summary_callback: Option<BackendSummary>An optional callback for backend summary reporting.
Implementations§
Source§impl HttpHealthCheck
impl HttpHealthCheck
Sourcepub fn new(host: &str, tls: bool) -> Self
pub fn new(host: &str, tls: bool) -> Self
Create a new HttpHealthCheck with the following default settings
- connect timeout: 1 second
- read timeout: 1 second
- req: a GET to the
/of the given host name - consecutive_success: 1
- consecutive_failure: 1
- reuse_connection: false
- validator:
None, any 200 response is considered successful
Sourcepub fn set_connector(&mut self, connector: HttpConnector)
pub fn set_connector(&mut self, connector: HttpConnector)
Replace the internal http connector with the given HttpConnector