<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="&#1;" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.5pt;vertical-align:baseline'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>Hi,<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.5pt;vertical-align:baseline;border-style:initial;border-color:initial;background-image:initial;background-attachment:initial;background-origin: initial;background-clip: initial;word-wrap: break-word;background-position:initial initial;background-repeat:initial initial'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>I've read many posts and blogs at this point and I'm still not sure about how to cluster correctly my 2 RabbitMQ nodes.<o:p></o:p></span></p><p style='margin:0in;margin-bottom:.0001pt;line-height:13.5pt;vertical-align:baseline;border-style:initial;border-color:initial;background-image:initial;background-attachment:initial;background-origin: initial;background-clip: initial;word-wrap: break-word;background-position:initial initial;background-repeat:initial initial'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>I've read the RabbitMQ clustering guide:</span><span class=apple-converted-space><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>&nbsp;</span></span><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'><a href="http://www.rabbitmq.com/clustering.html"><span style='color:#0077CC;border:none windowtext 1.0pt;padding:0in'>http://www.rabbitmq.com/clustering.html</span></a><o:p></o:p></span></p><p style='margin:0in;margin-bottom:.0001pt;line-height:13.5pt;vertical-align:baseline;border-style:initial;border-color:initial;background-image:initial;background-attachment:initial;background-origin: initial;background-clip: initial;word-wrap: break-word;background-position:initial initial;background-repeat:initial initial'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>I found out about a mysterious ClusterId in the API guide, with no explanation on how to get that Id in the first place:</span><span class=apple-converted-space><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>&nbsp;</span></span><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'><a href="http://www.rabbitmq.com/releases/rabbitmq-dotnet-client/v2.4.1/rabbitmq-dotnet-client-2.4.1-api-guide.pdf"><span style='color:#0077CC;border:none windowtext 1.0pt;padding:0in'>http://www.rabbitmq.com/releases/rabbitmq-dotnet-client/v2.4.1/rabbitmq-dotnet-client-2.4.1-api-guide.pdf</span></a><o:p></o:p></span></p><p style='margin:0in;margin-bottom:.0001pt;line-height:13.5pt;vertical-align:baseline;border-style:initial;border-color:initial;background-image:initial;background-attachment:initial;background-origin: initial;background-clip: initial;word-wrap: break-word;background-position:initial initial;background-repeat:initial initial'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>Learned in that StackOverflow post that basically I'd need my clients to be aware of each node in the cluster and code for failover scenario:</span><span class=apple-converted-space><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>&nbsp;</span></span><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'><a href="http://stackoverflow.com/questions/4140653/rabbitmq-ha-cluster"><span style='color:#0077CC;border:none windowtext 1.0pt;padding:0in'>rabbitmq HA cluster</span></a><o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.5pt;vertical-align:baseline;border-style:initial;border-color:initial;background-image:initial;background-attachment:initial;background-origin: initial;background-clip: initial;word-wrap: break-word;background-position:initial initial;background-repeat:initial initial'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>Now... The behavior I'd like to have is something a little more transparent if possible. Where I would potentially use that &quot;ClusterId&quot; on the client to make the consumer cluster aware and then hopefully the library knows to randomly connect to either node to grab messages.<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.5pt;vertical-align:baseline;border-style:initial;border-color:initial;background-image:initial;background-attachment:initial;background-origin: initial;background-clip: initial;word-wrap: break-word;background-position:initial initial;background-repeat:initial initial'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>Granted I know a message can only be on one server at a time, so I'm hoping for some round robin magic from the DotNet client library that would also handle fail over situations.<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.5pt;vertical-align:baseline;border-style:initial;border-color:initial;background-image:initial;background-attachment:initial;background-origin: initial;background-clip: initial;word-wrap: break-word;background-position:initial initial;background-repeat:initial initial'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>What I was hoping also from a publisher perspective is that the exchange would round robin distribute messages to the various nodes in the cluster. The exchange would also be cluster aware and handle fail over situations gracefully.<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.5pt;vertical-align:baseline'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>Basically I was hoping for the whole thing to scale without changing any code or configuration on the publisher or consumer apps.<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.5pt;vertical-align:baseline;border-style:initial;border-color:initial;background-image:initial;background-attachment:initial;background-origin: initial;background-clip: initial;word-wrap: break-word;background-position:initial initial;background-repeat:initial initial'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>Now based on my readings it doesn't quite work like that... unless I missed something. If my knowledge is up to date and I have to code all that cluster aware business, then... why does RabbitMQ have a cluster feature in the first place? How is it used?<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.5pt;vertical-align:baseline;border-style:initial;border-color:initial;background-image:initial;background-attachment:initial;background-origin: initial;background-clip: initial;word-wrap: break-word;background-position:initial initial;background-repeat:initial initial'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>Is there a way to have that kind of behavior out of RabbitMQ without coding that much?<o:p></o:p></span></p><p style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.5pt;vertical-align:baseline;border-style:initial;border-color:initial;background-image:initial;background-attachment:initial;background-origin: initial;background-clip: initial;word-wrap: break-word;background-position:initial initial;background-repeat:initial initial'><span style='font-size:10.5pt;font-family:"Arial","sans-serif";color:black'>Thanks<o:p></o:p></span></p><p class=MsoNormal>Yann<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></body></html>