<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>So I've been trying to design a rabbit configuration to eke the most performance possible out of a system. &nbsp;However, despite a lot of repeated attempts, I'm not able to get more than 4-5k messages/sec out of any rabbit server. &nbsp;Here are the results of some tests:</div><div><br></div><div>Single connection, Single Exchange, Single queue: &nbsp;~4000&nbsp;msg/sec<div>Single connection, Single Exchange, Two queues &nbsp;: &nbsp;~4000 msg/sec</div><div>Single connection, Two Exchanges, Single queue &nbsp;: &nbsp;~4000 msg/sec</div><div><div><div>Single connections, Two Exchanges, Two queues &nbsp; : &nbsp;~4000&nbsp;msg/sec</div></div><div>Two connections, Two Exchanges, Two queues &nbsp; &nbsp; &nbsp;: &nbsp;~3300 msg/sec (could be a fluke, haven't repeated this test)</div></div><div><br></div><div>The message rates I've NOT computationally verified - just reading off summary of what rabbit says is going through it's exchanges/queues. &nbsp;I'll probably work on some more accurate metrics later, but right now, I'm just trying to figure out what to tweak.</div><div><br></div></div><div>While the test was running, I saw at most a 2mb/sec data write rate, and only about 50-60% CPU use. &nbsp;Rabbit overview in the admin interface:</div><div><table class="list" style="border-collapse: collapse; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); margin-bottom: 0px; font-family: Verdana, sans-serif; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; position: static; z-index: auto; "><tbody><tr><th style="font-weight: normal; color: black; font-style: normal; font-variant: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; vertical-align: top; min-width: 5em; width: auto; border: 1px solid rgb(204, 204, 204); text-align: center; ">Name</th><th style="font-weight: normal; color: black; font-style: normal; font-variant: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; vertical-align: top; min-width: 5em; width: auto; border: 1px solid rgb(204, 204, 204); text-align: center; ">File descriptors&nbsp;<span class="help" id="file-descriptors" style="color: rgb(136, 136, 136); cursor: pointer; ">(?)</span><sub style="display: block; font-size: 0.8em; color: rgb(136, 136, 136); ">(used / available)</sub></th><th style="font-weight: normal; color: black; font-style: normal; font-variant: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; vertical-align: top; min-width: 5em; width: auto; border: 1px solid rgb(204, 204, 204); text-align: center; ">Socket descriptors&nbsp;<span class="help" id="socket-descriptors" style="color: rgb(136, 136, 136); cursor: pointer; ">(?)</span><sub style="display: block; font-size: 0.8em; color: rgb(136, 136, 136); ">(used / available)</sub></th><th style="font-weight: normal; color: black; font-style: normal; font-variant: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; vertical-align: top; min-width: 5em; width: auto; border: 1px solid rgb(204, 204, 204); text-align: center; ">Erlang processes<sub style="display: block; font-size: 0.8em; color: rgb(136, 136, 136); ">(used / available)</sub></th><th style="font-weight: normal; color: black; font-style: normal; font-variant: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; vertical-align: top; min-width: 5em; width: auto; border: 1px solid rgb(204, 204, 204); text-align: center; ">Memory</th><th style="font-weight: normal; color: black; font-style: normal; font-variant: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; vertical-align: top; min-width: 5em; width: auto; border: 1px solid rgb(204, 204, 204); text-align: center; ">Disk space</th><th style="font-weight: normal; color: black; font-style: normal; font-variant: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; vertical-align: top; min-width: 5em; width: auto; border: 1px solid rgb(204, 204, 204); text-align: center; ">Uptime</th><th style="font-weight: normal; color: black; font-style: normal; font-variant: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; vertical-align: top; min-width: 5em; width: auto; border: 1px solid rgb(204, 204, 204); text-align: center; ">Type</th></tr><tr class="alt1"><td style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; vertical-align: top; min-width: 5em; width: auto; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(240, 240, 240)), to(rgb(224, 224, 224))); background-position: initial initial; background-repeat: initial initial; "><a href="http://localhost:55672/#/nodes/rabbit%40jason-mcintoshs-mac-pro" style="display: block; width: 225px; color: black; font-weight: bold; text-decoration: none; ">rabbit@jasons-mac-pro</a></td><td class="status" style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; text-align: center; vertical-align: top; min-width: 5em; width: auto; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(240, 240, 240)), to(rgb(224, 224, 224))); background-position: initial initial; background-repeat: initial initial; "><div class="green" style="padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: center; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; background-color: rgb(144, 238, 144); position: static; z-index: auto; ">35 / 1024</div></td><td class="status" style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; text-align: center; vertical-align: top; min-width: 5em; width: auto; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(240, 240, 240)), to(rgb(224, 224, 224))); background-position: initial initial; background-repeat: initial initial; "><div class="green" style="padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: center; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; background-color: rgb(144, 238, 144); position: static; z-index: auto; ">3 / 829</div></td><td class="status" style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; text-align: center; vertical-align: top; min-width: 5em; width: auto; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(240, 240, 240)), to(rgb(224, 224, 224))); background-position: initial initial; background-repeat: initial initial; "><div class="green" style="padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: center; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; background-color: rgb(144, 238, 144); position: static; z-index: auto; ">204 / 1048576</div></td><td class="status" style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; text-align: center; vertical-align: top; min-width: 5em; width: auto; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(240, 240, 240)), to(rgb(224, 224, 224))); background-position: initial initial; background-repeat: initial initial; "><div class="green" style="padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: center; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; background-color: rgb(144, 238, 144); position: static; z-index: auto; ">496.3MB</div><sub style="display: block; font-size: 0.8em; color: rgb(136, 136, 136); ">2.2GB high watermark</sub></td><td class="status" style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; text-align: center; vertical-align: top; min-width: 5em; width: auto; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(240, 240, 240)), to(rgb(224, 224, 224))); background-position: initial initial; background-repeat: initial initial; "><div class="green" style="padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: center; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; background-color: rgb(144, 238, 144); position: static; z-index: auto; ">3.0TB</div><sub style="display: block; font-size: 0.8em; color: rgb(136, 136, 136); ">953.7MB low watermark</sub></td><td class="r" style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; text-align: right !important; vertical-align: top; min-width: 5em; width: auto; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(240, 240, 240)), to(rgb(224, 224, 224))); background-position: initial initial; background-repeat: initial initial; ">1h 18m</td><td class="c" style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 17px; font-family: Verdana, sans-serif; padding: 4px; text-align: center !important; vertical-align: top; min-width: 5em; width: auto; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(240, 240, 240)), to(rgb(224, 224, 224))); background-position: initial initial; background-repeat: initial initial; "><acronym title="Broker definitions are held on disc." style="background-color: rgb(170, 221, 221); color: rgb(34, 34, 34); padding: 2px 4px; border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; border: none; cursor: default; background-position: initial initial; background-repeat: initial initial; ">Disc</acronym>&nbsp;<acronym title="This node contains the management statistics database" style="background-color: rgb(170, 221, 221); color: rgb(34, 34, 34); padding: 2px 4px; border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; border: none; cursor: default; background-position: initial initial; background-repeat: initial initial; ">Stats</acronym>&nbsp;<acronym title="You are accessing the management UI from this node." style="background-color: rgb(170, 221, 221); color: rgb(34, 34, 34); padding: 2px 4px; border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; border: none; cursor: default; background-position: initial initial; background-repeat: initial initial; ">*<br><br></acronym></td></tr></tbody></table></div><div>At this point, I'm not sure what the heck to do to get more performance out of Rabbit and could use some advice. &nbsp;Below is the setup I've got, sample code, etc. &nbsp;Any advice would be welcome!&nbsp;</div><div><br></div><div>Thanks!</div><div>Jason</div><div><br></div><div><br></div><div>Here's the setup:</div><div>Two Exchanges, TestExchange and TestExchange2</div><div>Two Queues, Test and Test2</div><div>Bindings for each exchange to the queue with the routing key = Queue name. &nbsp;I've got the queues setup as direct and durable, as are the queues (durable).</div><div><br></div><div>Here's the java code I'm testing with:</div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #900868">import</span> java.io.IOException;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #900868">import</span> org.apache.commons.lang.RandomStringUtils;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #900868">import</span> com.rabbitmq.client.Channel;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #900868">import</span> com.rabbitmq.client.Connection;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #900868">import</span> com.rabbitmq.client.ConnectionFactory;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #900868">import</span> com.rabbitmq.client.MessageProperties;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #900868">public</span> <span style="color: #900868">class</span> TestRabbitConnection {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #900868">public</span> <span style="color: #900868">static</span> <span style="color: #900868">void</span> main(String[] args) <span style="color: #900868">throws</span> Exception {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>ConnectionFactory factory = <span style="color: #900868">new</span> ConnectionFactory();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>factory.setHost(<span style="color: #5500fe">"localhost"</span>);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>factory.setUsername(<span style="color: #5500fe">"guest"</span>);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>factory.setPassword(<span style="color: #5500fe">"guest"</span>);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>Connection conn = factory.newConnection();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>Channel channel = conn.createChannel();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>Thread t = <span style="color: #900868">new</span> Thread(<span style="color: #900868">new</span> RabbitMqTester(<span style="color: #5500fe">"TestExchange"</span>, <span style="color: #5500fe">"Test"</span>, channel));</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(83, 145, 114); ">//<span class="Apple-tab-span" style="white-space:pre">                </span>Thread t2 = new Thread(new RabbitMqTester("TestExchange2", "Test2", channel));</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>t.start();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(83, 145, 114); ">//<span class="Apple-tab-span" style="white-space:pre">                </span>t2.start();</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">        </span><br class="webkit-block-placeholder"></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>t.join();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(83, 145, 114); ">//<span class="Apple-tab-span" style="white-space:pre">                </span>t2.join();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">        </span><br class="webkit-block-placeholder"></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #900868">private</span> <span style="color: #900868">static</span> <span style="color: #900868">class</span> RabbitMqTester <span style="color: #900868">implements</span> Runnable {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #900868">private</span> <span style="color: #900868">final</span> Channel <span style="color: #3200cb">channel</span>;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #900868">private</span> <span style="color: #900868">final</span> String <span style="color: #3200cb">exchange</span>;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #900868">private</span> <span style="color: #900868">final</span> String <span style="color: #3200cb">routingKey</span>;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #900868">private</span> <span style="color: #900868">final</span> <span style="color: #900868">byte</span>[] <span style="color: #3200cb">contents</span> = RandomStringUtils.randomAlphabetic(20).getBytes();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #900868">public</span> RabbitMqTester(String exchange, String routingKey, Channel channel) {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                        </span><span style="color: #900868">this</span>.<span style="color: #3200cb">exchange</span> = exchange;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                        </span><span style="color: #900868">this</span>.<span style="color: #3200cb">routingKey</span> = routingKey;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                        </span><span style="color: #900868">this</span>.<span style="color: #3200cb">channel</span> = channel;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(119, 119, 119); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                </span></span>@Override</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #900868">public</span> <span style="color: #900868">void</span> run() {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                        </span><span style="color: #900868">try</span> {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(144, 8, 104); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                                </span></span>while<span style="color: #000000">(</span>true<span style="color: #000000">) {</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(50, 0, 203); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                                        </span></span>channel<span style="color: #000000">.basicPublish(</span>exchange<span style="color: #000000">, </span>routingKey<span style="color: #000000">, MessageProperties.</span>MINIMAL_PERSISTENT_BASIC<span style="color: #000000">, </span>contents<span style="color: #000000">);</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                                </span>}</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                        </span>} <span style="color: #900868">catch</span> (IOException e) {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                                </span><span style="color: #900868">throw</span> <span style="color: #900868">new</span> RuntimeException(e);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                        </span>}</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">                </span><br class="webkit-block-placeholder"></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">}</div></div><div><br></div><div><br></div><div>I'm testing on a MacPro with the following plugins/Erlang:</div><div><div>11 plugins activated:</div><div>* amqp_client-2.8.7</div><div>* erlando-2.8.7</div><div>* mochiweb-2.3.1-rmq2.8.7-gitd541e9a</div><div>* rabbitmq_federation-2.8.7</div><div>* rabbitmq_federation_management-2.8.7</div><div>* rabbitmq_management-2.8.7</div><div>* rabbitmq_management_agent-2.8.7</div><div>* rabbitmq_mochiweb-2.8.7</div><div>* rabbitmq_shovel-2.8.7</div><div>* rabbitmq_shovel_management-2.8.7</div></div><div>* webmachine-1.9.1-rmq2.8.7-git52e62bc</div><div><br></div><div><div>erlang version : 5.9.2</div></div><div><br></div><div><br></div></body></html>