Cisco Cisco Process Orchestrator 3.1 User Guide

Page of 786
 
1-14
Cisco Process Orchestrator 3.1 User Guide
 
Chapter 1      Introduction 
  Process Orchestrator System Components
AMQP Exchange Types 
The exchange type determines how AMQP processes and routes messages. There are several types of 
exchanges. 
Exchange Type
Description
Default
The default exchange is a direct exchange with no name (empty string) pre-declared 
by the broker. It has one special property that makes it very useful for simple 
applications: every queue that is created is automatically bound to it with a routing 
key which is the same as the queue name.
For example, when you declare a queue with the name of "search-indexing-online", 
the AMQP broker will bind it to the default exchange using 
"search-indexing-online" as the routing key. Therefore, a message published to the 
default exchange with the routing key "search-indexing-online" will be routed to 
the queue "search-indexing-online". In other words, the default exchange makes it 
seem like it is possible to deliver messages directly to queues, even though that is 
not technically what is happening.
Direct
Delivers messages to queues based on the message routing key. A direct exchange 
is ideal for the unicast routing of messages (although they can be used for multicast 
routing as well).
Fanout
Routes messages to all of the queues that are bound to it and the routing key is 
ignored. If N queues are bound to a fanout exchange, when a new message is 
published to that exchange a copy of the message is delivered to all N queues. 
Fanout exchanges are ideal for the broadcast routing of messages.
Topic
Routes messages to one or many queues based on matching between a message 
routing key and the pattern that was used to bind a queue to an exchange. The topic 
exchange type is often used to implement various publish/subscribe pattern 
variations. Topic exchanges are commonly used for the multicast routing of 
messages.
Headers
Routes messages based on multiple attributes that are more easily expressed as 
message headers than a routing key. Headers exchanges ignore the routing key 
attribute. Instead, the attributes used for routing are taken from the headers 
attribute. A message is considered matching if the value of the header equals the 
value specified upon binding.