<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Rabbits and warrens.</title>
	<atom:link href="http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/</link>
	<description>thoughts &#38; musings</description>
	<lastBuildDate>Sat, 24 Jul 2010 02:26:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jason</title>
		<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-1/#comment-17193</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Sat, 24 Jul 2010 02:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/#comment-17193</guid>
		<description>Multiple channels to my experience really give you two things: concurrency and guaranteed order. 

for example, let&#039;s say you&#039;re breaking a file into 100 messages and re-assembling them on the otherside. If you transmit all 100 on one channel you can be guaranteed that message 1 is consumed before message 2 and so on. 

Having multiple channels...say one per thread let&#039;s you publish multiple messages more in parallel. Also, let&#039;s say you&#039;ve got one thread that needs to wait on a reply queue after publishing, that channel will not be able to do publishing again until it&#039;s exited consume mode. That would keep your other threads from being able to send or consume messages. </description>
		<content:encoded><![CDATA[<p><code>Multiple channels to my experience really give you two things: concurrency and guaranteed order. </p><p>for example, let&#8217;s say you&#8217;re breaking a file into 100 messages and re-assembling them on the otherside. If you transmit all 100 on one channel you can be guaranteed that message 1 is consumed before message 2 and so on. </p><p>Having multiple channels&#8230;say one per thread let&#8217;s you publish multiple messages more in parallel. Also, let&#8217;s say you&#8217;ve got one thread that needs to wait on a reply queue after publishing, that channel will not be able to do publishing again until it&#8217;s exited consume mode. That would keep your other threads from being able to send or consume messages.</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rachid</title>
		<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-1/#comment-17061</link>
		<dc:creator>Rachid</dc:creator>
		<pubDate>Tue, 20 Jul 2010 12:50:17 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/#comment-17061</guid>
		<description>Thank you for this excellent article</description>
		<content:encoded><![CDATA[<p><code>Thank you for this excellent article</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Darius Damalakas</title>
		<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-1/#comment-16929</link>
		<dc:creator>Darius Damalakas</dc:creator>
		<pubDate>Wed, 14 Jul 2010 13:20:25 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/#comment-16929</guid>
		<description>Hackeron, the download links work fine, just tested, examples work fine. AMQP really rocks ;)</description>
		<content:encoded><![CDATA[<p><code>Hackeron, the download links work fine, just tested, examples work fine. AMQP really rocks <img src='http://blogs.digitar.com/jjww/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: [RabbitMQ+Python入门经典] 兔子和兔子窝 &#124; 有氧呼吸</title>
		<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-1/#comment-16735</link>
		<dc:creator>[RabbitMQ+Python入门经典] 兔子和兔子窝 &#124; 有氧呼吸</dc:creator>
		<pubDate>Tue, 06 Jul 2010 06:49:44 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/#comment-16735</guid>
		<description>[...] RabbitMQ作为一个工业级的消息队列服务器，在其客户端手册列表的Python段当中推荐了一篇blog，作为RabbitMQ+Python的入门手册再合适不过了。不过，正如其标题Rabbit and Warrens（兔子和养兔场）一样，这篇英文写的相当俏皮，以至于对于我等非英文读者来说不像一般的技术文档那么好懂，所以，翻译 一下吧。翻译过了，希望其他人可以少用一些时间。翻译水平有限，不可能像原文一样俏皮，部分地方可能就意译了，希望以容易懂为准。想看看老外的幽默的，推 荐去看原文，其实，也不是那么难理解&#8230;&#8230; [...]</description>
		<content:encoded><![CDATA[<p><code>[...] RabbitMQ作为一个工业级的消息队列服务器，在其客户端手册列表的Python段当中推荐了一篇blog，作为RabbitMQ+Python的入门手册再合适不过了。不过，正如其标题Rabbit and Warrens（兔子和养兔场）一样，这篇英文写的相当俏皮，以至于对于我等非英文读者来说不像一般的技术文档那么好懂，所以，翻译 一下吧。翻译过了，希望其他人可以少用一些时间。翻译水平有限，不可能像原文一样俏皮，部分地方可能就意译了，希望以容易懂为准。想看看老外的幽默的，推 荐去看原文，其实，也不是那么难理解&hellip;&hellip; [...]</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: George</title>
		<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-1/#comment-16504</link>
		<dc:creator>George</dc:creator>
		<pubDate>Fri, 25 Jun 2010 12:32:20 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/#comment-16504</guid>
		<description>Thanks for this writeup! A year and a half later it&#039;s still almost the only resource for AMQP from Python.

One thing it&#039;s not clear for me from the example is what are (multiple) channels used for and how do they relate to exchanges and queues. In which occasions would a client or a server create more than one channels ? If a client does &quot;msg1 = chan1.basic_get(&#039;po_box&#039;)&quot; and &quot;msg2 = chan2.basic_get(&#039;po_box&#039;)&quot; back to back, is msg1==msg2 or they are two successive messages (my guess is the latter but then I don&#039;t see the difference of using one vs two channels).</description>
		<content:encoded><![CDATA[<p><code>Thanks for this writeup! A year and a half later it&#8217;s still almost the only resource for AMQP from Python.</p><p>One thing it&#8217;s not clear for me from the example is what are (multiple) channels used for and how do they relate to exchanges and queues. In which occasions would a client or a server create more than one channels ? If a client does &#8220;msg1 = chan1.basic_get(&#8216;po_box&#8217;)&#8221; and &#8220;msg2 = chan2.basic_get(&#8216;po_box&#8217;)&#8221; back to back, is msg1==msg2 or they are two successive messages (my guess is the latter but then I don&#8217;t see the difference of using one vs two channels).</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cal Leeming</title>
		<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-1/#comment-15984</link>
		<dc:creator>Cal Leeming</dc:creator>
		<pubDate>Thu, 27 May 2010 20:46:20 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/#comment-15984</guid>
		<description>Heya,

Thank you ever so much for this introduction into RabbitMQ, it&#039;s definitely been one of the more interesting documents I&#039;ve read in quite a long time, and has been quite informative!

Cal</description>
		<content:encoded><![CDATA[<p><code>Heya,</p><p>Thank you ever so much for this introduction into RabbitMQ, it&#8217;s definitely been one of the more interesting documents I&#8217;ve read in quite a long time, and has been quite informative!</p><p>Cal</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-1/#comment-14195</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Tue, 02 Mar 2010 19:33:32 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/#comment-14195</guid>
		<description>Hi Hackeron. The embedded download links still work for me.</description>
		<content:encoded><![CDATA[<p><code>Hi Hackeron. The embedded download links still work for me.</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-1/#comment-14194</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Tue, 02 Mar 2010 19:32:37 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/#comment-14194</guid>
		<description>Very cool! Thanks Jeffrey!</description>
		<content:encoded><![CDATA[<p><code>Very cool! Thanks Jeffrey!</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-1/#comment-14193</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Tue, 02 Mar 2010 19:31:57 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/#comment-14193</guid>
		<description>Hi Bart. E-mail me and I&#039;ll try and see if there&#039;s a problem with the code: williamsjj at digitar dot com</description>
		<content:encoded><![CDATA[<p><code>Hi Bart. E-mail me and I&#8217;ll try and see if there&#8217;s a problem with the code: williamsjj at digitar dot com</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hackeron</title>
		<link>http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/comment-page-1/#comment-13789</link>
		<dc:creator>Hackeron</dc:creator>
		<pubDate>Thu, 18 Feb 2010 03:06:22 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/#comment-13789</guid>
		<description>Can someone post the consumer.py and publisher.py files again somewhere?</description>
		<content:encoded><![CDATA[<p><code>Can someone post the consumer.py and publisher.py files again somewhere?</code></p>
]]></content:encoded>
	</item>
</channel>
</rss>
