I completely agree with Mohit, an application should not have to know or
care about
producer implementation internals.
Given a message and its delivery constraints (produce retry count and
timeout) the producer
should hide any temporal failures until the message is succesfully
delivered, a permanent
error is encountered or the constraints are hit.
This should also include internal start up sequencing, such as metadata
retrieval.



2015-05-12 21:22 GMT+02:00 Mohit Gupta <success.mohit.gu...@gmail.com>:

> I could not follow the reasoning behind blocking the send method if the
> metadata is not up-to-date. Though, I see that it as per design, it
> requires the metadata to batch the message into appropriate topicPartition
> queue. Also, if the metadata could not be updated in the specified
> interval, it throws an exception and the message is not queued to be
> retried once the brokers are up.
>
> Should it not be that messages are buffered in another queue ( up-to a
> limit ) if the brokers are down and retried later?
> Is it not a general use case to require producer to be asynchronous in all
> the scenarios?
>
>
> On Tue, May 12, 2015 at 10:54 PM, Mayuresh Gharat <
> gharatmayures...@gmail.com> wrote:
>
> > The way it works I suppose is that, the producer will do fetchMetadata,
> if
> > the last fetched metadata is stale (the refresh interval has expired) or
> if
> > it is not able to send data to a particular broker in its current
> metadata
> > (This might happen in some cases like if the leader moves).
> >
> > It cannot produce without having the right metadata.
> >
> > Thanks,
> >
> > Mayuresh
> >
> > On Tue, May 12, 2015 at 10:09 AM, Jiangjie Qin <j...@linkedin.com.invalid
> >
> > wrote:
> >
> > > That¹s right. Send() will first try to get metadata of a topic, that
> is a
> > > blocking operation.
> > >
> > > On 5/12/15, 2:48 AM, "Rendy Bambang Junior" <rendy.b.jun...@gmail.com>
> > > wrote:
> > >
> > > >Hi, sorry if my understanding is incorrect.
> > > >
> > > >I am integrating kafka producer with application, when i try to
> shutdown
> > > >all kafka broker (preparing for prod env) I notice that 'send' method
> is
> > > >blocking.
> > > >
> > > >Is new producer fetch metadata not async?
> > > >
> > > >Rendy
> > >
> > >
> >
> >
> > --
> > -Regards,
> > Mayuresh R. Gharat
> > (862) 250-7125
> >
>
>
>
> --
> Best Regards,
>
> Mohit Gupta
>

Reply via email to