Thanks for your quick reply and clear explanation :) 2015-01-31 22:29 GMT+08:00 Jay Kreps <jay.kr...@gmail.com>:
> This means the write occurred on the leader but the followers couldn't > acknowledge in the time bound specified by the user. The write will likely > complete but is not guaranteed to (the leader could immediately crash after > the response is sent). So if you retry you will potentially (likely) have > duplicate write. > > -Jay > > On Saturday, January 31, 2015, DeJiang Zhu <doujian...@gmail.com> wrote: > > > Hi all, > > > > I'm working on implementing a lua kafka client [1], but I'm getting > > confused: what does `RequestTimedOut` exactly mean. > > > > At first, from The Kafka Protocal [2], I thought producer should retry > when > > received `RequestTimedOut`. > > > > But later, I found sometimes the messages may have `commited` as well > even > > I got `RequestTimedOut`, while sometimes not > > > > Also, in sarama[3], retry happens only on `UnknownTopicOrPartition, > > NotLeaderForPartition, LeaderNotAvailable` error code;only > > `LeaderNotAvailableException` and `NotLeaderForPartitionException` > extends > > `RetryAbleException` in kafka[4] > > > > I wonder did I misunderstood The Kafka Protocal or was I wrong on > something > > else I haven't realized. > > > > Looking forward to a reply. Thank you guys in advance. :) > > > > > > [1] https://github.com/doujiang24/lua-resty-kafka > > [2] > > > > > https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol > > [3] https://github.com/Shopify/sarama > > [4] https://github.com/apache/kafka > > >