Chapter 26. Configure JGroups


JGroups is the underlying group communication library used to connect Red Hat JBoss Data Grid instances.

26.1. Configure Red Hat JBoss Data Grid Interface Binding (Remote Client-Server Mode)

26.1.1. Interfaces

Red Hat JBoss Data Grid allows users to specify an interface type rather than a specific (unknown) IP address.
  • link-local: Uses a 169.x.x.x or 254.x.x.x address. This suits the traffic within one box.
    <interfaces>
        <interface name="link-local">
            <link-local-address/>
        </interface>
        ...
    </interfaces>
  • site-local: Uses a private IP address, for example 192.168.x.x. This prevents extra bandwidth charged from GoGrid, and similar providers.
    <interfaces>
        <interface name="site-local">
            <site-local-address/>
        </interface>
        ...
    </interfaces>
  • global: Picks a public IP address. This should be avoided for replication traffic.
    <interfaces>
        <interface name="global">
            <any-address/>
        </interface>
        ...
    </interfaces>
  • non-loopback: Uses the first address found on an active interface that is not a 127.x.x.x address.
    <interfaces>
        <interface name="non-loopback">
            <not>
    	    <loopback />
    	</not>
        </interface>
    </interfaces>

26.1.2. Binding Sockets

Socket bindings provide a named the combination of interface and port. Sockets can be bound to the interface either individually or using a socket binding group.

26.1.2.1. Binding a Single Socket Example

The following is an example depicting the use of JGroups interface socket binding to bind an individual socket using the socket-binding element.

Example 26.1. Socket Binding

<socket-binding name="jgroups-udp" ... interface="site-local"/>

26.1.2.2. Binding a Group of Sockets Example

The following is an example depicting the use of Groups interface socket bindings to bind a group, using the socket-binding-group element:

Example 26.2. Bind a Group

<socket-binding-group name="ha-sockets" default-interface="global"> 
	...
	<socket-binding name="jgroups-tcp" port="7600"/>
	<socket-binding name="jgroups-tcp-fd" port="57600"/>
	...
</socket-binding-group>
The two sample socket bindings in the example are bound to the same default-interface (global), therefore the interface attribute does not need to be specified.

26.1.3. Configure JGroups Socket Binding

Each JGroups stack, configured in the JGroups subsystem, uses a specific socket binding. Set up the socket binding as follows:

Example 26.3. JGroups Socket Binding Configuration

<subsystem xmlns="urn:jboss:domain:jgroups:1.2" default-stack="udp">
    <stack name="udp">
        <transport type="UDP" socket-binding="jgroups-udp">
            ...
        </transport>
        <!-- rest of protocols -->
    </stack>
</subsystem>

Important

When using UDP as the JGroups transport, the socket binding has to specify the regular (unicast) port, multicast address, and multicast port.
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.