Cap*_*ero 4 google-cloud-platform google-cloud-run
我已在 Cloud Run 中托管了我的节点应用程序,并且我的所有请求都在 300 - 600 毫秒的时间内得到满足。但一个端点从第三方服务获取数据,因此请求需要 1.2 秒 - 2.5 秒才能完成请求。
我对此的疑问是
另请参阅屏幕截图,我在日志中收到一条消息以及请求“该请求导致启动新的容器实例,因此可能比典型请求花费更长的时间并使用更多的 CPU”
任何意见/建议将不胜感激。
提前致谢。
我认为这不会成为问题,除非您担心 CPU/内存时间的成本,老实说,只有当您每天收到 10k 以上的请求时,这才重要。所以,可能并不重要,云运行可以很好地处理这个问题(我自己的应用程序确实请求比这更长的时间,没有问题)
您的服务可能“缩放至零”,这意味着没有容器继续运行来服务请求。在这种情况下,有必要启动一个新实例并等待与该过程相关的任何初始化/启动成本。由于所有其他实例均达到其请求限制,它也可能会自动缩放。确保每个实例的最大并发请求设置大于 1 - Node/Express 可以一次处理多个请求。另外,您只需按总花费时间付费,而不是按请求付费:
在进行很长时间(30 秒、分钟以上)操作的情况下,切换到某种不同的数据传输方法可能是个好主意。您可以使用轮询,客户端每 5 秒发出一次请求并检查响应是否已准备好。您还可以切换到某种基于推送的系统,例如 WebSockets,但 Cloud Run 不支持这一点。
TL;DR 较长的请求(约 10-30 秒)应该没问题,除非您担心大规模发生的计算时间增加的成本。
| 归档时间: |
|
| 查看次数: |
1851 次 |
| 最近记录: |