Hi guys,<br><br>I&#39;ve played with the federation plugin a little. It seems that in order to send a message to a queue on the downstream server, the same queue has to be declared on the upstream server for federation to work?<br>
<br>For example:<br>__________________<br>|����������������������������� |<br>| Downstream server |�� Exchange-D &lt;------� q1<br>|_________________|<br>������������ ^<br>������������ |<br>������������ |<br>__________________<br>
|����������������������������� |<br>
| Upstream server���� |� Exchange-U &lt;------� q1<br>
|_________________|<br>������������ <br>_______ <br>|����������� | <br>

| Client � |<br>

|_______|<br><br>If I want to send messages from client through Upstream server to Downstream server, The messages can only get through when I declare a &quot;q1&quot; on Upstream server, bind that queue to Exchange-U with a routing key, then send the message to Exchange-U using that routing key. Not sure if this is how it&#39;s supposed to work. <br>
<br>Is it possible not to declare q1 on Upstream server and make federation work? My problem is that I have multiple customers listening to their own queues on Downstream server, and customers can be removed or added at any time. Say if X just connected to Downstream server, and I want to send messages to it. How would I be able to send messages to X given that I don&#39;t have a queue on Upstream server that corresponds to it? Though I already know X is in the customer list, when my clients start and initialise, I don&#39;t think it&#39;s a good idea to just create queues for all customers on the list, which I think would consume system resources unnecessarily.<br>
<br>Hopefully it all makes sense to you guys. Let me know if it&#39;s unclear.<br><br>The following is my federation config.<br><span style="color:rgb(0,102,0)">{rabbitmq_federation,</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">�� [ {exchanges, [[{exchange,���� &quot;Exchange-D&quot;},</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">������������������ {virtual_host, &quot;/&quot;},</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">������������������ {type,�������� &quot;topic&quot;},</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">������������������ {durable,����� true},</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">������������������ {auto_delete,� false},</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">������������������ {internal,���� false},</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">������������������ {upstream_set, &quot;upsteam-servers&quot;}]</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">���������������� ]},</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">���� {upstream_sets, [{&quot;upsteam-servers&quot;, [[{connection, &quot;192.168.0.21&quot;},</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">���������������������������������������� {exchange,�� &quot;Exchange-U&quot;},</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">���������������������������������������� {max_hops,�� 2}</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">���������������������������������������� ]}</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">�������������������� ]},</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">���� {connections, [{&quot;Upstream-server&quot;,������ [{host,��������� &quot;upstream&quot;},</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">���������������������������������������� {protocol,������� &quot;amqps&quot;},</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">���������������������������������������� {port,����������� 5671},</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">���������������������������������������� {ssl_options,</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">����������������������������������������� [{cacertfile, &quot;/etc/rabbitmq/certs/testca/cacert.pem&quot;},</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">������������������������������������������ {certfile,�� &quot;/etc/rabbitmq/certs/client/cert.pem&quot;},</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">������������������������������������������ {keyfile,��� &quot;/etc/rabbitmq/certs/client/key.pem&quot;},</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">������������������������������������������ {verify,���� verify_peer},</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">������������������������������������������ {fail_if_no_peer_cert, false}</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">����������������������������������������� ]}</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">��������������������������������������� ]}</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">������������������������������������ ]},</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">���� {local_username, &quot;guest&quot;},</span><br style="color:rgb(0,102,0)">
<span style="color:rgb(0,102,0)">�� ]</span><br style="color:rgb(0,102,0)"><span style="color:rgb(0,102,0)">� }</span><br><br>Thanks,<br><br>Brian<br>