Skip to main content
Version: 3.2.x

Deploy StandardCluster

Prerequisites

  • Ensure you have JDK 17 or higher installed.
  • Download the latest BifroMQ release.

Installation Steps

This section illustrates the deployment process for a 3-node cluster. Similar to deployment on Linux, you need to extract the downloaded tar file first.

Configurations

A configuration file is provided by default with the following settings:

# The cluster requires exactly one bootstrap node
bootstrap: true

mqttServerConfig:
tcpListener:
port: 1883

# BifroMQ Cluster Configuration
clusterConfig:
# Cluster environment, cluster members under same environment can communicate with each other
env: "Test"
# Host address to bind for inter-member communication. If left blank, a site-local address will be used if available
host:
# Port for listening to cluster membership-related messages. If left blank, the operating system will automatically choose an available port.
# For seed nodes, it is recommended to specify an explicit port number to simplify the cluster building process.
port:
# Optional DNS domain name used to achieve cluster member address discovery, can be used in K8S environment deployment
clusterDomainName:
# Comma-separated list of <ADDRESS>:<PORT> for joining the cluster
seedEndpoints:

Setting Seed Nodes

Before setting up the cluster, you need to specify seedPoints in a comma-separated format of <ADDRESS>:<PORT>, for example:

clusterConfig.seedEndpoints: ${NODE1_ADDR}:${PORT},${NODE2_ADDR}:${PORT},${NODE3_ADDR}:${PORT}

For detailed configuration information, refer to the BifroMQ Configuration Documentation.

Setup Bootstrap Node

Start the bootstrap node using the command:

./bin/standalone.sh start

This will create the necessary persistent metadata required for the cluster to function.

Setup Non-Bootstrap Nodes

For non-bootstrap nodes, the bootstrap configuration must be set to false to prevent them from generating inconsistent metadata. Run the script ./bin/standalone.sh start to start non-boostrap nodes.

Cluster Status Check

After running the script, the nodes will form a cluster and generate the AgentHost joined seedEndpoint: ${seedEndpoints} logs on their respective machines.

You can also use various system-level metrics to monitor the cluster's health and performance.