Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 阿帕奇风暴卡夫卡喷口滞后问题_Java_Spring_Apache Kafka_Apache Storm_Apache Storm Topology - Fatal编程技术网

Java 阿帕奇风暴卡夫卡喷口滞后问题

Java 阿帕奇风暴卡夫卡喷口滞后问题,java,spring,apache-kafka,apache-storm,apache-storm-topology,Java,Spring,Apache Kafka,Apache Storm,Apache Storm Topology,我正在使用Storm 1.1.2和Kafka 0.11构建一个Java Spring应用程序,该应用程序将在Docker容器中启动 我的拓扑结构中的所有内容都按计划工作,但在卡夫卡的高负载下,卡夫卡延迟会随着时间越来越大 我的KafkaSpoutConfig: KafkaSpoutConfig<String,String> spoutConf = KafkaSpoutConfig.builder("kafkaContainerName:9092", "myTopic")

我正在使用Storm 1.1.2和Kafka 0.11构建一个Java Spring应用程序,该应用程序将在Docker容器中启动

我的拓扑结构中的所有内容都按计划工作,但在卡夫卡的高负载下,卡夫卡延迟会随着时间越来越大

我的KafkaSpoutConfig:

 KafkaSpoutConfig<String,String> spoutConf = 
     KafkaSpoutConfig.builder("kafkaContainerName:9092", "myTopic")
     .setProp(ConsumerConfig.GROUP_ID_CONFIG, "myGroup")
     .setProp(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, MyObjectDeserializer.class)
     .build()

但我想这不是一个问题

我在Storm UI上看到,RouterBolt在高负载下的执行延迟为1.2ms,进程延迟为.03ms,这让我相信喷口是瓶颈。另外,并行性提示是25,因为“myTopic”有25个分区。谢谢

您可能会受到影响,这会导致喷口在每次排放时都进行相当昂贵的调用。请尝试升级到其中一个固定版本


编辑:修复程序实际上还没有发布。您可能仍然希望通过使用从源代码构建喷口来尝试修复,例如,构建1.1.4快照。

感谢您的输入!如果我正确理解了这个问题,可以通过将我的处理保证更改为最多一次处理来解决。我只是试着在喷口配置上更改它,看看它是否有任何效果,但似乎没有效果。这不会解决阻塞问题吗?或者以其他方式减缓喷口的消耗?如果是这样,我将尝试查看1.1.4快照,尽管这可能会产生一些影响,但我不认为这是我看到的问题。我的卡夫卡喷口只能消耗约1600条消息/秒,延迟呈指数增长(奇怪的是,在某些分区上它增长得更快,但在另一些分区上它很低并且保持较低),我认为它影响到每个人。第一行中的昂贵调用是
kafkaConsumer.committed(tp)
。就是这样!这绝对削弱了我的拓扑上的吞吐量。非常感谢。
TopologyBuilder builder = new TopologyBuilder();

builder.setSpout("stormKafkaSpout", new KafkaSpout<String,String>(spoutConf), 25);

builder.setBolt("routerBolt", new RouterBolt(),25).shuffleGrouping("stormKafkaSpout");

Config conf = new Config();
conf.setNumWorkers(10);
conf.put(Config.STORM_ZOOKEEPER_SERVERS, ImmutableList.of("zookeeper"));
conf.put(Config.STORM_ZOOKEEPER_PORT, 2181);

conf.put(Config.NIMBUS_SEEDS, ImmutableList.of("nimbus"));
conf.put(Config.NIMBUS_THRIFT_PORT, 6627);

System.setProperty("storm.jar", "/opt/storm.jar");

StormSubmitter.submitTopology("topologyId", conf, builder.createTopology());
conf.setNumAckers(0);
conf.put(Config.TOPOLGY_ACKER_EXECUTORS, 0);