Thanks Magnus. In this case the connections are not idle. There is active traffic between the producer/client and the kafka node when the node goes down. There are socket timeouts arguments for SimpleConsumer. But there are none when creating the producer. If there a configuration/poroperty item to set socket timeouts for producer?
On Tue, May 19, 2015 at 2:52 PM, Magnus Edenhill <mag...@edenhill.se> wrote: > Hi Mayank, > > The client should expose a configuration property to enable TCP keepalives > (SO_KEEPALIVE) on its broker sockets, > SO_KEEPALIVE provides speedier detection of connection loss on idle > connections. > (as a positive side effect it also helps keeping connections alive through > NAT/firewalls/LBs) > > If this is not available in the client in question I suggest you file an > issue (JIRA). > > Regards, > Magnus > > > 2015-05-19 21:38 GMT+02:00 4mayank <4may...@gmail.com>: > > > I am using kafka 0.8.2.1 old producer. When one of the kafka node in the > > remote cluster is down the producer is waiting about 15 minutes before it > > disconnects and tries to connect to another node. (kafka takes < 1 min to > > change leaders). > > > > Producer config used: > > request.required.acks=1 > > partitioner.class=MyKey > > message.send.max.retries=3 > > request.timeout.ms=120000 > > retry.backoff.ms=2500 > > > > I played around with different values of request.timeout.ms, > > retry.backoff.ms, and topic.metadata.refresh.interval.ms with same > > results. > > > > Is there a way to control the producer's wait so that it returns sooner? > > > > Thanks. > > Mayank. > > >