Return-Path: X-Original-To: apmail-qpid-users-archive@www.apache.org Delivered-To: apmail-qpid-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 09A1F9580 for ; Thu, 3 May 2012 17:32:24 +0000 (UTC) Received: (qmail 36371 invoked by uid 500); 3 May 2012 17:32:23 -0000 Delivered-To: apmail-qpid-users-archive@qpid.apache.org Received: (qmail 36330 invoked by uid 500); 3 May 2012 17:32:23 -0000 Mailing-List: contact users-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@qpid.apache.org Delivered-To: mailing list users@qpid.apache.org Received: (qmail 36322 invoked by uid 99); 3 May 2012 17:32:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 May 2012 17:32:23 +0000 X-ASF-Spam-Status: No, hits=1.3 required=5.0 tests=RCVD_IN_DNSWL_NONE,SPF_PASS,URI_HEX X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of fraser.adams@blueyonder.co.uk designates 81.103.221.48 as permitted sender) Received: from [81.103.221.48] (HELO mtaout02-winn.ispmail.ntl.com) (81.103.221.48) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 May 2012 17:32:15 +0000 Received: from know-smtpout-3.server.virginmedia.net ([62.254.123.3]) by mtaout02-winn.ispmail.ntl.com (InterMail vM.7.08.04.00 201-2186-134-20080326) with ESMTP id <20120503173154.DZRO28930.mtaout02-winn.ispmail.ntl.com@know-smtpout-3.server.virginmedia.net> for ; Thu, 3 May 2012 18:31:54 +0100 Received: from [82.33.36.91] (helo=[192.168.1.2]) by know-smtpout-3.server.virginmedia.net with esmtpa (Exim 4.63) (envelope-from ) id 1SPzrj-0007mM-Vn for users@qpid.apache.org; Thu, 03 May 2012 18:30:56 +0100 Message-ID: <4FA2C0CC.7050705@blueyonder.co.uk> Date: Thu, 03 May 2012 18:30:52 +0100 From: Fraser Adams User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1 MIME-Version: 1.0 To: users@qpid.apache.org Subject: Re: Messaging Flow Design in Qpid References: <1335980528.978124940@apps.rackspace.com> <4FA17E90.8060907@blueyonder.co.uk> <1335984896.785721787@apps.rackspace.com> In-Reply-To: <1335984896.785721787@apps.rackspace.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Cloudmark-Analysis: v=1.1 cv=R50lirqlHffDPPkwUlkuVa99MrvKdVWo//yz83qex8g= c=1 sm=0 a=5XsFQGJ3Uf0A:10 a=EbOebjd4VDwA:10 a=3NElcqgl2aoA:10 a=8nJEP1OIZ-IA:10 a=VsqjL4KTAAAA:8 a=9I5xiGouAAAA:8 a=mV9VRH-2AAAA:8 a=4q5L2s6DuCR0BJWY_IQA:9 a=XjDpfT62Srj6VgNeybwA:7 a=wPNLvfGTeEIA:10 a=Mxq4ZiaUFQQA:10 a=qX-FWgDW4soA:10 a=HpAAvcLHHh0Zw7uRqdWCyQ==:117 On 02/05/12 19:54, m.luchak@smartasking.com wrote: > , but even so I would be wary of implementing features that are not supported. That's an interesting discussion/debate :-) I think Gordon Sim and I disagree on this one and he's more of the expert than I, however when we last discussed this topic (bad pun!!) he conceded that it might be useful to have a way to achieve intra (as opposed to inter) broker routing. I believe this too, so my assertion is that until a more appropriate mechanism is in place then a workaround using federation isn't so very bad. The question about "supported" is interesting in the sense that the support of the qpid tools is variable, what I mean is that qpid-route has been around for a long time and works well, but has its limitations - for example federating using the headers exchange is limited to using queue routes (dynamic routes I believe work from qpid 0.12) but static routes don't - mainly because the command line options don't support it rather than because it can't be done by the broker. Similarly IIRC when you specify the exchange you use an exchange name, so (using the default exchanges) you couldn't federate between say a fan-out exchange to a headers exchange (though I'm pretty sure you can if you create your own exchanges of the same name but different type). This isn't a criticism of qpid-route BTW so please don't take as such, it's merely a comment on the fact that it has grown relatively organically but doesn't necessarily do all of the federation possibilities that are available which may be useful, so I'm suggesting that support is a relative term. All of this stuff *is* actually supported however because "under the hood" qpid-route used QMF methods to create links and bridges so if you construct what you need directly using QMF the broker will actually do it fine, which is why I believe my little hack of qpid-route is harmless - if I'd written my own little QMF application to do this stuff it'd be just another QMF application. On your second question "Is there a simpler way to bind/unbind a queue to multiple exchanges? " your bindings *looked* OK (by eyeball - I haven't tried them). Unfortunately I'm not aware of a simpler/less verbose way to describe the bindings you want :-( In UML terms I think that bindings would look like an association class between an exchange and a queue, so you you really have to specify both the exchange and the queue. You've got me thinking though, it might have been nice to have a syntax such that one specifies an exchange & queue and a list of bindings between them. I suspect that a common use case might be multiple bindings between a given exchange and queue, so that way of describing things would be slightly less verbose. It's just an idle musing, there's probably a good reason that it's the way it is. I use copy and paste reuse a lot when I'm creating addresses :-) It'd take me ages to put one together from scratch. I wish the documentation had some good headers exchange examples, I hate working things out from BNF....... Cheers, Frase. > That said, it seems a pretty harmless hack and taking care not to create a binding loop would actually be trivial in our particular case... so I guess I'll sleep on it ;) > > Any insight on my second question? Is there a simpler way to bind/unbind a queue to multiple exchanges? > > > On 02/05/12 18:42, m.luchak@smartasking.com wrote: >> Hi All, >> >> Thanks for all your help with the selector questions that I had last week. We are conducting more tests to see if Qpid is the solution for our architecture but we have some doubts...Our flow requires that exchanges subscribe to exchanges and queues in turn subscribe to multiple exchanges. >> >> 1) Is it possible to bind Exchanges to Exchanges? I have seen some posts giving an emphatic NO: ([http://qpid.2158936.n2.nabble.com/how-to-bind-exchange-to-exchange-like-bind-exchange-to-queue-in-the-same-broker-td6385448.html] http://qpid.2158936.n2.nabble.com/how-to-bind-exchange-to-exchange-like-bind-exchange-to-queue-in-the-same-broker-td6385448.html) >> >> >> 2) The x-binding syntax , that I have encountered, for binding a queue to multiple exchanges seems a little convoluted and the last time I asked you guys for help I discovered wonderful new simplified classes and methods :). Is the following example the best practice for creating multiple bindings? >> >> x-bindings:[{queue:MYQUEUE,exchange:'FIRST_EXCHANGE',key: 'binding1', arguments:{'x-match':any,'a':'10'}}, { queue:MYQUEUE ,exchange:'SECOND_EXCHANGE',key: 'binding2', arguments: {'x-match':any,'a':'10'}}] >> >> If so I would need to persist the "binding keys" (binding1, binding2) in order to remove the bindings later. >> >> >> >> thanks for all your help, >> Matthew >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org > For additional commands, e-mail: users-help@qpid.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org For additional commands, e-mail: users-help@qpid.apache.org