THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
What is
...
HTTP Health Checking for?
- Http HTTP Health Checking is a Layer 7 health check method, it need make makes a special http HTTP request to the origin server, and check the result for good healthychecking for a well defined healthy result, typically for http HTTP response code.
- why Why is L7 health checking is required?
- maintenance requirement: now a daysnowadays, most site sites have more than one origin servers server for load balancing and service redundancy. but as servers is expect As servers are expected to have maintenance down-times, there need needs to be a good way to pull down some server off the service in a way that is easy to manage/change.
- service broken: when there is chance that when the L4 port is open but you can still not get any http HTTP request handled.
- backend back-end service broken: when your origin server using a LAMP like system , and when your mysql MySQL is down, you will sure probably get bad result. that is not what you want anyway.
What
...
has been done in TS?
- L4 health checking:
- when failed in connection/reading/writing, it will trigger up the L4 fail function
- the failed host will be put into the ring to retry, after the failure timeouts
- L4 health status stored in hostdbHostDB
- hostdb HostDB information sharing in the cluster sharing, when enabled
What do we need to do
...
implement
...
for L7 checking?
- in the beginning we'll start off by using HTTP services, excluding raw-link services like HTTPS.
- We'll merge it into the server-session
- first we just take http service, not include raw link like https.
- merge in serversession manager
- L7 status store in hostdbinfo will be stored in HostDB info struct
- We must reuse server session as much as possible.
- We'll create a a dedicated config-make dedicate config file, with a config mapped to mapped the origin hostname
- L7 health checking should be start triggered by user a request on the the origin hostname
- Like with L4 health-checks, it should should be able possible to store a hashed L7 status in the cluster env, sharing status in ENV, and share it in the cluster.