We are trying to implement a hub and spoke topology using the Federation feature by configuring both upstream and downstream connections. In our case, we wanted to configure everything that is needed for the federation on the broker which is acting as spoke. This is mainly done this way as our main requirement was hub should not be aware of any spoke as spokes can be behind the firewall and are added or removed dynamically.
In order to achieve this, In the downstream configuration, we set a share-connection flag that is supposed to use the same upstream connection to use for downstream communication. However, it seems we also required to configure the upstream-connector-ref which will be used by the hub to create a new connection to communicate. This is making Hub to aware of spoke which is violating our intend. Ideally, we want to avoid spoke's hostname the connector that is given in the upstream-connector-ref configuration. Is there any way to make the same connection Bi-directional/Duplex? In addition to that as spokes can be behind the firewall where only HTTP connections are allowed, can federation done via HTTP? Broker.xml on Hub <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xi="http://www.w3.org/2001/XInclude" xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd"> <core xmlns="urn:activemq:core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq:core "> <name>0.0.0.0</name> … <connectors> <connector name="netty-connector">tcp://0.0.0.0:61618</connector> </connectors> <acceptors> <acceptor name="netty-acceptor">tcp://0.0.0.0:61618</acceptor> </acceptors> <addresses> <address name="exampleTopic"> <multicast> <queue name="exampleSubscription"/> </multicast> </address> </addresses> </core> </configuration> Broker.xml on Spoke. <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xi="http://www.w3.org/2001/XInclude" xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd"> <core xmlns="urn:activemq:core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq:core "> <name>0.0.0.0</name> … <connectors> <connector name="netty-connector">tcp://spokeHostName:61618</connector> <connector name="us-central-1-connector">tcp://hubHostName:61618</connector> </connectors> <acceptors> <acceptor name="netty-acceptor">tcp://0.0.0.0:61618</acceptor> </acceptors> <federations> <federation name="eu-west-1-federation"> <upstream name="us-central-1-upstream"> <circuit-breaker-timeout>1000</circuit-breaker-timeout> <share-connection>true</share-connection> <static-connectors> <connector-ref>us-central-1-connector</connector-ref> </static-connectors> <policy ref="policySetA"/> </upstream> <downstream name="us-central-1-downstream"> <circuit-breaker-timeout>1000</circuit-breaker-timeout> <share-connection>true</share-connection> <static-connectors> <connector-ref>us-central-1-connector</connector-ref> </static-connectors> <policy ref="policySetA"/> <upstream-connector-ref>netty-connector</upstream-connector-ref> </downstream> <policy-set name="policySetA"> <policy ref="address-federation" /> </policy-set> <address-policy name="address-federation"> <include address-match="exampleTopic" /> </address-policy> </federation> </federations> <addresses> <address name="exampleTopic"> <multicast> <queue name="exampleSubscription"/> </multicast> </address> </addresses> </core> </configuration> Thanks in advance. -- Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html