diff options
Diffstat (limited to 'qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml')
| -rw-r--r-- | qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml b/qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml index 47c7b72b4d..1692fdc038 100644 --- a/qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml +++ b/qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml @@ -22,23 +22,30 @@ <section id="Java-Broker-Concepts-Exchanges"> <title>Exchanges</title> -<para><emphasis>Exchange</emphasis> is the named entity within the <emphasis>Virtual Host</emphasis> which receives messages from producer applications and -optionally routes them to message queues within the <emphasis>Virtual Host</emphasis>. The message routing occurs based on exchange routing algorithm -and queue <emphasis>Bindings</emphasis>.</para> +<para>An <emphasis>Exchange</emphasis> is a named entity within the <emphasis>Virtual Host</emphasis> which receives +messages from producers and routes them to matching message <emphasis>Queue</emphasis>s within the <emphasis>Virtual Host</emphasis>. +Message routing occurs based on the particular Exchange's routing algorithm and its configured queue <emphasis>Binding</emphasis>s.</para> <para> -The following <emphasis>Exchanges</emphasis> are implemented and supported by the <emphasis>Broker</emphasis>: +The following <emphasis>Exchange</emphasis> types are supported by the <emphasis>Broker</emphasis>: <itemizedlist> - <listitem><para><emphasis>Direct Exchange</emphasis> provides routing of messages to zero or more queues based on an exact match between -the routing key of the message, and the binding key used to bind the queue to the exchange + <listitem><para><emphasis>Direct</emphasis>: routes messages to queues based on an exact match between + the routing key of the message, and the binding key used to bind the queue to the exchange </para></listitem> - <listitem><para><emphasis>Topic Exchange</emphasis> provides routing to bound queues based on a pattern match between the binding key and the -routing key of the message. This exchange type is used to support the classic publish/subscribe paradigm using a topic namespace as the -addressing model to select and deliver messages across multiple consumers based on a partial or full match on a topic pattern. + <listitem><para><emphasis>Topic</emphasis>: routes messages to queues based on heirarchical pattern matching between the routing + key for each message and the binding keys used to bind Queues to the Exchange. This exchange type is used to support the classic + publish/subscribe paradigm using a topic namespace as the addressing model to select and deliver messages across multiple + consumers based on a partial or full match on a topic pattern. + </para> + <para> + Binding and routing keys for this Exchange use a "." deliminator to seperate words representing different levels of the heirarchy, + with special meaning given to use of * and # as a word within a binding key such that a * matches any single word in a routing + key and # matches zero or more words, allowing a binding key to match many routing keys for published messages. For example, + a binding key of <emphasis>a.b.#</emphasis> would match the routing keys <emphasis>a.b</emphasis>, <emphasis>a.b.c</emphasis>, and + <emphasis>a.b.c.d</emphasis>, but not the routing key <emphasis>a.z</emphasis>.</para></listitem> + <listitem><para><emphasis>Fanout</emphasis>: routes messages to all queues bound to the exchange, regardless of the message's routing key. </para></listitem> - <listitem><para><emphasis>Fanout Exchange</emphasis> provides routing of messages to all bound queues regardless of the message's routing key. - </para></listitem> - <listitem><para><emphasis>Headers Exchange</emphasis> provides routing based on header properties within the AMQP message. - The message is passed to the queue if the headers property matches the arguments with which the queue was bound. + <listitem><para><emphasis>Headers</emphasis>: routes messages to queues based on header properties within the AMQP message. + The message is passed to a queue if the header properties of the message satisfy header matching arguments table with which the queue was bound. </para></listitem> </itemizedlist> </para> |
