Could you enable trace logging in DefaultEventHandler to see if the
following message shows up after the warning?
          trace("kafka producer sent messages for topics %s to broker %s:%d
(on attempt %d)"

Thanks,

Jun

On Thu, Jun 28, 2012 at 10:44 AM, Vaibhav Puranik <vpura...@gmail.com>wrote:

> Hi all,
>
> I don't think the num.retries (0.7.1) is working. Here is how I tested it.
>
> I wrote a simple producer that sends messages with the following strings -
> "____1_____", "_____2_____"..... . As you can see all the messages are
> sequential.
> I tailed the topic log on broker. After sending every message, I have added
> Thread.sleep for 15 seconds.
>
> Everytime I send the message, it immediately appears in the broker log. But
> if I restart the broker to simulate producer connection drop (in the 15
> seconds producer sleep period), it prints the following message in the
> logs:
>
> [2012-06-28 10:31:17,127] INFO Disconnecting from localhost:9092
> (kafka.producer.SyncProducer)
> [2012-06-28 10:31:17,132] WARN Error sending messages, 2 attempts remaining
> (kafka.producer.async.DefaultEventHandler)
> [2012-06-28 10:31:17,132] INFO Connected to localhost:9092 for producing
> (kafka.producer.SyncProducer)
>
> But the message that was sent right after the broker restart never reaches
> the broker. The message after that (2nd message after restart) gets to
> broker fine and the sequence continues. Thus if I restart the broker in the
> sleep period between message 4 and 5. I don't get the message 5. I get
> message 1,2,3,4,6,7,.....
>
> I tried setting num.retries to 1 and 2 thinking that in the first retry it
> might reconnect and the second retry is where it's resending the message.
> But that doesn't work. Number of retries doesn't improve the situation.
>
> Can you see any flaw in my testing? What can I do to better test this
> scenario? How can I ensure that no messages are dropped? I don't think I am
> loosing the message because it's in broker memory. Please correct me if I
> am wrong.
>
> Regards,
> Vaibhav
> GumGum <http://gumgum.com>
>
>
>
> On Wed, Jun 27, 2012 at 3:42 PM, Joel Koshy <jjkosh...@gmail.com> wrote:
>
> > 0.7.1 has this: reconnect.time.interval.ms
> >
> > Thanks,
> >
> > Joel
> >
> > On Wed, Jun 27, 2012 at 3:31 PM, Vaibhav Puranik <vpura...@gmail.com>
> > wrote:
> >
> > > That will be awesome. It will definitely address AWS ELB problem.
> > >
> > > +1 for "reconnect.interval".
> > >
> > > Regards,
> > > Vaibhav
> > > GumGum
> > >
> > >
> > > On Wed, Jun 27, 2012 at 3:24 PM, Niek Sanders <niek.sand...@gmail.com
> > > >wrote:
> > >
> > > > Do producers currently leave the sockets to the brokers open
> > > indefinitely?
> > > >
> > > > It might make sense to add a second producer config param similar to
> > > > "reconnect.interval" which limits on time instead of message count.
> > > > (And then reconnect based on whichever criteria is hit first).  For
> > > > folks going through ELBs on AWS, they'd set the
> reconnect.interval.sec
> > > > to something like 50 sec as a workaround for low-volume producers.
> > > >
> > > > - Niek
> > > >
> > > >
> > > >
> > > > On Tue, Jun 26, 2012 at 4:52 PM, Jun Rao <jun...@gmail.com> wrote:
> > > > > Set num.retries in producer config property file. It defaults to 0.
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Jun
> > > > >
> > > >
> > >
> >
>

Reply via email to