Hi,

I have a configuration where a broker needs to make a network connection to
brokers behind a load balancer (HAProxy) which make a master-slave
configuration. The HAProxy does the routing based upon the SSL SNI, and does
the SSL termination.

So the uri for the network connector looks like this:

uri="static:(failover:(ssl://broker1-alias:61617,ssl://broker2-alias:61617)?maxReconnectAttempts=0)"

or, since the brokers behind the load balancer work in master-slave-mode:

uri="masterslave:(ssl://broker1-alias:61617,ssl://broker2-alias:61617)"

However, the switchover does not work when stopping the first broker so the
second one takes over. The network connector always connects to the
broker1-alias:61617, delivers the information that the connection was
successful („Successfully connected to ssl://broker1-alias:61617”) but then
fails (java.io.EOFException / java.util.concurrent.TimeoutException).

It never tries with broker2-alias.

Could it be that the switchover to the second broker is only triggered when
the connection to the port 61617 fails? That port is always available, since
the HAProxy listens to it (both aliases lead to the IP address of the
HAProxy), only the further routing to the first broker fails when this
broker is down. Or does the masterslave / failover protocol detect that the
IP address/port combination for both brokers is the same and then never uses
the second one because of this?

Does anybody have experience with such scenarios and would have a solution
for the failover/masterslave protocol when connecting to brokers behind a
load balancer?

Regards,
Jochen





--
View this message in context: 
http://activemq.2283324.n4.nabble.com/failover-masterslave-protocol-for-brokers-behind-HAProxy-tp4726787.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to