首页 > 解决方案 > Apache Storm:如何从 Kafka Spout 微批处理事件

问题描述

如何在 kafka spout 中进行微批处理事件以减少后续螺栓中的 IO 调用?期望是:使用 kafka 中的事件发出最大大小为 100 的批次,但等待最多 1 秒以形成该批次。如果 1 秒内没有足够的事件,则发出可用事件。

我可以通过“source.groupedWithin”方法在 Akka 中实现相同的目标。我如何对卡夫卡喷口做同样的事情?

标签: apache-kafkaapache-storm

解决方案


查看 Storm 的 tick tuples,它提供了一种将预定的元组(ticks)发送到螺栓的方法。对于您的情况,您可以每秒配置一个刻度。与此同时,bolt 将简单地处理来自 Kafka spout 的元组并对它们进行批处理,当它达到 100 条消息(在你的情况下)或当你得到一个 tick 元组时发送一个批处理。请注意,您确实需要检查每个输入元组以查看它是滴答声还是 Kafka 消息。


推荐阅读