On Nov 14, 2012, at 5:19 PM, Ask Bjørn Hansen <a...@develooper.com> wrote:
> > On Nov 14, 2012, at 11:01, Tim Bannister <is...@jellybaby.net> wrote: > >>> I really like how Perlbal does it: >>> >>> It opens a connection when it thinks it needs more and issues a (by >>> default, it's configurable) "OPTIONS *" request and only after getting a >>> successful response to the test will it send real requests on that >>> connection (and then it will keep the connection open with Keep-Alive for >>> further requests). >> >> X-Server-Load: would still be an improvement, eg with this response to >> OPTIONS: >> HTTP/1.1 200 OK >> Date: Wed, 14 Nov 2012 19:00:00 GMT >> Server: Apache/2.5.x >> X-Server-Load: 0.999 >> >> …the balancer might decide to use a backend that is reporting a lower load. > > I know I am fighting the tide here, but it's really the wrong smarts to put > in the load balancer. > > The backend should/can know if it can take more requests. When it can't it > shouldn't and the load balancer shouldn't pass that back to the end-user but > rather just find another available server or hold on to the request until one > becomes available (or some timeout value is met if things are that bad). > Without a doubt, I agree that the load info should not be passed back to the end user (I state as much in the blog).