amqp://[<user>:<pass>@][<clientid>]<virtualhost>[?<option>='<value>'[&<option>='<value>']]
The connection url defines the values that are common across the cluster of brokers. The virtual host is second in the list as the AMQP specification demands that it start with a '/' otherwise it be more readable to be swapped with clientid. There is currently only one required option and that is the brokerlist option. In addition the following options are recognised.
Option |
Default |
Description |
---|---|---|
ssl |
false |
Set the default for all connections. This can be overridden by the individual broker url. |
brokerlist |
see below |
The list of brokers to use for this connection |
failover |
see below |
The type of failover method to use with the broker list. |
cyclecount |
0 |
The number of times to loop through the list of available brokers before failure. |
Brokerlist option
brokerlist='<broker url>[;<broker url>]'
The broker list defines the various brokers that can be used for this connection. A minimum of one broker url is required additional URLs are semi-colon(';') delimited.
Broker URL format
<transport>://<host>[:<port>][?<option>='<value>'[&<option>='<value>']]
There are currently quite a few default values that can be assumed. This was done so that the current client examples would not have to be re-written. The result is if there is no transport, 'tcp' is assumed and the default AMQP port of 5672 is used if no port is specified.
Transport |
---|
tcp |
vm |
Currently only 'tcp' and 'vm' transports are supported. Each broker can take have additional options that are specific to that broker. The following are currently implemented options. To add support for further transports the ''client.transportTransportConnection'' class needs updating along with the parsing to handle the transport.
Option |
Default |
Description |
---|---|---|
retries |
1 |
The number of times to retry connection to this Broker |
ssl |
false |
Use ssl on the connection |
connecttimeout |
30000 |
How long in (milliseconds) to wait for the connection to succeed |
Brokerlist failover option
failover='<method>[?<options>]'
This option controls how failover occurs when presented with a list of brokers. There are only two methods currently implemented but interface qpid.jms.failover.FailoverMethod
can be used for defining further methods.
Currently implemented failover methods.
Method |
Description |
---|---|
singlebroker |
This will only use the first broker in the list. |
roundrobin |
This method tries each broker in turn. |
The current defaults are naturally to use the 'singlebroker' when only one broker is present and the 'roundrobin' method with multiple brokers. The '''method''' value in the URL may also be any valid class on the classpath that implements the FailoverMethod
interface.
Sample URLs
amqp:///test?brokerlist='localhost' amqp://guest:guest@/test?brokerlist='vm://:1;vm://:2'&failover='roundrobin' amqp://guest:guest@client/test?ssl='true'&brokerlist='tcp://localhost;tcp://redundant-server:5673?ssl='false''&failover='roundrobin'