Event Broker Container Run Command Builder

Deployment Mode

The Solace Event Broker can be deployed in two modes:

1. A single Standalone instance, suitable for quickly getting started for developer environments.

2. A High Availability deployment of 3 nodes (a.k.a "a triplet"), consisting of a primary and backup messaging nodes, and a single monitor node to prevent split-brain activation.

Container Runtime, Image Repository and Restart Policy

Solace supports docker and podman as container runtimes, and the image can be pulled from Docker Hub.

It is important for instances of Solace containers to restart automatically in the case of a crash or host reboot so set a restart policy accordingly.

The default user ID in a Solace container is 1000001. You can provide a specific UID available on the host machine if required to override this.

Networking Configuration

The choice of networking mode is an important consideration when deploying Solace containers.

1. bridge networking: the container is deployed in a separate network namespace from the host, with port forwarding rules.

2. host networking: the container is deployed in the host’s network namespace.

3. slirp4netns networking: suitable if running rootless containers with podman.

Container Storage Configuration

The state information associated with a Solace container should be externalised to a filesystem mount on the host machine for performance and ease of management in the future (as some of this data is long lived.)

The storage path on the host will be mounted to /var/lib/solace in the container's filesystem and will need to be built with XFS, and have write access for the container user ID.

Password Configuration

When a Solace container is started, a default user for admin access can be created to allow immediate usage for CLI login or the Management UI.

This user will be called admin with the initial password possible to be supplied in one of three ways:

1. Plain text string: suitable for quick-start developer environments.

2. Password file path: a file on the host filesystem to read for the password.

3. Encrypted password: provide a previously encrypted password.

Protocols and Port Forwarding

As Solace is a multi-protocol broker, the services are provided over a number of different ports.

Select the protocols you intend to use so that the port forwarding rules can be constructed between the container's network namespace and the host network.


Solace Messaging Protocol (SMF)

SMF (Plain) 55555
SMF (Secure TLS) 55443

Solace Messaging (SMF) over WebSocket

WebSocket (Plain) 8008
WebSocket (Secure TLS) 1443

AMQP

AMQP (Plain) 5672
AMQP (Secure TLS) 5671

MQTT

MQTT (Plain) 1883
MQTT (Secure TLS) 8883
MQTT WebSocket (Plain) 8000
MQTT WebSocket (Secure TLS) 8443

REST/HTTP Messaging

REST (Plain) 9000
REST (Secure TLS) 9443

SEMP (Management API)

SEMP (Plain) 8080
SEMP (Secure TLS) 1943

Command Line Interface over SSH

CLI (SSH) 2222

Multi-Node Routing (MNR)

MNR Control Port 55556

Note: Additional ports related to communication between HA nodes are automatically included when HA mode is selected and are not explicitly shown here.
Scaling Parameters

A Solace broker can be deployed in multiple scaling tiers, with capacity limits and host resource usage matching the intended use-case.

Ensure the minimum resource requirements are met for a successful container start. The default scaling levels set below are for the minimal size developer instance.

Max Message Spool Usage ?
GB
Max Connections
100
1001,00010,000100,000200,000
Max Queue Messages
100M
100M240M3000M
Max Kafka Bridges
0
01050200
Max Kafka Broker Connections
0
03002,00010,000
Max Bridges
25
255005,000
Max Subscriptions
50,000
50,000500,0005,000,000
Max Guaranteed Message Size
10
1030
Standalone Broker Configuration

For the simple standalone instance, provide a suitable name for the container to use in the generated run command.

TLS Server Certificate

If setting up your broker to use TLS connections, provide a server certificate file path, and optionally a passphrase file path if the certificate is encrypted.

Important Note

Load the file(s) into your container runtime's secret filesystem first.

/run/secrets is a temporary, in-memory filesystem location inside a container where sensitive data (secrets) are mounted at runtime instead of being baked into images or passed via environment variables.

e.g. podman secret create solace-secrets server-certificate.p12 to add the file into a secrets filesystem called solace-secrets

Then when running the container, include the extra argument --secret solace-secrets

Generated Output

Standalone node container start command