Apache storm 谁调用了Spout.nextTuple()?
我的问题是:在Apache Storm topology的喷口中,谁专门调用了Apache storm 谁调用了Spout.nextTuple()?,apache-storm,apache-storm-topology,Apache Storm,Apache Storm Topology,我的问题是:在Apache Storm topology的喷口中,谁专门调用了nextTuple()方法 在一些资料来源中,有人写道,斯托姆本人就是这样做的,但这并不具体,也不清楚 风暴在什么条件下导致这种方法?预定的 有没有办法影响这个过程,比如说,减慢它的速度?它在这里被调用(Storm 2.0,对于1.x来说,它是一些clojure代码,做了类似的事情) 是的,暴风雪打了下三次电话。更准确地说,它是由喷口执行器线程调用的。我链接的方法在循环中调用。如果已到达topology.max.spo
nextTuple()
方法
在一些资料来源中,有人写道,斯托姆本人就是这样做的,但这并不具体,也不清楚
风暴在什么条件下导致这种方法?预定的
有没有办法影响这个过程,比如说,减慢它的速度?它在这里被调用(Storm 2.0,对于1.x来说,它是一些clojure代码,做了类似的事情)
是的,暴风雪打了下三次电话。更准确地说,它是由喷口执行器线程调用的。我链接的方法在循环中调用。如果已到达topology.max.spout.pending,Storm将跳过调用nextTuple
是的,当nextTuple不发射任何东西时,可以降低调用nextTuple的频率,以避免在没有发射任何东西时浪费CPU。注意这里的行,其中调用了等待策略。使用拓扑配置中的topology.spout.wait.strategy参数设置等待策略
如果没有任何要发射的信号,默认的等待策略将休眠1毫秒。您可以通过配置topology.sleep.spout.wait.strategy.time.ms来延长睡眠时间。不要将等待设置得太高,因为处理acks/fails与nextTuple发生在同一个线程中