<div>We're also looking at about 3000 messages/second (high side), out of which we need 1000 of these to be persistent (since they represent payments that must happen). However all of these are currently meant to be synchronous, meaning we have someone sitting on a browser waiting for us to deal with this message and send a response back. So in the short term the only advantage we're hoping to gain is in the case of the persistent queues. In this case we're relying on the guarantee that the message will be dealt with even if there is some temporary glitch, and our web based client gets a timeout message. <br>
</div><div><br></div><div>The way we plan to implement these synchronous messages is, similar to the RPC model, to create a temporary queue when we send out a request and subscribe to that queue with a timeout for a response, deleting it after we're done.</div>
<div><br></div><div>now, if the webserver thread breaks out of the wait before the message returns, my understanding is that the temporary queue gets deleted and the response from the backend server is sent to the exchange where it dies. (which is fine)</div>
<div><br></div><div>if the webserver thread breaks out of the wait after the message returns, the queue gets deleted anyway and the message should vanish.</div><div><br></div><div>If the webserver thread dies for some reason, the queue gets auto deleted and so the backend server again sends the response to the exchange to a non existent queue.</div>
<div><br></div><div>However, the problem comes in when the webserver thread dies just as the response returns on the temporary queue. When this race condition occurs, the queue should remain on the rabbitmq-server forever. Is this right, or is there something I'm missing?</div>
<br><div class="gmail_quote">On Fri, Jan 1, 2010 at 1:06 AM, vishnu <span dir="ltr"><<a href="mailto:pathsny@gmail.com">pathsny@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
fair enough, let me come back with some numbers :), I just wanted to first make sure I'm not doing something brain dead :). <div><div class="h5"><br><br><div class="gmail_quote">On Thu, Dec 31, 2009 at 8:51 PM, Chuck Remes <span dir="ltr"><<a href="mailto:cremes.devlist@mac.com" target="_blank">cremes.devlist@mac.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><br>
On Dec 31, 2009, at 9:15 AM, vishnu wrote:<br>
<br>
> Hi<br>
> We're looking at building an application that does a fair amount<br>
> of synchronous processing. However we are investigating using a<br>
> queuing system as a messaging bus because some of these processes<br>
> are meant to be reliable. Using a queue helps us guarantee that<br>
> messages are dealt with and avoids us having to right background<br>
> processes to clean up after us.<br>
><br>
> There are, however, a fair number of operations that are not<br>
> required to be reliable and we are thinking of implementing these<br>
> also through the queue but use non persistent queues. Now the<br>
> concern we have is the kinds of latencies we might see. So I'd like<br>
> to get general feedback on using this approach.<br>
<br>
</div></div>Give us some idea of the data rates you are expecting. I regularly<br>
publish 3000+ messages/second using ruby which isn't exactly known for<br>
its performance. :) Latency is a millisecond or so for topic<br>
exchanges, and under 1 millisecond for direct and fanout exchanges.<br>
(Exchange type matters due to matching overhead.)<br>
<br>
However, since you say that all processing is synchronous, the length<br>
of time to complete that process will be your gating factor.<br>
<font color="#888888"><br>
cr<br>
</font><div><div><br>
<br>
_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>