apache-kafka - 从卡夫卡消耗确切数量的事件

标签 apache-kafka apache-flink flink-streaming

当然,流式应用程序是无限的,但我有一个新的用例,我需要从 Kafka 主题中消耗精确数量的消息或更少(可配置,例如,100 条消息)。然后应用程序应该停止。

动机很简单,很少用到流量,也不需要实时,所以没有理由要有一个永久的流媒体应用。

偶尔调用一次应用程序就足够了。

有没有办法用FlinkKafkaConsumer来实现?

添加一个计数器,当它达到所需的消息数量时将终止应用程序是一个选项,但我更喜欢使用更优雅的东西。

最佳答案

您可以为 FlinkKafkaConsumer 创建一个包装器 SourceFunction,它委托(delegate)给它,并在读取目标数量的消息时终止。当 Flink 流作业的所有源都完成时,工作流将自动停止。

关于apache-kafka - 从卡夫卡消耗确切数量的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63098116/

相关文章:

scala - Scala 案例类中 init 方法的 java.lang.NoSuchMethodException

apache-flink - 如何使用 Prometheus 指标监控 Grafana 中的 Flink 背压

apache-flink - 流中记录的排序

apache-kafka - client.dns.lookup 选项中的 “use_all_dns_ips” 和 "resolve_canonical_bootstrap_servers_only” 之间的确切区别是什么?

java - 在JUnit5中使用Testcontainers和gradle时,无法解析 'parse'中的 'DockerImageName'方法

ssl - 我可以为多个kafka生产者/消费者使用相同的 keystore 吗

apache-flink - 在 Apache flink 中的节点之间共享数据集的最佳方式是什么?

apache-flink - Flink Windows边界,水印,事件时间戳和处理时间

java - 无法使用 Flink Table API 打印 CSV 文件

java - 如何取回 Kafka 生产者和消费者配置(Java API)?