On 06/10/2014 05:27 PM, Kurt Griffiths wrote:
I think the crux of the issue is that Marconi follows the REST
architectural style. As such, the client must track the state of where it
is in the queue it is consuming (to keep the server stateless). So, it
must be given some kind of marker, allowing it to page through messages in
the queue.
Isn't this true both for task distribution and feed semantics?
[...]
To my knowledge, this API can’t be mapped directly to AMQP.
I believe you are right, you could not map the HTTP based interface
defined for Marconi onto standard AMQP. As well as the explicit paging
through the queue you mention above, the concepts of claims and direct
deletion of messages are not exposed through AMQP[1].
AMQP was designed as an alternative interface into a messaging service,
one tailored for asynchronous behaviour. It isn't intended as a direct
interface to message storage.
Perhaps there are other types of brokers that can do it?
There are certainly brokers that support a RESTful HTTP based
interface[2] alongside other protocols. I don't know of any standard
protocol designed for controlling message storage however.
--Gordon.
[1] You could use a filter (aka a selector) to retrieve/dequeue a
specific message by id or some other property. You could also define
behaviour where an acquired message gets automatically released by the
server after a configurable time. However, in my view, even with such
extensions AMQP would still not be an ideal interface for message
*storage* as opposed to message transfer between two processes.
[2] http://activemq.apache.org/rest.html, http://hornetq.jboss.org/rest
and I'm sure there are others.
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev