mod_proxy
This proxy can either use HTTP or AJP for routing request
from Apache to JBoss. The advantage of mod_proxy is that it is available as a
built in module in Apache 2.x versions.
Advantage:
- No need to compile and maintain an opposite module. Mod_proxy, mod_proxy_http, mod_proxy_ajp, mod_proxy_balancer is Apache 2.2+ standard integrated part,
- You can use the HTTP, HTTPS and AJP protocols, even in the same balancer.
Inferiority:
- Mod_proxy_ajp does not support more than 8K data packet,
- Only the most basic load balancer,
- Does not support domain model cluster(domain model clustering)
mod_jk
Mod_jk is based on the AJP protocol, mod_jk connector is an
Apache module specifically written by Tomcat team. This module routes the
Apache to JBoss request via the AJP (Apache Jserv Protocol).
Advantage:
- The load balancer advanced,
- Advanced node failure detection function,
- Support for large-scale AJP packet
- The need for a separate maintenance of an independent module,
mod_cluster
mod_cluster is an httpd-based load balancer. Like mod_jk and
mod_proxy, mod_cluster uses a communication channel to forward requests from
httpd to one of a set of application server nodes. Unlike mod_jk and mod_proxy,
mod_cluster leverages an additional connection between the application server
nodes and httpd. The application server nodes use this connection to transmit
server-side load balance factors and lifecycle events back to httpd via a
custom set of HTTP methods, affectionately called the Mod-Cluster Management
Protocol (MCMP). This additional feedback channel allows mod_cluster to offer a
level of intelligence and granularity not found in other load balancing
solutions.
Advantages:
- Dynamic configuration of httpd workers
Traditional httpd-based load balancers require explicit
configuration of the workers available to a proxy. In mod_cluster, the bulk of
the proxy's configuration resides on the application servers. The set of
proxies to which an application server will communicate is determined either by
a static list or using dynamic discovery via the advertise mechanism. The
application server relays lifecycle events (e.g. server startup/shutdown) to
the proxies allowing them to effectively auto-configure themselves. Notably,
the graceful shutdown of a server will not result in a failover response by a
proxy, as is the case with traditional httpd-based load balancers.
- Server-side load balance factor calculation
In contrast with traditional httpd-based load balancers,
mod_cluster uses load balance factors calculated and provided by the
application servers, rather than computing these in the proxy. Consequently,
mod_cluster offers a more robust and accurate set of load metrics than is
available from the proxy. (see Load Metrics for more)
- Fine grained web-app lifecycle control
Traditional httpd-based load balancers do not handle web
application undeployments particularly well. From the proxy's perspective
requests to an undeployed web application are indistinguishable from a request
for an non-existent resource, and will result in 404 errors. In mod_cluster,
each server forwards any web application context lifecycle events (e.g. web-app
deploy/undeploy) to the proxy informing it to start/stop routing requests for a
given context to that server.
- AJP is optional
No comments:
Post a Comment