[rabbitmq-discuss] What is an Exchange?
Alexandru Scvorţov
alexandru at rabbitmq.com
Mon Jan 31 10:25:44 GMT 2011
Hi Jeff,
> Being new to enterprise mq's, rabbit in particular, is there a definition
> for what an exchange does/is? The tutorial talks about how use use an
> exchange, and the 3 different types of exchanges but is there more
> conceptually to an exchange than functioning as a logical abstraction for
> segmenting queues and routing per virtual host and/or server?
An exchange is a message router. Clients publish messages to exchanges,
and the exchanges route the messages to other exchanges or to queues.
Exchanges do not modify messages and do not store messages.
> From what I've read so far, it doesn't appear to be possible for an exchange
> to span servers, true?
RabbitMQ nodes can be clustered together to form one large "logical"
broker. I.e. clients connecting to any node in the cluster will see the
same broker. So, a client can declare an exchange on one node, another
can publish to the exchange on a different node and the exchange may
route messages to queues declared on yet another node.
> Where do vhosts fit in this model? server -> vhost -> exchange -> queue?
> Are they just another logical abstraction that sits on top of exchanges?
> Is segmenting security the main/only reason?
Exchanges and queues are declared in the context of vhosts. So, you can
have two different exchanges with the same name, but in different
vhosts. It's just a convenient way to group exchanges, queues and
bindings.
> Links are always welcome, I've attempted to search for this information but
> get pages of code examples for results. So now I'm asking.
You already know about:
http://www.rabbitmq.com/documentation.html
The spec is the definitive guide, and the tutorial and the Java Client API
Guide give a hands-on introduction to RabbitMQ.
Hope this helps.
Cheers,
Alex
On Sun, Jan 30, 2011 at 06:42:47PM -0600, Jeff Hinrichs wrote:
> Being new to enterprise mq's, rabbit in particular, is there a definition
> for what an exchange does/is? The tutorial talks about how use use an
> exchange, and the 3 different types of exchanges but is there more
> conceptually to an exchange than functioning as a logical abstraction for
> segmenting queues and routing per virtual host and/or server?
>
> From what I've read so far, it doesn't appear to be possible for an exchange
> to span servers, true?
>
> Where do vhosts fit in this model? server -> vhost -> exchange -> queue?
> Are they just another logical abstraction that sits on top of exchanges?
> Is segmenting security the main/only reason?
>
> Links are always welcome, I've attempted to search for this information but
> get pages of code examples for results. So now I'm asking.
>
> Best,
>
>
> -Jeff
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
More information about the rabbitmq-discuss
mailing list