Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
Apache storm 在遵守maxSpoutPending的同时关闭KafkaSpout中的确认_Apache Storm_Apache Kafka - Fatal编程技术网

Apache storm 在遵守maxSpoutPending的同时关闭KafkaSpout中的确认

Apache storm 在遵守maxSpoutPending的同时关闭KafkaSpout中的确认,apache-storm,apache-kafka,Apache Storm,Apache Kafka,我用的是暴风0.9.3。我正在尝试为我的拓扑关闭每个元组的确认。我将Config.TOPOLOGY\u ACKER\u EXECUTORS设置为0,将maxSpoutPending设置为500。当我运行拓扑结构时,我注意到maxSpoutPending被忽略,喷口继续发出远远超过该限制的光。这是我的配置- config.setNumWorkers(3); config.setMaxSpoutPending(500); config.put("topology.sleep.spout.wait.s

我用的是暴风0.9.3。我正在尝试为我的拓扑关闭每个元组的确认。我将Config.TOPOLOGY\u ACKER\u EXECUTORS设置为0,将maxSpoutPending设置为500。当我运行拓扑结构时,我注意到maxSpoutPending被忽略,喷口继续发出远远超过该限制的光。这是我的配置-

config.setNumWorkers(3);
config.setMaxSpoutPending(500);
config.put("topology.sleep.spout.wait.strategy.time.ms", 50);
config.put("topology.message.timeout.secs", 300);
config.put(Config.TOPOLOGY_ACKER_EXECUTORS, 0);

我正在使用KafkaSpout读取Kafka的信息,并使用一个螺栓来读取该消息。

通过将
拓扑\u ACKER\u EXECUTORS
设置为0,storm将在所有元组从喷口出来时立即确认它们,这可能不可靠,因为没有任何机制可以检查元组是否已处理或失败。

并通过设置
setMaxSpoutPending
告诉storm要处理的喷动上挂起的最大元组数。MaxSpoutPending不会限制您的输出。如果您想查看storm拓扑的实际输出频率,请在storm UI中检查正在运行的storm拓扑的
拓扑延迟。

是的,我想是的。无论如何谢谢你!注意:如果禁用确认(例如,通过将
TOPOLOGY\u ACKER\u EXECUTORS
设置为
0
),则最大喷口挂起设置将无效。换句话说,如果您需要消息限制(通过max spout pending),您还必须启用确认。“当我运行拓扑时,我注意到maxSpoutPending被忽略,而spout继续发出远远超过该限制的消息。”--是的,这实际上是预期的行为(尽管这可能不是您希望我理解的)。一旦Storm支持背压,对于您这样的用例,情况将得到改善。