<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">So an interesting addendum:<div><br></div><div>I tossed a slight modification of my main method:</div><div><br></div><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>List<Thread> threadsStarted = <span style="color: #900868">new</span> ArrayList<Thread>();</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">for</span> (<span style="color: #900868">int</span> i = 0; i < 5; i++) {</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; "><span class="Apple-tab-span" style="white-space:pre">                        </span>threadsStarted.add(t);</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; "><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">for</span> (Thread t : threadsStarted) {</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.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><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">And started seeing 16k messages per second. I'll be doing some more testing to see where my block might be. Could be as simple as how I'm handling threads...</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">Thanks!</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">Jason</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><br></div><div><div>On Oct 7, 2012, at 8:33 PM, McIntosh Jason wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div 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. However, despite a lot of repeated attempts, I'm not able to get more than 4-5k messages/sec out of any rabbit server. Here are the results of some tests:</div><div><br></div><div>Single connection, Single Exchange, Single queue: ~4000 msg/sec<div>Single connection, Single Exchange, Two queues : ~4000 msg/sec</div><div>Single connection, Two Exchanges, Single queue : ~4000 msg/sec</div><div><div><div>Single connections, Two Exchanges, Two queues : ~4000 msg/sec</div></div><div>Two connections, Two Exchanges, Two queues : ~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. 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. 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 <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 <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> <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> <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. Below is the setup I've got, sample code, etc. Any advice would be welcome! </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. 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><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><span class="Apple-tab-span" style="white-space:pre">        </span><br class="webkit-block-placeholder"></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.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><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><span class="Apple-tab-span" style="white-space:pre">        </span><br class="webkit-block-placeholder"></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">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><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><span class="Apple-tab-span" style="white-space:pre">                </span><br class="webkit-block-placeholder"></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; ">}</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></div></blockquote></div><br></div></body></html>