Carl Trieloff wrote:
For load distributing ordering is (may I say) never a requirement. -
priority however should be honored. why can't load distribution
be a special case of an exchange, allowing the clustering to be
simplified to just the active-passive logic?
Strict ordering may not be, but you wouldn't want to have too much
variability(?). Doing load-balancing in the exchange by just routing
messages to one of several queues I have no problem with. But extending
that role to dequeue messages from longer queues and enqueue them to
shorter ones didn't seem like the right design to me. A distributed
queue seemed to more accurately reflect what is required and also be
more generally applicable.
However, as Alan rightly points out, the success of any approach needs
to be measured in how well it realises the desired increase in
scalability. Getting a solution that works also involves a lot more than
writing a sentence or two on what 'feels right' from a design
perspective. On top of that I think I came in mid-way through the
conversation, began by merely asking a question and got sucked in to
thinking aloud. I therefore withdraw my opinions as being premature,
speculative and based on an incomplete understanding of the problem space.
[As an aside, if we are talking here of clustering for scalability
rather than fault tolerance, I am not sure that active-passive logic has
a role. All the brokers would be active or there wouldn't be a gain in
scalability.]
- Re: Dynamic balancing of queues. Gordon Sim
-