We set the partitions the python consumers needs manually for now, I'm
looking into a solution using zookeeper (possibly) to balance them out
automatically though.

On Tue, Mar 17, 2015 at 2:51 PM, Todd Palino <tpal...@gmail.com> wrote:

> Yeah, this is exactly correct. The python client does not implement the
> Zookeeper logic that would be needed to do a balanced consumer. While it's
> certainly possible to do it (for example, Joe implemented it in Go), the
> logic is non-trivial and nobody has bothered to this point. I don't think
> anyone will, as the new consumer will make it much easier to implement
> clients without needing to do it.
>
> In the past, we've used an internal python module that calls a C library
> underneath that does the balancing. Now we're moving to one that calls our
> REST interface to Kafka, which is easier to work with. Another option that
> some consumers use is to pipe messages in from the kafka-console-consumer.
> This works well, but if you're not careful with stopping it you can easily
> lose messages.
>
> -Todd
>
>
> On Tue, Mar 17, 2015 at 6:47 AM, Sloot, Hans-Peter <
> hans-peter.sl...@atos.net> wrote:
>
> > Thanks
> >
> > I just came across this
> https://github.com/mumrah/kafka-python/issues/112
> > It says:
> >         That contract of one message per consumer group only works for
> the
> > coordinated consumers which are implemented for the JVM only (i.e., Scala
> > and Java clients).
> >
> >
> > -----Original Message-----
> > From: Steve Miller [mailto:st...@idrathernotsay.com]
> > Sent: Tuesday, March 17, 2015 2:18 PM
> > To: users@kafka.apache.org
> > Subject: Re: consumer groups in python
> >
> > It's possible that I just haven't used it but I am reasonably sure that
> > the python API doesn't have a way to store offsets in ZK.  You would need
> > to implement something more or less compatible with what the Scala/Java
> API
> > does, presumably.
> >
> > On the plus side the python API -- possibly just because in python,
> > nothing is truly private (: -- exposes offsets and offset management in
> > ways that those other APIs seem not to.   Seeking, say, to approximately
> > 1000 messages before the current offset is no big deal in python, nor is
> > fetching oldest and newest offsets for topics (e.g., if you want to alert
> > if nothing is being produced, without having to fire up a consumer).  I
> > have close to zero experience with anything other than the python API and
> > librdkafka but judging from questions I see here those seem to be
> difficult
> > to do in Scala or Java.  I hope to do more with those APIs soon (and in
> > fact am at ScalaDays right now in part so I can attend some intro Scala
> > training (-: ).
> >
> >     -Steve
> >
> >
> >
> > > On Mar 17, 2015, at 3:54 AM, Sloot, Hans-Peter <
> > hans-peter.sl...@atos.net> wrote:
> > >
> > > Hi,
> > >
> > > I wrote a small python script to consume messages from kafka.
> > >
> > > The consumer is defined as follows:
> > > kafka = KafkaConsumer('my-replicated-topic',
> > >                       metadata_broker_list=['localhost:9092'],
> > >                       group_id='my_consumer_group',
> > >                       auto_commit_enable=True,
> > >                       auto_commit_interval_ms=30 * 1000,
> > >                       auto_offset_reset='smallest')
> > >
> > > But when I start 2 consumers simultaneously both receive all messages
> > from the topic.
> > > I would expect to have 1 consumer about half the number of messages and
> > the other the rest.
> > >
> > > How can I arrange this?
> > >
> > > Regards Hans-Peter
> > >
> > > This e-mail and the documents attached are confidential and intended
> > solely for the addressee; it may also be privileged. If you receive this
> > e-mail in error, please notify the sender immediately and destroy it. As
> > its integrity cannot be secured on the Internet, Atos’ liability cannot
> be
> > triggered for the message content. Although the sender endeavours to
> > maintain a computer virus-free network, the sender does not warrant that
> > this transmission is virus-free and will not be liable for any damages
> > resulting from any virus transmitted. On all offers and agreements under
> > which Atos Nederland B.V. supplies goods and/or services of whatever
> > nature, the Terms of Delivery from Atos Nederland B.V. exclusively apply.
> > The Terms of Delivery shall be promptly submitted to you on your request.
> > This e-mail and the documents attached are confidential and intended
> > solely for the addressee; it may also be privileged. If you receive this
> > e-mail in error, please notify the sender immediately and destroy it. As
> > its integrity cannot be secured on the Internet, Atos’ liability cannot
> be
> > triggered for the message content. Although the sender endeavours to
> > maintain a computer virus-free network, the sender does not warrant that
> > this transmission is virus-free and will not be liable for any damages
> > resulting from any virus transmitted. On all offers and agreements under
> > which Atos Nederland B.V. supplies goods and/or services of whatever
> > nature, the Terms of Delivery from Atos Nederland B.V. exclusively apply.
> > The Terms of Delivery shall be promptly submitted to you on your request.
> >
>



-- 
*Kasper Mackenhauer Jacobsen*

Reply via email to