Solace PubSub+ Event Broker is a highly scalable event broker that supports multiple protocols such as MQTT, REST, AMQP and SMF. This makes it an excellent fit for many use cases in different environments. To maintain the high levels of performance and stability that users of PubSub+ expect, Solace closely monitors the resource requirements of each release of PubSub+.
Sometimes a new feature will require a significant increase in the required amount of a resource. In order to prevent upgrades from failing, these features are disabled by default and are enabled via system scaling parameters. Users can adjust the system scaling parameters when an instance is created using configuration keys or on a running instance via CLI. When a user adjusts the system scaling parameters, they must ensure that the host has the required resources available (or the instance will fail to start).
Previously, this was a complicated task (even with the small number of system scaling parameters currently supported) that involved adding up the requirements for each scaling parameter. PubSub+ release 9.12 introduces a web application called the System Resource Calculator that helps you create a broker configuration by summarizing the system resources required to run it.
Using the System Resource Calculator to Create an Event Broker Configuration
Click here to launch the tool.
On the left there are the inputs and on the right are the outputs (resource requirements).
The presets are common configurations or qualitative descriptions of a broker instance that will set the level of one or more of the system scaling parameters.
By selecting the Production
preset, you can see that the Max Connections
scaling parameter was increased from 100 to 1,000 and the Max Queue Messages
scaling parameter was increased to 240 million. On the right side of the tool, the effect that changing these scaling parameters has on the resource requirements.
You don’t have to use the presets; each of the scaling parameters can be adjusted individually. As seen below, the Max Connections
scaling parameter was increased from the preset value of 1,000 to 10,000 (note the associated increase in minimum resource requirements).
Once the scaling parameters are all set in the desired positions, you can turn our attention to the minimum resource requirements on the right side of the tool. The first thing you will notice is that there are tabs at the top that let you select the type of deployment you’re planning to create. The options are Container
or VM
. PubSub+ is available as a container to be deployed using a container runtime such as Docker or Podman, or as a virtual machine (VM) to be deployed using a hypervisor such as VMware ESXi.
The resource requirements are stated slightly differently for the VM packages vs the container packages. The difference being that when deploying a VM, the host OS comes preconfigured. When running a container package, host configuration is the responsibility of the user.
Once you have confirmed that the target system has the required resources available, at the bottom right of the tool, there are some sample Deployment Templates to help get the user started on creating an instance with the desired scaling parameters. If deploying a container image, there is a sample docker run command that will create a container instance of PubSub+ with the desired scaling parameters.
docker run -d -p 8080:8080 -p 55555:55555 --ulimit core=-1 --ulimit nofile=2448:42192 --shm-size=1g --env system_scaling_maxconnectioncount=10000 --env system_scaling_maxqueuemessagecount=240 --env messagespool_maxspoolusage=10000 --name=solace solace/solace-pubsub-standard
This command-line is intended to be a start; further customizations may be required. See Setting Up Container Images at docs.solace.com for more details.
If deploying a VM package, the tool provides a sample cloud-init config that can be used to configure an instance on first boot (cloud-init is a boot strapping tool commonly used in AWS).
#cloud-config solace: configuration_keys: system_scaling_maxconnectioncount: 10000 system_scaling_maxqueuemessagecount: 240 messagespool_maxspoolusage: 10000
This shows how the resource calculator for PubSub+ Software Event Brokers can be used to help configure broker instances from very small (100 connections) to very large (200,000 connections) and help the user manage the requirements for system resources.