<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; "><div><div>I need a second pair of eyes on a small RMQ app I'm working on.&nbsp;</div><div>I suspect the issue I'm seeing is related to how I am defining my exchanges and queues.</div><div><br></div><div>If I connect with two clients, I'll see every other message appear on my client. If I connect with three clients, I see every third message, and so on. In other words, it appears to 1) be deleting every message that gets produced on consumption, and 2) round robins which consumer gets each message.</div><div><br></div><div>What I want to see is all clients get the same message each time one is posted.</div><div><br></div><div>Is a topic approach the best approach for this, or is fanout the better way to handle this?</div><div><br></div><div>Here's the specifics of how my producer and consumer is set up:</div><div><br></div><div><br></div><div>PRODUCER (client=bunny)</div><div>=====================</div><div><br></div><div>@topic_exchange ||= client.exchange("internal.platformalert", :type =&gt; :topic,</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :durable =&gt; true, :autodelete =&gt; false)</div><div>@queue ||= client.queue("internal.platformalert.#", :durable =&gt; true,</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; :autodelete =&gt; false, :arguments =&gt; {'x-ha-policy' =&gt; 'all'})</div><div>queue.bind(e, :key =&gt; "alert")</div><div>exchange.publish(message, :key =&gt; "alert", :persistent =&gt; true) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div><br></div><div><br></div><div>CONSUMER (client=ruby-amqp)</div><div>=====================</div><div><br></div><div>exchange = channel.topic("internal.platformalert", :durable =&gt; true, :autodelete =&gt; false)</div><div>queue &nbsp; &nbsp;= channel.queue("internal.platformalert.#", :durable =&gt; true, :autodelete =&gt; false,&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;:arguments =&gt; {'x-ha-policy' =&gt; 'all'})</div><div>queue.bind(exchange, :routing_key =&gt; "alert")</div><div>queue.subscribe(:ack =&gt; false) do |header, body|</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>&#8230; do stuff</div><div>end</div><div><br></div><div><br></div><div>Many thanks!</div><div><br></div><div>Chris</div></div></body></html>