当然,流式应用程序是无限的,但我有一个新的用例,我需要从 Kafka 主题中消耗精确数量的消息或更少(可配置,例如,100 条消息)。然后应用程序应该停止。
动机很简单,很少用到流量,也不需要实时,所以没有理由要有一个永久的流媒体应用。
偶尔调用一次应用程序就足够了。
有没有办法用FlinkKafkaConsumer来实现?
添加一个计数器,当它达到所需的消息数量时将终止应用程序是一个选项,但我更喜欢使用更优雅的东西。
最佳答案
您可以为 FlinkKafkaConsumer 创建一个包装器 SourceFunction,它委托(delegate)给它,并在读取目标数量的消息时终止。当 Flink 流作业的所有源都完成时,工作流将自动停止。
关于apache-kafka - 从卡夫卡消耗确切数量的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63098116/