这从这一篇开始,将讲解在activeMQ中的相关配置。由于activeMQ主要是参考apache官方网站上的说明,并在适当的地方加注说明。
一、如何配置自动重新连接
Apache官方说明:
If a JMS broker goes down, ActiveMQ can automatically reconnect to an available JMS broker using the
failover: protocol. Not only does this automatically reconnect, it will also resume any temporary destinations, sessions, producers and most importantly consumers.
All of this happens silently inside the JMS client so you don't need to worry about it in your application code.
e.g. connecting to the URL
failover:tcp:
<
span class=code-comment
>//host1:port1,tcp://host2:port2
关于Failover的更为详细的说明如下:
The Failover(故障转移) Transport(注:这里自然可以翻译为“传输”,但是从根本上来说,我认为主要是在于故障转移是在传输层完成)
The Failover transport layers reconnect logic on top of any of the other transports. (We used to call this transport the Reliable transport in ActiveMQ 3).
The Failover configuration syntax allows you to specify any number of composite uris. The Failover transport randomly chooses one of the composite URI and attempts to establish a connection to it. If it does not succeed or if it subsequently fails, a new connection is established to one of the other uris in the list.
Configuration Syntax
failover:(uri1,...,uriN)?transportOptions
or
failover:uri1,...,uriN
or
failover:uri1,...,uriN
The failover transport uses random by default which lets you to load balance clients over a number of brokers.
If you would rather connect to a primary first and only connect to a secondary backup broker if the primary is unavailable, turn off randomizing using something like
failover:(tcp://primary:61616,tcp://secondary:61616)?randomize=false
这些下面的这些参数都可以通过类似http参数传值的方式failover:(tcp://host1:61616,tcp://host2:61616,...)?p1=v1&p2=v2&p3=v3
将参数p1,p2,p3传入。
Transport Options
initialReconnectDelay | 10 | How long to wait before the first reconnect attempt (in ms) |
maxReconnectDelay | 30000 | The maximum amount of time we ever wait between reconnect attempts (in ms) |
useExponentialBackOff | true | Should an exponential backoff be used btween reconnect attempts (在尝试重新连接时是否使用指数回退算法) |
backOffMultiplie |