"chip_schoch" wrote : Thank you Andy and Clebert for taking the time to explain
this in detail. To reiterate, what you are saying is that if I need to have multiple
consumers processing messages from a clustered queue in FIFO order, than I should have all
my client consumers connect to the same node in the cluster.
|
|
The key point here, is that if you want to have true FIFO queue semantics, then there is
a) Absolutely no point in having more than one consumer - it will never give you better
throughput
Think about it this way: For true FIFO, ordered processing, you take a message from the
queue, you process it, when you have finished processing it, you can take another, ad
infinitum...
So you can clearly see there is no point in having more than one consumer on the queue
since you can never process them in parallel if you want to guarantee order.
Now, that one one consumer, it always makes sense for it to live on the same node, since
you don't want to incur an extra network hit to deliver it to another node before
processing.
Furthermore it makes zero sense to have different consumers on different nodes for the
same reasons outlined above. If you want FIFO then messages *must be processed
sequentially*, so if message 1 is being processed on node 1, then message 2 can be
processed on node 2 until message 1 processing is done.
Again, you can see that there's absolutely no point in having multiple consumers,
since you'll never get better throughput, since the processing is serialized. In fact
you'll get a negative hit due to the extra overhead of moving messages around
unnecessarily.
For a more technical explanation see Amdahl's law:
http://en.wikipedia.org/wiki/Amdahl's_law. In the case of a strict FIFO queue, zero
proportion of the work is parallelizable, so there is zero gain, in clustering it.
Clustering will only help you to improve throughput if at least some of your work load is
parallelizable.
In more technical terms, see Amdahls law:
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4146554#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...