Is there a better way to do this where I can build one big requests with
broker -> partition mappings and call a consumer.fetch() with one giant
request?

Unfortunately, not until the 0.9 consumer is released. Until then, you can
take a look at ZookeeperConsumerConnector on how it manages multiple
SimpleConsumers.

Thanks,
Neha

On Fri, Oct 24, 2014 at 1:46 PM, Rajiv Kurian <ra...@signalfuse.com> wrote:

> I saw the example at
>
> https://cwiki.apache.org/confluence/display/KAFKA/0.8.0+SimpleConsumer+Example
> and it answered most of my questions. I am still trying to figure out the
> pattern to be used when I want to use a single simple consumer to fetch
> messages from different partitions (possibly from different offsets) and
> possibly managed by different leaders.
>
> My use case right now is that I have a consumer which dynamically decides
> which partitions it is responsible for and decides to fetch messages from
> them at potentially different offsets.
>
> Right now it seems like I would need a new SimpleConsumer for each broker
> since the SimpleConsumer takes the leadBroker in it's constructor. Then I'd
> have to build a FetchRequest for each broker and ensure that the
> addFetch(...) calls are made with partitions that correspond to the leader
> broker that a SimpleConsumer is managing. Finally I'll need to make up to
> numBrokers number of consumer.fetch(req) calls since each request is for a
> separate broker.
>
> Is there a better way to do this where I can build one big requests with
> broker -> partition mappings and call a consumer.fetch() with one giant
> request? Otherwise if I am doing this in a single thread I have head of
> line blocking with one request blocking another.
>
> Thanks!
>

Reply via email to