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

Reply via email to