Chapter 11. Fanout Protocol

Abstract

The fanout protocol allows clients to connect to multiple brokers at once and broadcast messages to consumers connected to all of the brokers at once.

URI syntax

Example 11.1, “Fanout URI Syntax” shows the syntax for a fanout URI.

Example 11.1. Fanout URI Syntax

fanout://(DiscoveryAgentUri)?Options
DiscoveryAgentUri is URI for the discovery agent used to build up the list of available brokers. The available discovery agents are listed in Chapter 12, Discovery Agents.
The options, ?Options, are specified in the form of a query list. The discovery options are described in Table 11.1, “Fanout Protocol Options”. You can also inject transport options into the discovered transports by adding their properties to the list.
Note
If no options are required, you can drop the parentheses from the URI. The resulting URI would take the form fanout://DiscoveryAgentUri

Transport options

The fanout protocol supports the transport options described in Table 11.1, “Fanout Protocol Options”.

Table 11.1. Fanout Protocol Options

Option NameDefaultDescription
initialReconnectDelay 10Specifies, in milliseconds, how long the transport will wait before the first reconnect attempt.
maxReconnectDelay 30000Specifies, in milliseconds, the maximum amount of time to wait between reconnect attempts.
useExponentialBackOff trueSpecifies if an exponential back-off is used between reconnect attempts.
backOffMultiplier 2Specifies the exponent used in the exponential back-off algorithm.
maxReconnectAttempts 0Specifies the maximum number of reconnect attempts before an error is sent back to the client. 0 specifies unlimited attempts.
fanOutQueues falseSpecifies whether queue messages are replicated to every connected broker.
minAckCount 2Specifies the minimum number of brokers to which the client must connect before it sends out messages.