如何解决Google Cloud Run 并发限制 + 自动缩放说明
Google Cloud Run 允许每个容器指定一个 request concurrency limit。输入字段的潜台词是“达到这个并发数时,将启动一个新的容器实例” 两个澄清问题:
-
是否有任何方法可以设置 Cloud Run 以预测达到并发限制,并在此之前生成一个新容器,以确保容器 2 无缝处理超过容器 1 并发限制的请求,而不需要影响请求的冷启动时间?
-
假设我们将 Maximum Instances 设置为 10,Concurrency 设置为 10,并且当前有 100 个请求正在处理(即我们已经最大限度地发挥了我们的能力,不能再自动缩放了)。第 101 个请求会发生什么?是要排队一段时间,还是马上退回5XX?
解决方法
有没有办法设置 Cloud Run 来预测并发限制 到达,并在发生之前生成一个新容器 确保超过容器 1 并发限制的请求 由 Container 2 无缝处理,无需冷启动时间 影响请求?
没有。 Cloud Run 不会尝试预测未来的流量模式。
假设我们将最大实例数设置为 10,并发设置为 10 并且 目前有 100 个请求正在处理(即我们已经最大化了我们的 我们的能力,不能再自动缩放)。第 101 次会发生什么 要求?会不会排队一段时间,还是会5XX 立即退回?
将返回 HTTP 错误 429 Too Many Requests
。
[编辑 - 关于请求排队的 Google Cloud 文档]
在正常情况下,您的修订通过创建新的 实例来处理传入的流量负载。但是当你设置一个最大值时 实例限制,在某些情况下会不足 实例来满足该流量负载。在这种情况下,传入的请求 排队最多 60 秒。在这 60 秒的窗口中,如果 实例完成处理请求,即可处理 排队的请求。如果在 60 秒内没有实例可用 窗口,请求在 Cloud Run 上失败并显示 429 错误代码(完全 管理)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。