1
我有一個與外部資源通信的數據流作業。問題是這些外部資源比數據流作業慢,這會導致外部資源始終飽和。我需要某種形式來減少從PubSub或其他東西讀取的消息數量,以減少作業的吞吐量,以減少流向外部資源的流量。是否有可能降低管道的吞吐量?
謝謝。
我有一個與外部資源通信的數據流作業。問題是這些外部資源比數據流作業慢,這會導致外部資源始終飽和。我需要某種形式來減少從PubSub或其他東西讀取的消息數量,以減少作業的吞吐量,以減少流向外部資源的流量。是否有可能降低管道的吞吐量?
謝謝。
我們目前不支持節流原語(例如「確保此DoFn在整個工作中每秒最多調用X個X」),但我們知道這是一個重要的用例,它很可能是早晚支持。
正如Ryan所說,同時最好的辦法是限制工人和工人線程的數量:指定--numWorkers
(或--maxNumWorkers
,如果您使用自動縮放)和--numberOfWorkerHarnessThreads
。但是請注意,這將導致創建輸入消息的積壓,而不是丟棄它們。很難判斷你的用例哪個更好。
減少工人的機器類型和數量會減慢執行速度。 – Ryan
如果輸入流水線的速度始終快於外部系統處理輸出的速度,那麼您希望如何處理多餘的輸入消息:刪除它們或創建待辦事項以便稍後在輸入負載變小時處理? – jkff