My mistake, it seems the Java drivers are a lot more advanced than the
Shopify's Kafka driver (or I am missing something) - and I haven't used
Kafka before.

With the Go driver - it seems you have to manage offsets and partitions
within the application code, while in Scala driver it seems you have the
option of simply subscribing to a topic, and someone else will manage that
part.

After digging around a bit more, I found there is another library -
https://github.com/wvanbergen/kafka - that speaks the consumergroup API and
accomplishes what I was looking for and I assume is implemented by keeping
track of memberships w/ Zookeeper.

Thank you for the information - it really helped clear up what I failing to
understand with kafka.

Nimi

On Wed, Apr 29, 2015 at 10:10 PM, Joe Stein <joe.st...@stealth.ly> wrote:

> You can do this with the existing Kafka Consumer
>
> https://github.com/apache/kafka/blob/0.8.2/core/src/main/scala/kafka/consumer/SimpleConsumer.scala#L106
> and probably any other Kafka client too (maybe with minor/major rework
> to-do the offset management).
>
> The new consumer approach is more transparent on "Subscribing To Specific
> Partitions"
>
> https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/consumer/KafkaConsumer.java#L200-L234
> .
>
> Here is a Docker file (** pull request pending **) for wrapping kafka
> consumers (doesn't have to be the go client, need to abstract that out some
> more after more testing)
>
> https://github.com/stealthly/go_kafka_client/blob/mesos-marathon/consumers/Dockerfile
>
>
> Also a VM (** pull request pending **) to build container, push to local
> docker repository and launch on Apache Mesos
>
> https://github.com/stealthly/go_kafka_client/tree/mesos-marathon/mesos/vagrant
> as working example how-to-do.
>
> All of this could be done without the Docker container and still work on
> Mesos ... or even without Mesos and on YARN.
>
> You might also want to checkout how Samza integrates with Execution
> Frameworks
>
> http://samza.apache.org/learn/documentation/0.9/comparisons/introduction.html
> which has a Mesos patch https://issues.apache.org/jira/browse/SAMZA-375
> and
> built in YARN support.
>
> ~ Joe Stein
> - - - - - - - - - - - - - - - - -
>
>   http://www.stealth.ly
> - - - - - - - - - - - - - - - - -
>
> On Wed, Apr 29, 2015 at 8:56 AM, David Corley <davidcor...@gmail.com>
> wrote:
>
> > You're right Stevo, I should re-phrase to say that there can be no more
> > _active_ consumers than there are partitions (within a single consumer
> > group).
> > I'm guessing that's what Nimi is alluding to asking, but perhaps he can
> > elaborate on whether he's using consumer groups and/or whether the 100
> > partitions are all for a single topic, or multiple topics.
> >
> > On 29 April 2015 at 13:38, Stevo Slavić <ssla...@gmail.com> wrote:
> >
> > > Please correct me if wrong, but I think it is really not hard
> constraint
> > > that one cannot have more consumers (from same group) than partitions
> on
> > > single topic - all the surplus consumers will not be assigned to
> consume
> > > any partition, but they can be there and as soon as one active consumer
> > > from same group goes offline (its connection to ZK is dropped),
> consumers
> > > from the group will be rebalanced so one passively waiting consumer
> will
> > > become active.
> > >
> > > Kind regards,
> > > Stevo Slavic.
> > >
> > > On Wed, Apr 29, 2015 at 2:25 PM, David Corley <davidcor...@gmail.com>
> > > wrote:
> > >
> > > > If the 100 partitions are all for the same topic, you can have up to
> > 100
> > > > consumers working as part of a single consumer group for that topic.
> > > > You cannot have more consumers than there are partitions within a
> given
> > > > consumer group.
> > > >
> > > > On 29 April 2015 at 08:41, Nimi Wariboko Jr <n...@channelmeter.com>
> > > wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > I was wondering what options there are for horizontally scaling
> kafka
> > > > > consumers? Basically if I have 100 partitions and 10 consumers, and
> > > want
> > > > to
> > > > > temporarily scale up to 50 consumers, what options do I have?
> > > > >
> > > > > So far I've thought of just simply tracking consumer membership
> > somehow
> > > > > (either through Raft or zookeeper's znodes) on the consumers.
> > > > >
> > > >
> > >
> >
>

Reply via email to