我理解max.spout.pending
是使用acking-enabled
实现背压的一种简单方法。我想明白,现在背压已经实现了,我们还需要max.spout.pending
来节流喷口吗?
谢谢!
从Storm 1.0.0
开始,提供了背压自动化,并可通过螺栓的接收器缓冲器和螺栓的缓冲器大小(executor.'receive/send'.buffer.size
)的高/低水印(disruptor.highwatermark/disruptor.lowwatermark
)配置背压自动化。
因此喷口根据水印节流/释放螺栓的元组。
欲了解更多信息,请参见:http://storm.apache.org/2016/04/12/storm100-released.html
我有一个用两个螺栓处理文档的拓扑结构。我需要能够在文档被完全处理/通过整个拓扑结构后修改存储在喷口中的数据结构。在进一步了解ApacheStorm之前,我相信在spout中实现的“ack”方法只在拓扑的末尾被调用。我现在明白了,在每一个插销中都需要调用“ack”,我感到困惑。 本质上,如果我把自定义代码放在spout中的ack方法中:什么时候执行?每当'ack'方法被调用在一个螺栓或当整个元组树已
这里可能发生了同样的事情:错误backtype.storm.util-Async循环死亡!BufferUnderFlowException:null,但我将添加一个完整的堆栈跟踪和一些更多的上下文。 Storm版本-9.3 Storm-Kafka版本-9.3 Kafka版本-0.8.2-beta 堆栈跟踪: Spout代码(注意,出于调试目的,我使用的是一个静态定义的分区映射,只有一个代理):
刚开始使用Storm,只是了解喷口的概念,以及如何在喷口中实现并行。
我使用storm0.9.4和storm-kafka:0.9.0-wip16a-scala292作为从kafka0.7读取的依赖项。 我们的Kafka保留政策是7天。 我从经纪人的最新偏移量开始读取。
这是一个关于Storm的max spout pending如何工作的问题。我目前有一个spout读取一个文件,并为文件中的每一行发出一个元组(我知道Storm不是处理文件的最佳解决方案,但对于这个问题我没有选择)。 我将设置为50K,以限制进入要处理的拓扑的元组数量。然而,我看到这个数字在拓扑中没有任何影响。我每次都看到一个文件中的所有记录被发出。我猜测这可能是由于方法中的循环所致,该方法发出文件
我想知道是否有任何Kafka喷口支持安全的Kafka经纪人。apache storm的KafkaSpout不支持SSL Kafka。 下面提到的Kafka不接受SSL Kafka生产者/消费者支持的任何参数。 请让我知道有没有任何方法,我们可以实现安全的Kafka消息流处理与Storm拓扑。