Chapter 36. Use Red Hat JBoss Data Grid with Google Compute Engine

36.1. The GOOGLE_PING Protocol

GOOGLE_PING is a discovery protocol used by JGroups during cluster formation. It is ideal to use with Google Compute Engine (GCE) and uses Google Cloud Storage to store information about individual cluster members.

36.2. GOOGLE_PING Configuration

36.2.1. GOOGLE_PING Configuration

Red Hat JBoss Data Grid works with Google Compute Engine in the following way:

  • In Library mode, use the JGroups' configuration file default-configs/default-jgroups-google.xml or use the GOOGLE_PING protocol in an existing configuration file.
  • In Remote Client-Server mode, define the properties on the command line when you start the server to use the JGroups Google stack ( see example in Starting the Server in Google Compute Engine).

To configure the GOOGLE_PING protocol to work in Google Compute Engine in Library and Remote Client-Server mode:

  • Use JGroups bucket. These buckets use Google Compute Engine credentials.
  • Use the access key.
  • Use the secret access key.
Note

Only the TCP protocol is supported in Google Compute Engine since multicasts are not allowed.

36.2.2. Starting the Server in Google Compute Engine

This configuration requires access to a bucket that can only be accessed with the appropriate Google Compute Engine credentials.

Ensure that the GOOGLE_PING configuration includes the following properties:

  • the access_key and the secret_access_key properties for the Google Compute Engine user.

Start the Red Hat JBoss Data Grid Server with a Bucket

Run the following command from the top level of the server directory to start the Red Hat JBoss Data Grid server using a bucket:

bin/standalone.sh
  -c cloud.xml
  -Djboss.node.name={node_name}
  -Djboss.socket.binding.port-offset={port_offset}
  -Djboss.default.jgroups.stack=google
  -Djgroups.google.bucket={google_bucket_name}
  -Djgroups.google.access_key={access_key}
  -Djgroups.google.secret_access_key={secret_access_key}
  1. Replace {node_name} with the server’s desired node name.
  2. Replace {port_offset} with the port offset. To use the default ports specify this as 0.
  3. Replace {google_bucket_name} with the appropriate bucket name.
  4. Replace {access_key} with the user’s access key.
  5. Replace {secret_access_key} with the user’s secret access key.

36.3. Utilizing a Static IP Address

While each node in the cluster is able to discover other nodes in the cluster using the GOOGLE_PING protocol, all network traffic is over the internal private network. It is recommended to configure an external static IP address for a single node, so that a consistent address is available for configuring the cluster, such as through the Administration Console, across restarts. If no static address is configured each instance will contain a randomized IP address on its public network whenever it is started.

Full instructions for configuring an external static IP address may be found in Google’s Configuring an Instance’s IP Address documentation.