Solace PubSub+ Event Broker Concepts
In this section we'll review the types of Solace PubSub+ event brokers, and present an overview of a number of their key features.
The Solace PubSub+ appliance is a special, purpose-built hardware version of the Solace PubSub+ event broker that offers greater capacity and performance with lower total cost of ownership and complexity than other messaging middleware technology.
For more product information about the Solace PubSub+ appliance, go here.
To begin learning about how to set up and configure a Solace PubSub+ appliance, refer to the Solace PubSub+ Appliance section.
The Solace PubSub+ software event broker is a PubSub+ event broker that runs on general purpose processors instead of Solace purpose-built hardware.
For more product information about the Solace PubSub+ software event broker, go here.
To download a Solace PubSub+ software event broker, go here.
To begin learning about how to set up and configure a Solace PubSub+ software event broker, refer to the Solace PubSub+ software event broker's Initial Set Up section.
Solace PubSub+ Cloud is enterprise-grade messaging as a service that allows you to spin up Solace PubSub+ event brokers in your favorite public clouds in minutes so you can focus on creating applications.
For more product information about Solace PubSub+ Cloud, go here.
To sign up for a free Solace PubSub+ Cloud account, go here.
The Message VPN is a core feature of the event broker. It allows for many separate applications to share a single event broker while still remaining independent and separated. In essence it enables virtualization of the event broker into many individual virtual event brokers.
Message VPNs allow for the segregation of topic space and messaging space by creating fully separate messaging domains. Message VPNs also group clients connecting to a network of event brokers, such that messages published within a particular group are only visible to clients that belong to that group. Each client connection is associated with a single Message VPN.
Message VPNs also allow scoping of resources such as message spool, queues, topics, and connections.
For more information refer to the Message VPNs.
Applications or devices that connect to event brokers are represented as clients.
A client represents a single logical connection to the event broker that is capable of sending and/or receiving messages. To establish a client connection, client applications or devices connect using a specific Client Username account.
As part of the connection process, a unique Client Name is required to identify the Client’s session. That is, the Client Name serves as a session name. If the Client application or device doesn't provide its own Client Name when creating its session, a unique Client Name is automatically generated by the Solace API. Note, while Client Names are unique within a given Message VPN, the same name may exist in multiple Message VPNs.
Once connected, Clients inherit a number of characteristics, behaviors, and permissions based on a Client Profile and ACL Profile associated with that Client Username.
Client Usernames are contained within a specific Message VPN. They are used by Client applications to authenticate with the event broker, and may be used to make multiple Client connections. This lets applications horizontally scale without additional configuration on the event broker.
Each Client Username is associated with a Client Profile and an ACL profile. These profiles control properties and permissions of the connected Client.
For more information on client authentication and authorization refer to the Client Authentication / Authorization.
Client Profiles are contained within a specific Message VPN, and can be applied to Client Usernames. Being able to share Client Profiles gives you the ability to manage large groups of Clients without having to make individual changes to each one.
Client Profiles control a number of behaviors and capabilities. For example, resource allocation such as the maximum number of Client connections per Client Username, and the per-client transport queues are both controlled by the Client Profile. Other characteristics controlled by the Client Profile include tuning TCP connection parameters, enabling persistent messaging capabilities, and adjusting the point at which certain events will be triggered.
For further information refer to Configuring Clients with Client Profiles.
Similar to Client Profiles, ACL Profiles are contained within a specific Message VPN and can be applied to Client Usernames. This gives you the ability to control entitlements for large groups of clients.
ACL Profiles consist of a few Access Control Lists which serve to either allow or restrict Client actions. The ACL configuration defines the Client’s ability to connect based on its IP address. It also defines to which topics the Client is allowed to publish or subscribe.
All of the ACL definitions have the same format in that they have a default behavior of either allow or disallow, and they have an exception list.
For further information refer to Controlling Client Access with ACL Profiles.
Guaranteed messages in Solace PubSub+ are stored in event broker endpoints. There are two types of endpoints: queues and topic endpoints. In most scenarios the queue endpoint is a superset of the topic endpoint, and is the endpoint most commonly used. Topic endpoints are used by JMS (that is, durable topic subscriptions).
Queues on an event broker work very much like queues in all message queuing systems. Producers send guaranteed messages to the event broker. These messages are saved in the queue, and delivered to consuming clients if they are online and connected. The consumer acknowledges the message once it has completed processing it, and then the message is then removed from event broker's queue. Queue objects are highly configurable with a variety of options to tailor their behavior to application needs.
Queues' lifecycles are determined by whether they are durable or non-durable. Durable queues remain around permanently until removed through configuration. They accumulate messages when clients are online or offline. When offline clients reconnect, they receive all the messages that were accumulated while they were offline. Temporary queues follow the lifecycle of the client connection, and are useful for ensuring message persistence while clients are online. These temporary queues and topic endpoints are non-durable because they only last as long as the client’s session is connected. If a client disconnects for a certain period of time, the event broker will automatically remove the temporary queues. So messages will not accumulate while clients are offline.
For further information refer to Guaranteed Messages.
In addition to spooling published Guaranteed messages that have a matching queue destination, it's possible to add one or more topic subscriptions to a durable queue so that Guaranteed messages published to those topics are also delivered to and spooled by the queue. This feature enables queues to participate equally in point-to-point and publish/subscribe messaging models, opening up a large number of interesting use cases.
As shown in the following figure, this allows a single message published to a topic to be delivered to a combination of topic endpoints, one or more queues, or even clients with matching Direct Messaging topic subscriptions.
Any Guaranteed messages published to topics that match subscriptions associated with queues are delivered to those queues. Error indications are returned to the publisher if the message can't be delivered to one or more queues for any reason (that is, the feedback to the publisher is identical to that provided when the messages are published directly to the queues).
Topic subscription to queue mappings are applicable to both durable and non‑durable queues. Deletion of a queue for any reason results in the deletion of all topic subscription to queue mappings for that queue.
For further information refer to Adding Topic Subscriptions to Queues.