[openamq-dev] Named & Persistent Queue Status
Pieter Hintjens
ph at imatix.com
Mon Nov 19 20:06:15 CET 2007
On Nov 19, 2007 4:09 PM, Matthew Alton <simplicissimus at gmail.com> wrote:
> What was I talking about? Yes, the library. If you would be so very good
> as to provide me with a definitive description of the method of implementing
> persistent queues using OpenAMQ, I will write a library and a tutorial.
To be honest, implementing persistent queues is not impossible, just
tedious. You need to:
- learn our XML class frameworks
- learn how the AMQP/0-9 acknowledgment and transaction model works
- write a generalised storage layer
- modify the queue classes to use that layer
- implement the AMQP methods for acknowledging messages and for transactions
And you would still get a reliability that could not survive server
failover, and which would not scale if you federate servers into
larger networks.
All in all, it seems a lot of work for little return.
Let me propose a truly impossible way to get reliability. Consider
OpenAMQ to be a very rapid delivery service for building distributed
applications. Note that we can shift tens of thousands of messages
per second with latencies of half a millisecond or better.
Now, consider "MQ-series reliability" to be a distributed application
in which end-user apps talk to a reliable broker across an AMQP
network. That is, you can build the following:
a. a user-level broker that handles MQ-series style reliable queues
b. a message syntax that lets you publish to and consume from reliable queues
c. an API that looks indecently like a simplified MQ-series API
Your reliable queue broker sits outside OpenAMQ, perhaps on a separate
box sitting on a nice reliable disk system. It handles a set of
queues in user space, i.e. at the level above OpenAMQ queues. It
works on a message syntax that is in user-space, i.e. forms part of
the opaque body delivered by OpenAMQ.
Of course this is totally impossible. :-)
-
Pieter
More information about the openamq-dev
mailing list