WildFly Clustering without Multicast
Jump to navigation
Jump to search
External
- How do I switch clustering to TCP instead of multicast UDP in EAP 6? https://access.redhat.com/solutions/140103
Internal
Procedure
Switch to a "tcp" Default Stack
Manual
Locate the "jgroups" subsystem in standalone.xml or domain.xml relevant profile, and set default-stack value to "tcp":
... <subsystem xmlns="urn:jboss:domain:jgroups:1.1" default-stack="tcp"> ...
CLI
/subsystem=jgroups:write-attribute(name=default-stack,value=tcp)
Note that the operation requires reload, but you should reload the server configuration only after the entire procedure is complete (see reload)
Replace the MPING protocol with TCPPING
Manual
Locate the "tcp" stack inside the "jgroups" subsystem and replace the MPING protocol with TCPPING:
... <stack name="tcp"> <transport type="TCP" socket-binding="jgroups-tcp"/> <protocol type="TCPPING"> <property name="initial_hosts">1.2.3.4[7600],1.2.3.5[7600]</property> <property name="num_initial_members">2</property> <property name="port_range">0</property> <property name="timeout">2000</property> </protocol> <!--<protocol type="MPING" socket-binding="jgroups-mping"/>--> <protocol type="MERGE2"/> ... </stack> ...
If the domain model is used and the same profile is shared by several server groups, the "initial_hosts" property should be set on the server_group, as follows:
... <stack name="tcp"> <transport type="TCP" socket-binding="jgroups-tcp"/> <protocol type="TCPPING"> <property name="initial_hosts">${jboss.cluster.tcp.initial_hosts}</property> ... </protocol> ... </stack> ...
and the server group-specific values for the system property are set in the <server-group> element as follows:
... <server-groups> <server-group name="something" profile="ha"> <socket-binding-group ref="ha-sockets"/> <system-properties> <property name="jboss.cluster.tcp.initial_hosts" value="1.2.3.4[7600],1.2.3.5[7600]" /> </system-properties> </server-group> ,,, <server-groups>
CLI
/subsystem=jgroups/stack=tcp:remove-protocol(type=MPING) /subsystem=jgroups/stack=tcp:add-protocol(type=TCPPING) /subsystem=jgroups/stack=tcp/protocol=TCPPING/property=initial_hosts:add(value="1.2.3.4[7600],1.2.3.5[7600]") /subsystem=jgroups/stack=tcp/protocol=TCPPING/property=num_initial_members:add(value=2) /subsystem=jgroups/stack=tcp/protocol=TCPPING/property=port_range:add(value=0) /subsystem=jgroups/stack=tcp/protocol=TCPPING/property=timeout:add(value=2000)
or
... /subsystem=jgroups/stack=tcp/protocol=TCPPING/property=initial_hosts:add(value="${jboss.cluster.tcp.initial_hosts}")
Note that the operation requires reload (see reload)