0

我正在尝试Source使用 Python Dataflow SDK 编写自定义,以从 REST 端点并行读取 JSON 数据。

例如,对于给定的一组 ID,我需要从以下位置检索数据: https://foo.com/api/results/1 https://foo.com/api/results/2 ... https://foo.com/api/results/{maxID}

我需要的关键功能是监控和速率限制:即使我需要并行性(基于线程/进程或使用异步/协程),我也需要确保我的工作对 API 端点保持“礼貌”——有效避免非自愿DDoS。

使用psq,我应该能够实现某种速率限制机制,但是我将失去使用数据流服务监控来监控进度和 ETA 的能力

看起来,虽然它们可以很好地协同工作,但 Google Cloud Dataflow 和 Google Cloud Pub/Sub(使用 Google Stackdriver Monitoring)之间的监控并不统一

我应该如何构建一个实现速率限制并具有基于 Web 的监控的大规模并行 HTTP 使用者工作流?

4

1 回答 1

1

Dataflow 目前没有内置的方式来进行全局速率限制,但您可以使用 Source API 来执行此操作。关键概念是 Source 的每个 split 最多由单个线程处理,因此您可以为每个 split 单独实现本地速率限制。

此解决方案根本不使用 Pub/Sub,因此您可以独占使用 Dataflow Monitoring UI。如果您想根据管道中的特定事件设置警报,您可以执行以下操作

于 2016-09-29T17:26:13.683 回答