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.

Paul Kondrat

Paul Kondrat is a member of the Solace Product Management team. His areas of expertise include platforms, operating systems and the appliance hardware. He has been with Solace since 2005 and also works in the architecture team on the hardware platform. Prior to joining Solace, Paul worked at Newbridge Networks (later Alcatel Canada) as a hardware designer on various IP routing and switching products.

Join Our Developer Community

Join the Solace Developer Community to discuss and share PubSub+ API hints, new features, useful integrations, demos, and sample code!

JOIN THE DISCUSSION