<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Passing Curiosity: Posts tagged messaging</title>
    <link href="https://passingcuriosity.com/tags/messaging/messaging.xml" rel="self" />
    <link href="https://passingcuriosity.com" />
    <id>https://passingcuriosity.com/tags/messaging/messaging.xml</id>
    <author>
        <name>Thomas Sutton</name>
        
        <email>me@thomas-sutton.id.au</email>
        
    </author>
    <updated>2012-08-19T00:00:00Z</updated>
    <entry>
    <title>PyconAU 2012: Message queueing</title>
    <link href="https://passingcuriosity.com/2012/message-queueing/" />
    <id>https://passingcuriosity.com/2012/message-queueing/</id>
    <published>2012-08-19T00:00:00Z</published>
    <updated>2012-08-19T00:00:00Z</updated>
    <summary type="html"><![CDATA[<h3 id="pymq">PyMQ</h3>
<p>LOLWUT?</p>
<h3 id="zeromq">ZeroMQ</h3>
<p>Basically a socket; no broker; no persistence.</p>
<h3 id="rabbitmq">RabbitMQ</h3>
<p>Complete implementation of AMQP, plus extra stuff too. Each exchange is a
separate process in RabbitMQ.</p>
<h3 id="amqp">AMQP</h3>
<p><a href="http://amqp.org">AMQP</a> is a standard protocol for message queueing.
Producers, brokers, consumers; exchanges and queues.</p>
<h3 id="exchanges">Exchanges</h3>
<p>Three types of exchanges:</p>
<ol type="1">
<li><p>Direct exchanges transmit a message with a matching routing key into the
queue it is bound to.</p></li>
<li><p>Topic exchanges transmit messages with a routing key which matches a
pattern into the queue it is bound to.</p></li>
<li><p>Fanout exchanges transmit a message to all queues it is bound to.</p></li>
</ol>
<p>Mark exchange durable. Mark queues durable. Both need to be durable to connect
to each other. Also: clients need to ask for durable.</p>
<p>Message persistence: set “deliverymode=2” on the message.</p>
<h3 id="architecture">Architecture</h3>
<p>Have queues on both sides of the cloud, so if the tubes get clogged messages
are stored on either side.</p>
<p>RabbitMQ has a server plugin called Shovel which will forward the messages in
a queue to a queue on another RabbitMQ server. This works around the fact that
you can’t connect a queue to a queue.</p>
<p>Configuring it is basically writing an Erlang program.</p>
<h3 id="web-interface">Web Interface</h3>
<p>Default credentials: guest / guest</p>
<h3 id="python">Python</h3>
<p>Piku</p>
<p>Kombu</p>
<p>http://www.tcpcatcher.fr</p>]]></summary>
</entry>

</feed>
