apache-kafka - Apache Storm:如何从 Kafka Spout 微批处理事件
问题描述
如何在 kafka spout 中进行微批处理事件以减少后续螺栓中的 IO 调用?期望是:使用 kafka 中的事件发出最大大小为 100 的批次,但等待最多 1 秒以形成该批次。如果 1 秒内没有足够的事件,则发出可用事件。
我可以通过“source.groupedWithin”方法在 Akka 中实现相同的目标。我如何对卡夫卡喷口做同样的事情?
解决方案
查看 Storm 的 tick tuples,它提供了一种将预定的元组(ticks)发送到螺栓的方法。对于您的情况,您可以每秒配置一个刻度。与此同时,bolt 将简单地处理来自 Kafka spout 的元组并对它们进行批处理,当它达到 100 条消息(在你的情况下)或当你得到一个 tick 元组时发送一个批处理。请注意,您确实需要检查每个输入元组以查看它是滴答声还是 Kafka 消息。
推荐阅读
- android - Firebase push notification not recieving in Android TV box , but recieving fine in in Tab and phone
- java - 如何解决来自 RHEL6 服务器的 GLIBC 2.14 错误
- javascript - 如何用“-”运算符替换空格和逗号?
- android - Quantized tflite model has large sized apk than unquantized
- javascript - 如果变量在 Jquery 中包含特殊字符,我该如何设置值
- centos - 如何在 CentOS 上禁用 Nouveau 内核驱动程序
- powershell - Azure DevOps Release Pipeline Inline Powershell 脚本无法运行 python unittest 套件
- .net - 无法使用 ngrok 远程调试已部署的 microsoft bot
- java - 如何在Java中调用给定特定参数类的不同方法
- ios - 从框架中的协议中抑制变量名称长度