【问题标题】:Apache beam KafkaIO offset management to external data storesApache 将 KafkaIO 偏移管理到外部数据存储
【发布时间】:2017-12-23 16:18:28
【问题描述】:

我正在尝试在 Apache Beam 上使用 KafkaIO 从多个 kafka 代理读取数据。偏移管理的默认选项是 kafka 分区本身(不再使用 kafka >0.9 的 zookeper)。使用此设置,当我重新启动作业/管道时,会出现重复和丢失记录的问题。

根据我的阅读,处理此问题的最佳方法是管理外部数据存储的偏移量。是否可以使用当前版本的 apache beam 和 KafkaIO 来做到这一点?我现在用的是2.2.0版本。

并且,在从 kafka 读取之后,我会将其写入 BigQuery。 KafkaIO 中是否有设置,只有在将消息插入 BigQuery 后才能设置提交的消息?我现在只能找到自动提交设置。

【问题讨论】:

    标签: google-bigquery google-cloud-dataflow apache-beam apache-beam-io


    【解决方案1】:

    在 Dataflow 中,您可以update a job 而不是从头开始重新启动。新作业从最后一个检查点状态恢复,确保只处理一次。这也适用于 KafkaIO 源。 Kafka 消费者配置中的自动提交选项有帮助,但它与 Dataflow 内部状态不是原子的,这意味着重新启动的作业可能有一小部分重复或丢失的消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 2021-12-12
      相关资源
      最近更新 更多