Return-Path: Delivered-To: apmail-qpid-users-archive@www.apache.org Received: (qmail 48830 invoked from network); 4 Oct 2010 18:16:00 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 4 Oct 2010 18:16:00 -0000 Received: (qmail 8242 invoked by uid 500); 4 Oct 2010 18:16:00 -0000 Delivered-To: apmail-qpid-users-archive@qpid.apache.org Received: (qmail 8200 invoked by uid 500); 4 Oct 2010 18:15:59 -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 Delivered-To: moderator for users@qpid.apache.org Received: (qmail 1938 invoked by uid 99); 4 Oct 2010 18:13:12 -0000 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=SPF_HELO_PASS,SPF_NEUTRAL,URI_HEX X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: 216.139.236.158 is neither permitted nor denied by domain of felix.ehm@cern.ch) Date: Mon, 4 Oct 2010 11:12:45 -0700 (PDT) From: felixehm To: users@qpid.apache.org Message-ID: <1286215965015-5600245.post@n2.nabble.com> Subject: Qpid messaging design MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi, We're currently evaluating Qpid as a middleware solution and during this process I stumbled upon some questions which I hoped to get clarified with some of your help. For the evaluation I have to implement a typical scenario on our site. 400 Metrics (numbers) are published every second and need to be retrieved < 300ms by max 10 subscribers. It should still be possible to subscribe to individual values only. In JMS words : 400 topics each subscribed by 10 Message listeners. Now, reading the documentation and the examples the way to go is to send the values via a topic exchange and set the routing key for each Message to the according value identifier: for (i=0;..){ message.getDeliveryProperties().setRoutingKey(routing_key+i); async(session).messageTransfer(arg::content=message, arg::destination="amq.topic"); } (I'm aware that packing them into one message is very obvious and faster. But for various reasons this is currently not possible in our environment.) The subscriber on the other hand will subscribe using the same exchange, but for each subscription a different routingKey. for (i=0..){ session.queueDeclare(arg::queue=queue+i, arg::exclusive=false, arg::autoDelete=true); session.exchangeBind(arg::exchange="amq.topic", arg::queue=queue+i, arg::bindingKey=metric1); } 1. Is this the only way to realize the described scenario? 2. Why do I need an own queue per routing key per client (400 x 10)? I've tried to move the queueDeclare outside the loop to re-use the client-specific queue. I'd imagine that the server then dispatches messages with the according routing key to this client's queue. But apparently this is not allowed by the client library. It might well be that I've misunderstood some concepts and would therefore I'd appreciate any help on this. Cheers, Felix -- View this message in context: http://apache-qpid-users.2158936.n2.nabble.com/Qpid-messaging-design-tp5600245p5600245.html Sent from the Apache Qpid users mailing list archive at Nabble.com. --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:users-subscribe@qpid.apache.org