gpt4 book ai didi

java - Apache Storm Bolt 任务在一段时间后未收到消息

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:24:50 24 4
gpt4 key购买 nike

我们有一个 Storm 拓扑,其中配置了一个 spout 和两个 bolts。 Spout 不断地从数据库中查询数据并将元组发送到第一个 bolt 进行一些处理。第一个 bolt 进行一些处理并将元组发送到第二个 bolt ,第二个 bolt 调用第三方网络服务并发送数据。所以,一段时间后发生了什么,最后一个 bolt 没有得到任何元组,如果我们重新启动拓扑它工作正常。这里只有最后一个 bolt 有问题。其他 spout 和 first bolt 运行良好,我没有使用 acking 框架。在这种情况下,我只配置了一个 worker`。

TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("messageListenrSpout", new MessageListenerSpout(), 1);
builder.setBolt("processorBolt", new ProcessorBolt(), 20).shuffleGrouping("messageListenrSpout");
builder.setBolt("notifierBolt", new NotifierBolt(),40).shuffleGrouping("processorBolt");
Config conf = new Config();
conf.put(Config.TOPOLOGY_SLEEP_SPOUT_WAIT_STRATEGY_TIME_MS, 10000);
//conf.setMessageTimeoutSecs(600);
conf.setDebug(true);
StormSubmitter.submitTopology(TOPOLOGY, conf, builder.createTopology());

最佳答案

您很可能遇到元组积压导致超时的问题。尝试增加第二个 bolt 的并行度提示,因为听起来它的处理时间比第一个 bolt 的处理时间长得多(这就是为什么第二个 bolt 会积压)。如果您在集群上运行此拓扑,请查看 Storm UI 以查看具体信息。

关于java - Apache Storm Bolt 任务在一段时间后未收到消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33467940/

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