是否可以降低管道的吞吐量?

Is it possible to reduce the throughput of my pipeline?

我有一个与外部资源通信的数据流作业。问题是这些外部资源比数据流作业慢,这导致外部资源总是饱和。我需要某种形式来减少从 PubSub 读取的消息数量,或者减少作业的吞吐量以减少外部资源的流量。

谢谢。

我们目前不支持节流原语(例如 "make sure this DoFn is throttled to at most X calls per second over the whole job"),但我们知道这是一个重要的用例,很可能迟早会得到支持。

同时,正如 Ryan 所说,您最好的选择是限制工作人员和工作线程的数量:指定 --numWorkers(如果您使用自动缩放,则指定 --maxNumWorkers)和 --numberOfWorkerHarnessThreads .但是,请注意,这将导致输入消息积压,而不是丢弃它们。在您的用例中很难说哪个更好。