I am not sure if that's how it works. 

I suppose each consumer should be able to consume from all the topics right. If 
not then it looks weird.

Thanks,

Mayuresh

Sent from my iPhone

> On Mar 20, 2015, at 7:15 PM, Jiangjie Qin <j...@linkedin.com.INVALID> wrote:
> 
> Hi Jason, 
> 
> The motivation behind round robin is to better balance the consumersĀ¹
> load. Imagine you have two topics each with two partitions. These topics
> are consumed by two consumers each with two consumer threads.
> 
> The range assignment gives:
> T1-P1 -> C1-Thr1
> T1-P2 -> C1-Thr2
> T2-P1 -> C1-Thr1
> T2-P2 -> C1-Thr2
> Consumer 2 will not be consuming from any partitions.
> 
> The round robin algorithm gives:
> T1-P1 -> C1-Thr1
> T1-P2 -> C1-Thr2
> T2-P1 -> C2-Thr1
> T2-p2 -> C2-Thr2
> It is much better than range assignment.
> 
> ThatĀ¹s the reason why we introduced round robin strategy even though it
> has restrictions.
> 
> Jiangjie (Becket) Qin
> 
> 
>> On 3/20/15, 12:20 PM, "Jason Rosenberg" <j...@squareup.com> wrote:
>> 
>> Jiangle,
>> 
>> The error messages I got (and the config doc) do clearly state that the
>> number of threads per consumer must match also....
>> 
>> I'm not convinced that an easy to understand algorithm would work fine
>> with
>> a heterogeneous set of selected topics between consumers.
>> 
>> Jason
>> 
>> On Thu, Mar 19, 2015 at 8:07 PM, Mayuresh Gharat
>> <gharatmayures...@gmail.com
>>> wrote:
>> 
>>> Hi Becket,
>>> 
>>> Can you list down an example for this. It would be easier to understand
>>> :)
>>> 
>>> Thanks,
>>> 
>>> Mayuresh
>>> 
>>> On Thu, Mar 19, 2015 at 4:46 PM, Jiangjie Qin
>>> <j...@linkedin.com.invalid>
>>> wrote:
>>> 
>>>> Hi Jason,
>>>> 
>>>> The round-robin strategy first takes the partitions of all the topics
>>> a
>>>> consumer is consuming from, then distributed them across all the
>>> consumers.
>>>> If different consumers are consuming from different topics, the
>>> assigning
>>>> algorithm will generate different answers on different consumers.
>>>> It is OK for consumers to have different thread count, but the
>>> consumers
>>>> have to consume from the same set of topics.
>>>> 
>>>> 
>>>> For range strategy, the balance is for each individual topic instead
>>> of
>>>> cross topics. So the balance is only done for the consumers consuming
>>> from
>>>> the same topic.
>>>> 
>>>> Thanks.
>>>> 
>>>> Jiangjie (Becket) Qin
>>>> 
>>>>> On 3/19/15, 4:14 PM, "Jason Rosenberg" <j...@squareup.com> wrote:
>>>>> 
>>>>> So,
>>>>> 
>>>>> I've run into an issue migrating a consumer to use the new
>>> 'roundrobin'
>>>>> partition.assignment.strategy.  It turns out that several of our
>>> consumers
>>>>> use the same group id, but instantiate several different consumer
>>>>> instances
>>>>> (with different topic selectors and thread counts).  Often, this is
>>> done
>>>>> in
>>>>> a single shared process.  It turns out this arrangement is not
>>> allowed
>>>>> when
>>>>> using the 'roundrobin' assignment strategy.
>>>>> 
>>>>> I'm curious as to the reason for this restriction?  Why is it not
>>> also a
>>>>> restriction for the 'range' strategy (which we've been happily using
>>> for
>>>>> some time now)?
>>>>> 
>>>>> It would seem that as long as you always assign a partition to a
>>> consumer
>>>>> instance that is actually selecting it, you should still be able to
>>>>> proceed
>>>>> with the round-robin algorithm (potentially skipping consumers if
>>> they
>>>>> can't select the next partition in the list, etc.).
>>>>> 
>>>>> Jason
>>>> 
>>>> 
>>> 
>>> 
>>> --
>>> -Regards,
>>> Mayuresh R. Gharat
>>> (862) 250-7125
>>> 
> 

Reply via email to