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.
---

Reply via email to