You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Sergey Zelvenskiy <se...@actions.im> on 2014/12/02 22:19:50 UTC

Question about kafka-spout

Based on what I see in the code, kafka-spout keeps the failed messages in
memory buffer.

Would not these failed messages be lost in case of process or machine
failure?

https://github.com/apache/storm/blob/master/external/storm-kafka/src/jvm/storm/kafka/PartitionManager.java#L206-L221

Is there anything done to make it more resilient?

Re: Question about kafka-spout

Posted by Curtis Allen <cu...@gmail.com>.
These failed message would not be lost because updated kafka offsets are
never committed to zookeeper in a failure scenario. If a spout dies the
failed messages are still in kafka so the next spout instance will attempt
to process those failed messages again.

On Tue, Dec 2, 2014 at 2:19 PM, Sergey Zelvenskiy <se...@actions.im> wrote:

> Based on what I see in the code, kafka-spout keeps the failed messages in
> memory buffer.
>
> Would not these failed messages be lost in case of process or machine
> failure?
>
>
> https://github.com/apache/storm/blob/master/external/storm-kafka/src/jvm/storm/kafka/PartitionManager.java#L206-L221
>
> Is there anything done to make it more resilient?
>

Re: Question about kafka-spout

Posted by Naresh Bhatti <na...@gmail.com>.
Storm is at least once guarantee. The commit function is not called until
all messages have acked. In case of a crash the Kafka offset will not be
incremented.
Regards
Naresh




Sent from my iPad
On Dec 2, 2014, at 1:21 PM, Sergey Zelvenskiy <se...@actions.im> wrote:

Based on what I see in the code, kafka-spout keeps the failed messages in
memory buffer.

Would not these failed messages be lost in case of process or machine
failure?

https://github.com/apache/storm/blob/master/external/storm-kafka/src/jvm/storm/kafka/PartitionManager.java#L206-L221

Is there anything done to make it more resilient?