[openstack-dev] [OSLO] Comments/Questions on Messaging Wiki

Eric Windisch eric at cloudscaling.com
Tue Jul 16 20:40:30 UTC 2013

> >   Target(exchange='nova', topic='compute')
> >   Target(exchange='nova', topic='compute', server='compute1')
> >   Target(exchange='nova', topic='compute', fanout=True)
> >
> > In the first case, any compute service will do. In the second, you want
> > to invoke the method on a particular compute service. The the latter
> > case, you want to invoke it on all compute services.
> This really helps understand some of what I've read. Thanks.
> It seems that exchange is really just a high level qualifier of a
> namespace for the most part.
> Q: if in the above last Target, fanout was false (fanout=False) would that
> mean that you are expecting queue type behavior in that instance? i.e. I
> want only one consumer, I don't care which one, but only one consumer to
> service this request? So that syntax would change the semantics from
> pub/sub topic (i.e. all subscribers to the topic get it) to a queue
> semantic (first consumer to acquire the message causes it to dequeue and be
> not available to others?

Correct. Provided fanout=False, the behavior would be the same as with the
first example.

Also, I should add that there is a module in Oslo called the Matchmaker to
allow consumers to subscribe their addresses to virtual queues in a
peer-to-peer setting. This is presently used by the ZeroMQ driver. Because
a pure peer-to-peer system has no centralized broker, there needs to be
some peer tracker to provide an analogue to a queue. It would be possible
for an AMQP 1.0 based driver to leverage this module.

Eric Windisch
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130716/49b1b27a/attachment.html>

More information about the OpenStack-dev mailing list