JBoss.orgCommunity Documentation
The mod_cluster integration is done via the modcluster subsystem. In AS7 only 1.1.x and later is supported.
The minimal configuration is having the modcluster schemaLocation in the schemaLocation list:
urn:jboss:domain:modcluster:1.0 jboss-mod-cluster.xsd
and the extension module in the extensions list:
<extension module="org.jboss.as.modcluster"/>
and subsystem declaration like:
<subsystem xmlns="urn:jboss:domain:modcluster:1.0"/>
With that configuration modcluster will listen for advertise on 224.0.1.105:23364 use the simple-load-provider with
a load factor of 1.
The attributs correspond to the properties
Proxy Discovery Configuration
| Attribute | Property | Default |
|---|---|---|
| proxy-list | proxyList | None |
| proxy-url | proxyURL | None |
| advertise | advertise | true |
| advertise-security-key | advertiseSecurityKey | None |
| excluded-contexts | excludedContexts | None |
| auto-enable-contexts | autoEnableContexts | true |
| stop-context-timeout | stopContextTimeout | 10 seconds (in seconds) |
| socket-timeout | nodeTimeout | 20 seconds (in milli seconds) |
Proxy Configuration
| Attribute | Property | Default |
|---|---|---|
| sticky-session | stickySession | true |
| sticky-session-remove | stickySessionRemove | false |
| sticky-session-force | stickySessionForce | true |
| node-timeout | workerTimeout | -1 |
| max-attempts | maxAttempts | 1 |
| flush-packets | flushPackets | false |
| flush-wait | flushWait | -1 |
| ping | ping | 10 |
| smax | smax | -1 it uses default value |
| ttl | ttl | -1 it uses default value |
| domain | loadBalancingGroup | None |
| load-balancing-group | loadBalancingGroup | None |
SSL Configuration
SSL configuration part needs to be added here too
The simple load provider always send the same load factor. That is the default one. Example:
<subsystem xmlns="urn:jboss:domain:modcluster:1.0">
<mod-cluster-config>
<simple-load-provider factor="1"/>
</mod-cluster-config>
</subsystem>
| Attribute | Property | Default |
|---|---|---|
| factor | LoadBalancerFactor | 1 |
The dynamic load provide allows to have load-metric as well as custom-load-metric defined. For example:
<subsystem xmlns="urn:jboss:domain:modcluster:1.0">
<mod-cluster-config advertise-socket="mod_cluster">
<dynamic-load-provider history="10" decay="2">
<load-metric type="cpu" weight="2" capacity="1"/>
<load-metric type="sessions" weight="1" capacity="512"/>
<custom-load-metric class="mypackage.myclass" weight="1" capacity="512">
<property name="myproperty" value="myvalue" />
<property name="otherproperty" value="othervalue" />
</custom-load-metric>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>
| Attribute | Property | Default |
|---|---|---|
| history | history | 512 |
| decay | decayFactor | 512 |
The load-metric are the "classes" collecting information to allow computation of the load factor sent to httpd
| Attribute | Property | Default |
|---|---|---|
| type | A Server-Side Load Metrics | Mandatory |
| weight | weight | 9 |
| capacity | capacity | 512 |
| type | Corresponding Server-Side Load Metric |
|---|---|
| cpu | AverageSystemLoadMetric |
| mem | SystemMemoryUsageLoadMetric |
| heap | HeapMemoryUsageLoadMetric |
| sessions | ActiveSessionsLoadMetric |
| requests | RequestCountLoadMetric |
| send-traffic | SendTrafficLoadMetric |
| receive-traffic | ReceiveTrafficLoadMetric |
| busyness | BusyConnectorsLoadMetric |
| connection-pool | ConnectionPoolUsageLoadMetric |
The custom-load-metric are for user defined "classes" collecting information. They are like the load-metric except type
is replaced by class:
| Attribute | Property | Default |
|---|---|---|
| class | Name of your class | Mandatory |
The load-metric have 4 commands to add / remove metrics
Allows to add a load-metric to the dynamic-load-provider
For example:
./:add-metric(type=cpu, weight=2, capacity=1)
Allows to remove a load-metric from the dynamic-load-provider
For example:
./:remove-metric(type=cpu)
Allows to add a load-custom-metric to the dynamic-load-provider
For example:
./:add-custom-metric(class=myclass, weight=2, capacity=1, property=[("pool" => "mypool"), ("var" => "myvariable")])