summaryrefslogtreecommitdiff
path: root/qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml
diff options
context:
space:
mode:
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.xml33
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>