Github user Jaskey commented on the issue:
https://github.com/apache/incubator-rocketmq/pull/67
@shroman
This is feature to give choice to users who cares more about latency
stabilization and messages duplication.
As you know, the default `AllocateMessageQueueStrategy` is averaging
strategy which allocate queue to consumer as evenly as possible. But as you
states whenever queues numbers or consumer numbers changed, say a new consumer
starts or an old consumer shutdown, a rehashing will be triggered and almost
all consumer suffered from this and they rebalance to drop old queues and get
new queue.
This will cause
1. message latency from producer to consumer increases at that moment
2. messages will be duplicated significantly since the offset may not be
persisted to broker and that queue is assigned to another consumer to pull
messages from.
This is especially significant when they have tens of consumer instances
and scale-up or deployment is often.
Consistent Hash strategy to allocate queue is a good choice for these users.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---