In my workplace's production Camel environment, we utilize 3 master-slave pairs running Camel version 2.9.2. Producers and Consumers reference these servers by hardcoded hostname in
consumer-camel-context.xml and producer-camel-context.xml. An example the latter might be: <property name="brokerURL" value="failover:(tcp:// camel01.domain.net:61616?keepAlive=true&connectionTimeout=200,tcp://camel02.domain.net:61616?keepAlive=true&connectionTimeout=200,tcp://camel03.domain.net:61616?keepAlive=true&connectionTimeout=200,tcp://camel04.domain.net:61616 ? keepAlive=true&connectionTimeout=200,tcp:// camel05.domain.net:61616?keepAlive=true&connectionTimeout=200,tcp://camel06.domain.net:61616?keepAlive=true&connectionTimeout=200)?startupMaxReconnectAttempts=1&timeout=-1 "/> We run into issues with the above when we migrate to new hardware and change the server names. This requires not only a change to the XML files (maintained in puppet), but also a deployment of the producing and consuming applications to pick up the updated configuration. What we'd like to do instead is to virtualize the connection behind either an F5 load balancer or a Virtual IP address. Ideally it would look something like this: <property name="brokerURL" value="failover:(tcp://camelVIP.domain.net :61616?keepAlive=true&connectionTimeout=200)?startupMaxReconnectAttempts=1&timeout=-1"/> ...or something like that. Is a scheme like this even possible given the built-in clustering and load balancing in Camel? Thanks in advance. -- *Paul David Mena* Senior Software Engineer Engineering Services