This is a total shot in the dark here so please ignore this if it fails to
make sense, but I remember that on some previous implementation of the
producer prior to when round-robin was enabled, producers would send
messages to only one of the partitions for a set period of time
(configurable, I believe) before moving onto the next one. This caused me a
similar grievance as I would notice only a few of my consumers would get
data while others were completely idle.

Sounds similar, so check if that's a possibility at all?

On Wed, Jul 15, 2015 at 3:04 PM, Jagbir Hooda <jho...@gmail.com> wrote:

> Hi Stefan,
>
> Have you looked at the following output for message distribution
> across the topic-partitions and which topic-partition is consumed by
> which consumer thread?
>
> kafaka-server/bin>./kafka-run-class.sh
> kafka.tools.ConsumerOffsetChecker --zkconnect localhost:2181 --group
> <consumer_group_name>
>
> Jagbir
>
> On Wed, Jul 15, 2015 at 12:50 PM, Stefan Miklosovic
> <mikloso...@gmail.com> wrote:
> > I have following problem, I tried almost everything I could but without
> any luck
> >
> > All I want to do is to have 1 producer, 1 topic, 10 partitions and 10
> consumers.
> >
> > All I want is to send 1M of messages via producer to these 10 consumers.
> >
> > I am using built Kafka 0.8.3 from current upstream so I have bleeding
> > edge stuff. It does not work on 0.8.1.1 nor 0.8.2 stream.
> >
> > The problem I have is that I expect that when I send 1 milion of
> > messages via that producer, I will have all consumers busy. In other
> > words, if a message to be sent via producer is sent to partition
> > randomly (roundrobin / range), I expect that all 10 consumers will
> > process about 100k of messages each because producer sends it to
> > random partition of these 10.
> >
> > But I have never achieved such outcome.
> >
> > I was trying these combinations:
> >
> > 1) old scala producer vs old scala consumer
> >
> > Consumer was created by Consumers.createJavaConsumer() ten times.
> > Every consumer is running in the separate thread.
> >
> > 2) old scala producer vs new java consumer
> >
> > new consumer was used like I have 10 consumers listening for a topic
> > and 10 consumers subscribed to 1 partition. (consumer 1 - partition 1,
> > consumer 2 - paritition 2 and so on)
> >
> > 3) old scala producer with custom partitioner
> >
> > I even tried to use my own partitioner, I just generated a random
> > number from 0 to 9 so I expected that the messages will be sent
> > randomly to the partition of that number.
> >
> > All I see is that there are only couple of consumers from these 10
> > utilized, even I am sending 1M of messages, all I got from the
> > debugging output is some preselected set of consumers which appear to
> > be selected randomly.
> >
> > Do you have ANY hint why all consumers are not utilized even
> > partitions are selected randomly?
> >
> > My initial suspicion was that rebalancing was done badly. The think
> > was I was generating old consumers in a loop quicky one after another
> > and I can imaging that rebalancing algorithm got mad.
> >
> > So I abandon this solution and I was thinking that let's just
> > subscribe these consumers one by one to some partition so I will have
> > 1 consumer subscribed just to 1 partition and there will not be any
> > rebalancing at all.
> >
> > Oh my how wrong was I ... nothing changed.
> >
> > So I was thinking that if I have 10 consumers, each one subscribed to
> > 1 paritition, maybe producer is just sending messages to some set of
> > partitions and that's it. I  was not sure how this can be possible so
> > to be super sure about the even spreading of message to partitions, I
> > used custom partitioner class in old consumer so I will be sure that
> > the partition the message will be sent to is super random.
> >
> > But that does not seems to work either.
> >
> > Please people, help me.
> >
> > --
> > Stefan Miklosovic
>



-- 

Jiefu Gong
University of California, Berkeley | Class of 2017
B.A Computer Science | College of Letters and Sciences

jg...@berkeley.edu <elise...@berkeley.edu> | (925) 400-3427

Reply via email to