mod_cluster first spec documentation is mod_jk oriented in the node description mod-cluster document.
mod_cluster should be based on mod_proxy and logic to guess the cluster configuration is not needed. Let's going through the worker ajp13 parameter and see what to do.
The worker parameters are listed on http://tomcat.apache.org/connectors-doc/reference/workers.html only the ajp13-type worker directives make sense for us.
In bold The parameters will be added to mod_jk existing worker parameters.
General node definition:
host that is host of BalancerMember
http://host:port
port that is port of BalancerMember
http://host:port
type that is the scheme used ajp, http or https. (type already exists in mod_jk but that is not the scheme and only ajp scheme was supported).
route that is the JvmRoute. In mod_jk that is the name of the node.
socket_timeout that could be ProxyTimeout or timeout of proxy backend parameters.
socket_keepalive that is keepalive of proxy backend parameters.
pool/opened connection directives.
The mod_proxy directives are more accurate for mod_cluster than the mod_jk ones:
connection_pool_size that is max of proxy backend parameters.
connection_pool_minsize that is min of proxy backend parameters.
connection_pool_timeout that is ttl of proxy backend parameters
We will use:
min Minumum number of connections that will always be kept open to the backend server.
max We probably shouldn't document it because it often causes problems at customer.
smax Soft Maximum number of connections will be created on demand. Any connections above smax are subject to a time to ttl.
acquire Maximum time to wait for a free connection in the connection pool. If there are no free connections in the pool the httpd will reject the connection.
ttl Time To Live for the inactive connections above the smax connections in seconds. httpd will close all connections that have not been used inside that time period.
timeout directives.
connect_timeout that is timeout of proxy backend parameters. (Defaut to ProxyTimeout and then to server TimeOut directive).
prepost_timeout that is ping of proxy backend parameter.
reply_timeout like connect_timeout.
error handling directives;
retries NOT USED.
recovery_options NOT USED.
fail_on_status NOT USED.
recovery_options NOT USED.
fail_on_status NOT USED.
Existing mod_proxy code will be changed to allow one retry if ping/pong it will use the next node if ping/pong still fails.
503 be returned if the request can't be forwarded to any nodes.
packet size definition
max_packet_size that is iobuffersize of proxy backend parameter.
other directives:
max_reply_timeouts NOT USED.
secret NOT USED that doesn't increase the security of the connection only SSL would be a safe option.
routing directives:
domain The logic has to be added in mod_cluster code (See CONFIG in http://wiki.jboss.org/wiki/Wiki.jsp?page=Mod-Cluster_Management_Protocol)
distance NOT USED. The logic in the cluster to calculate load factor the should allow that.
redirect that will be the redirect proxy backend parameters (failover node). Even if the logic in the cluster could trigger it via the load factor in a domain that is usefull feature.
sticky_session whether sticky sessions should be used
sticky_session_force whether failover should be disallowed once a session is established
sticky_id That is the stickysession mod_proxy that allow to change the name of parameter or the cookie containing the sessionid information.
Comments