[rabbitmq-discuss] Query for asynchronous acknowledgment

Matthew Sackman matthew at rabbitmq.com
Wed Aug 25 15:49:41 BST 2010


On Mon, Aug 16, 2010 at 06:40:31PM +0530, vivek agarwal wrote:
> So, is there anyways to achieve asynchronous acknowledgment of data?

Well, acknowledgements are by their definition async - they are sent by
the client when the client feels like it and do not evoke any response
by the broker.

Why could you not have the machine which is actually processing the
message and doing the work also be responsible for consuming and
acknowleding the work? You can have many consumers off the same queue.
Would this work for you?

> Again, I also wanted to know if there is a way to replicate data, to
> increase the system's availability.

Purely in terms of messages, no there is no way currently in Rabbit to
achieve this automatically. You could publish the messages to several
different Rabbits and then handle deduplification on the client side,
but that is significantly more work.

You could also publish messages in "persistent" mode (delivery_mode = 2)
so that they get written to disk and then use some sort of distributed
storage system (eg DRBD, ENBD etc, or some sort of NAS/SAN) to achieve
redundancy.

> So that, if a node1 running RabbitMQ goes down, a slave comes up and works
> like a master, so that all the queues and data on node1, are still
> accessible?

What you're describing there is what we call active/passive HA, which is
well documented and explained at http://www.rabbitmq.com/pacemaker.html

Matthew


More information about the rabbitmq-discuss mailing list