Re: mod_proxy / mod_proxy_balancer
Jess Holle <jessh(a)ptc.com>
Wed, 06 May 2009 08:07:27 -0500
jean-frederic clere wrote:
>> Should general support for a query URL be provided in
>> mod_proxy_balancer? Or should this be left to mod_cluster?
> Can you explain more? I don't get the question.
What I mean is
1. Should mod_proxy_balancer be extended to provide a balancer
algorithm in which one specifies a backend URL that will provide a
single numeric health metric, throttle the number of such requests
via a time-to-live associated with this information, and balance
on this basis or
mod_heartmonitor.c does a heartbeat logic.
2. Should mod_cluster handle this issue?
mod_manager of mod_cluster fills the nodes tables with the load
information from the cluster.
3. Or both?
* For instance, mod_cluster might leverage special nuances in
AJP, JBoss, and Tomcat, whereas mod_proxy_balancer might
provide more generic support for helath checks on any back
end server that can expose a health metric URL.
In mod_cluster we use another connection to receive the information from
the cluster. The STATUS message gives httpd the loadfactor and is used
to check the connection between httpd and the node.
>From your response below, it sounds like you're saying it's #2, which
is /largely /fine and good -- but this raises questions:
1. How general is the health check metric in mod_cluster?
* I only care about Tomcat backends myself, but control over
the metric would be good.
The metric is in the AS cluster logic, we plan to have something in Tomcat.
2. Does this require special JBoss nuggets in Tomcat?
* I'd hope not, i.e. that this is a simple matter of a
pre-designated URL or a very simple standalone socket protocol.
The communication between the nodes AS cluster logic and cant be use
easily on Tomcat. The MCMP protocol between httpd and AS is an http
3. When will mod_cluster support health metric based balancing of
In the next version we will have something.
4. How "disruptive" to an existing configuration using
mod_proxy_balancer/mod_proxy_ajp is mod_cluster?
* How much needs to be changed?
mod_proxy_ajp/mod_proxy_http is the transport part.
mod_cluster tries to be a zero configuration module. Basicly you just
needto comment out the mod_proxy_balancer definition and add some
LoadModule directives, add a virtual host to receive the MCMP messages
and that is it.
5. How portable is the mod_cluster code?
* Does it build on Windows? HPUX? AIX?
Windows, HPUX bundles are already produced today, I don't except
problems in AIX. I will just try it and give you feedback.
I say this is largely fine and good as I'd like to see just the
health-metric based balancing algorithm in Apache 2.2.x itself.
>> Does mod_cluster provide yet another approach top to bottom (separate
>> than mod_jk and mod_proxy/mod_proxy_ajp)?
Everything is created from shared memory areas.
> Mod_cluster is just a balancer for mod_proxy but due to the
> creation of balancers and workers it can't get in the httpd-trunk code
> right now.
Well we used a modified httpd-2.2.x/modules/proxy and we have rewritten
part of the logic that creates the workers and the balancers.