Cloud Tasks 和执行费率

Cloud Tasks and the enforced rate

我们正在使用 Cloud Tasks 调用 "on-prem" API 网关(使用 Http 请求)。这个 API 网关 (IBM API Connect) 位于本地系统 (Oracle) 的前面。这个后端系统有时会非常慢。 >5 秒。

我们拼命地尝试增加吞吐量,但“调整”了 Cloud Task 队列设置(例如 -max-dispatches-per-second 等)。 gcloud tasks queues update queue-1 --max-dispatches-per-second=8 --max-concurrent-dispatches=16

但是,当我们“启动”Cloud Task 设置时,我们看到的只是黄色三角形告诉我们,由于 "system resources",我们“被迫”降低了速率。

我的理解是,黄色三角形的出现是由于我们调用的 API 网关的“错误”。基本上 GCP/Cloud 任务根据 return codes/errors/time-outs/latency 等从我们调用的 API 端点重新执行 "by it self",结果 rate/thru-put。这种理解是否正确?有人可以验证吗?

GUI 确实说 "or because currently there is no instance available to execute a request"。他们在谈论什么实例?所以对我来说,这意味着有可能 "GCP specific" 资源出现在这里并对 "enforced rate" 产生影响?或者?

无论如何,任何help/insight将不胜感激。

谢谢

您所看到的错误消息可能是由您提到的两件事中的任何一件事引起的:"Enforced rates" 或 "lack of GCP resources at the time of request"。

Cloud tasks 所指的 "Enforced rates" 就是提到的 here。正如您所提到的,这是由于服务器过载并返回了太多错误。当这种情况发生时,云任务会自行行动,并会减慢执行速度,直到错误停止。

您看到的 "currently there is no instance available to execute a request" 消息是 GCP 没有创建请求的资源。请记住,云任务是一项托管服务,因此这意味着请求是由 GCP 完全托管的计算引擎实例创建的。这种情况比较少见,虽然时有发生。

为了确定您 运行 遇到了这两个问题中的哪一个,我建议您检查您的 Stackdriver 日志,看看您是否在云上遇到大量错误任务过滤就好像是这种情况一样,很可能你 运行 进入了 "Enforced rates" 领域。

希望你觉得这有用!