Hi all,
I’m stuck with getting an ActiveMQ cluster going within a Docker
environment using Weave. The environment runs on an Amazon AWS ECS
Cluster of 2 EC2 Instances running in the same Region, but in different
Availability Zones. The clustering of ActiveMQ must rely on multicast
due to the scaling nature of ECS.
I used Tomcat’s SimpleTcpCluster to confirm that multicast is working at
the Weave level. (The only changes I did for this was to add unique
jvmRoutes to each Tomcat instance and uncomment the SimpleTcpCluster
configuration.) However, trying to cluster ActiveMQ has been
unsuccessful so far. I took
[active-mq-home]/examples/conf/activemq-dynamic-network-broker2.xml as a
basis and changed the brokerName for each ActiveMQ instance to be
something unique. However, after trying both tcp://0.0.0.0:61618 and
tcp://10.40.0.1:61618 for the openwire transportConnector the two
instances still won’t form a cluster.
I suspect that ActiveMQ tries to use the network interface that does not
support multicasting. The container ActiveMQ is running on has two
network interfaces to its disposal: eth0 (Amazon AWS ECS) and ethwe
(Weave). The latter does support multicasting. The IP address mentioned
earlier (10.40.0.1) is the IP address assigned to the ethwe network
interface. How can I get clustering for ActiveMQ to work based on
multicasting in this environment?
Thanks,
Jeroen...
PS: I'm using ActiveMQ 5.13.4.