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 kafka ApacheStorm:如何从卡夫卡喷口微批处理事件_Apache Kafka_Apache Storm - Fatal编程技术网

Apache kafka ApacheStorm:如何从卡夫卡喷口微批处理事件

Apache kafka ApacheStorm:如何从卡夫卡喷口微批处理事件,apache-kafka,apache-storm,Apache Kafka,Apache Storm,如何在卡夫卡喷口中对事件进行微批处理以减少后续螺栓中的IO调用? 期望是:使用kafka中的事件发出一个最大大小为100的批,但最多等待1秒以形成此批。如果1秒内没有足够的事件,则发出可用的事件 我可以通过“source.groupedWithin”方法在Akka实现同样的功能。我如何对卡夫卡喷口进行同样的处理?看看Storm的滴答声元组,它提供了一种将计划元组(滴答声)发送到螺栓的方法。对于您的情况,您可以每秒配置一个勾号。与此同时,bolt只需处理来自Kafka喷口的元组并对它们进行批处理,

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


我可以通过“source.groupedWithin”方法在Akka实现同样的功能。我如何对卡夫卡喷口进行同样的处理?

看看Storm的滴答声元组,它提供了一种将计划元组(滴答声)发送到螺栓的方法。对于您的情况,您可以每秒配置一个勾号。与此同时,bolt只需处理来自Kafka喷口的元组并对它们进行批处理,当它到达100条消息(在您的情况下)或当您收到一个滴答声元组时发送一个批处理。请注意,您确实需要检查每个输入元组,以查看它是记号还是卡夫卡消息

除了Chris的回答,您还可以使用Storm的窗口功能。你可以在网站上找到一个例子

如果您愿意,也可以使用Trident。设置了
KafkaTridentSpoutOpaque
后,可以使用Kafka客户端设置来控制每个批处理中的消息数量。您可以使用
KafkaSpoutConfig
pollTimeoutMs
设置等待批次填充的时间,并通过
KafkaSpoutConfig.Builder.setProp
设置
max.poll.records
Kafka客户端配置来控制批次中的最大记录数

有关使用卡夫卡三叉戟喷口的完整示例,请参见