[rabbitmq-discuss] Cluster Pathology
0x6e6562 at gmail.com
Wed Feb 11 17:32:23 GMT 2009
On Wed, Feb 11, 2009 at 4:50 PM, Jason J. W. Williams
<jasonjwwilliams at gmail.com> wrote:
> That's the road we've started going down. We were going to give Qpid a
> shot, but it doesn't work on OpenSolaris (particularly the persister).
> Unclustered Rabbit nodes eliminates the orphaned consumer problem. In
> RAS terms, RabbitMQ clustering seems to only provide the A. It seems
> to me on a node failure, either Rabbit needs to migrate an empty
> version of the queue to another node, or send a "you're dead" notice
> to consumers attached to the queue via nodes that aren't hosting the
> queue. Also, if the queue has been redeclared, there optimally would
> be a way for the dead node to replay its messages (if desired) into
> the recreated queue(s) when it comes back up.
I'm going to try to summarize this as best as possible due to the fact
that the thread has moved on a bit:
- The reason why the consumer does not get notified about the removal
of a queue (for whatever reason it may have disappeared) is because
that this behaviour is not specified in the protocol. It is possible
that this was an oversight, you would have to seek reference from your
local AMQP representative. In practical terms, this notion has been
addressed to an extent in the 0-10 version of the protocol, but YMMV.
Going forwards, this is exactly the kind of thing that needs to get
nailed down in the 1.0 version of the protocol;
- Quorum decisions are difficult at the best of times, hence why we
would need to think long and hard about how to do transparent
- Replay logic is potentially equally as tricky, once you have
considered all of the corner cases;
I can tell you right now that Rabbit does not currently cater for
these circumstances OOTB, so if these are hard requirements for you,
you may want to look somewhere else.
If your application could subscribe to AMQP level events OTOH, there
may be a simple way to solve this issue for you in a protocol
compliant fashion - for example, we do have patches that allow clients
to subscribe to presence events. If the above is a not a KO critiereon
for you, we could look into this option.
BTW what is RAS?
More information about the rabbitmq-discuss