Chapter 4. Clustering with Red Hat Decision Manager for design-time development environments

Note

This section is specifically intended for Decision Central development environments where you want to cluster the Git repository. It is not necessary to create a clustered environment for Decision Server production environments.

Red Hat recommends that you consider clustering two or more computers to create a high availability clustered environment for design-time development environments. Doing this enhances collaboration and provides high availability.

For example, if clustering is configured and Developer X is authoring rules on Decision Central Node1 then Developer Y, who is working on Decision Central Node2, can see the rules authored by Developer X as they are created. Furthermore, all of the developers working on individual nodes of the cluster will see the same synchronized content.

In addition, clustering provides high availability in the rules development environment. If Developer X is working on Node1 and that node fails, Developer X’s work is preserved and visible on any other node of the cluster.

The following sections describe how to create a clustered Red Hat Decision Manager environment.

4.1. Setting up Elasticsearch

Elasticsearch is a highly scalable open source full-text search and analytics engine. It enables you to store, search, and analyze high volumes of data quickly and in near real time. In a Red Hat Decision Manager clustered environment, it enables you to perform complex and efficient searches across nodes. Set up Elasticsearch on the main node of the cluster.

Procedure

  1. Download and unzip the Elasticsearch installation file.
  2. Replace the contents of the elasticsearch/config/elasticsearch.yml file as follows, where <MAIN_NODE_IP> is the IP address of the main node of the cluster:

    cluster.name: kie-cluster
    transport.host: <MAIN_NODE_IP>
    http.host: <MAIN_NODE_IP>
    transport.tcp.port: 9300
    xpack.security.enabled: false
    discovery.zen.minimum_master_nodes: 1
  3. Install the following plug-in:

    • On Linux or UNIX-based systems, enter:

      ./bin/elasticsearch-plugin install x-pack
    • On Windows, enter:

      bin\elasticsearch-plugin.bat install x-pack
  4. Run Elasticsearch on the main node:

    • On Linux or UNIX-based systems, enter:

      ./bin/elasticsearch

      On Windows, enter:

      bin\elasticsearch.bat

4.2. Activating ActiveMQ JMS broker

After you install Elasticsearch, you must activate ActiveMQ JMS broker on the main node of the cluster.

Prerequisite

Elasticsearch installed on the main node of the cluster

Procedure

  1. Add the following properties to the EAP_HOME/standalone/configuration/standalone.xml file:

    • Add <socket-binding name="activemq" port="61616"/> to the socket-binding-group element.
    • Add <remote-acceptor name="activemq-acceptor" socket-binding="activemq"/> in <server name="default"> of the messaging-activemq subsytem element.
  2. Complete the steps in Section 4.3, “Installing Decision Central on cluster nodes” on each node of the cluster.

4.3. Installing Decision Central on cluster nodes

Complete the steps in this section to install and run Decision Central on each node of the cluster.

Prerequisites

  • An NFS-mounted directory available which all Red Hat Decision Manager nodes can access
  • Elasticsearch installed on the main node of the cluster
  • ActiveMQ JMS broker activated on the main node of the cluster

Procedure

  1. Install Decision Central on each node of the cluster. See Chapter 2, Installing Red Hat Decision Manager for information about installing Decision Central.
  2. Edit the following properties in the ./standalone.xml file, where:

    • <MAIN_NODE> is the IP address of the main node of the cluster
    • <JMS_BROKER_USER> is a username for the JMS broker
    • <JMS_BROKER_PASSWORD> is a password for the JMS broker

      <system-properties>
        <property name="org.uberfire.nio.git.dir" value="
            <niogit_dir_on_shared_nfs>"/>
        <property name="appformer-cluster" value="true"/>
        <property name="appformer-jms-url" value="tcp://<MAIN_NODE_IP>:61616"/>
        <property name="appformer-jms-username" value="<JMS_BROKER_USER>"/>
        <property name="appformer-jms-password" value="<JMS_BROKER_PASSWORD>"/>
        <property name="org.appformer.ext.metadata.index" value="elastic"/>
        <property name="org.appformer.ext.metadata.elastic.port" value="9300"/>
        <property name="org.appformer.ext.metadata.elastic.host"
            value="<MAIN_NODE_IP>"/>
        <property name="org.appformer.ext.metadata.elastic.cluster"
            value="kie-cluster"/>
        <property name="org.appformer.ext.metadata.elastic.retries" value="10"/>
      </system-properties>
  3. On the main node of the cluster, in Red Hat JBoss EAP create a user with the admin role and a username and password that matches the values of <JMS_BROKER_USER> and <JMS_BROKER_PASSWORD> that you created in the previous step:

    $ <MAIN_NODE_EAP_HOME>/bin/./add-user.sh -a --user <JMS_BROKER_USER> --password <JMS_BROKER_USER> --role admin
  4. To start Decision Central, enter one of the following commands on each node of the cluster:

    • On Linux or UNIX-based systems:

      EAP_HOME/bin/standalone.sh
    • On Windows:

      EAP_HOME\bin\standalone.bat