一尘不染

Go如何处理Google App Engine上的并发请求

go

我对Go如何处理Google App Engine上的并发请求感到困惑。所以我希望有人可以提供一些清晰度。

这是我收集的事实:

1.Goroutine被多路复用到多个OS线程上,因此,如果一个应阻塞,例如在等待I / O时,其他将继续运行。

  1. [[App Engine]的并发限制为10个[通过每个运行时的并发线程限制来实施]。

如果Go在App Engine上是单线程的,则第3点没有意义。剩下的1和2。如果Go on App Engine是单线程的,并且要求线程在阻止I /
O时继续执行,那么看来App Engine Go实例将在等待I / O时阻止所有goroutine。

这样对吗?如果不是,那么Go的并发在App Engine上如何真正起作用?

帮助量化事物。如果我要保持连接打开30秒钟。单个AE Go实例如何维护并发连接?

谢谢。

编辑:这是功能请求,它将允许Go
Instance处理超过10个并发请求允许每个实例的并发请求的可配置限制。请加注星标。


阅读 202

收藏
2020-07-02

共1个答案

一尘不染

我一直在寻找答案,并且偶然发现了这个问题,但最终还是找到了关于此事的更多官方文档。根据Andrew Gerrand和Johan
Euphrosine
帖子,可以对此进行显式配置。

从该帖子:

这会将应用程序的每个实例配置为最多可同时处理100个请求(默认值为10)。您可以将Go实例配置为最多服务500个并发请求。

2020-07-02