gpt4 book ai didi

java - 当 bolt 速度慢时,Storm KafkaSpout 失败

转载 作者:行者123 更新时间:2023-11-30 08:12:50 25 4
gpt4 key购买 nike

我正在使用 Kafka-Storm 集成。 Kafka 将数据加载到队列中,Kafka Spout 将拉取数据和进程。我有以下设计。

Kafka -> Queue -> KafkaSpout -> Process1 Bolt -> Process2 Bolt

问题是,如果 Process2 Bolt 花费更长的时间来处理数据,KafkaSpout 就会失败,它会再次尝试从队列中读取数据,这会导致重复记录。

如果 Bolt 处理缓慢,为什么 KafkaSpout 将其视为失败?解决办法是什么?我必须在 Storm 中设置任何超时或任何类似属性吗?

最佳答案

如果处理时间过长(默认为 30 秒),Storm 将使元组失败。自 Storm 以来 guarantees processing ,一旦失败,Kafka spout 将重播相同的消息,直到元组被成功处理。


From doc

A tuple is considered failed when its tree of messages fails to be fully processed within a specified timeout. This timeout can be configured on a topology-specific basis using the Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS configuration and defaults to 30 seconds

关于java - 当 bolt 速度慢时,Storm KafkaSpout 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30234612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com