我对Go如何处理Google App Engine上的并发请求感到困惑。所以我希望有人可以提供一些清晰度。
这是我收集的事实:
1.Goroutine被多路复用到多个OS线程上,因此,如果一个应阻塞,例如在等待I / O时,其他将继续运行。
如果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个并发请求允许每个实例的并发请求的可配置限制。请加注星标。
我一直在寻找答案,并且偶然发现了这个问题,但最终还是找到了关于此事的更多官方文档。根据Andrew Gerrand和Johan Euphrosine的帖子,可以对此进行显式配置。
从该帖子:
这会将应用程序的每个实例配置为最多可同时处理100个请求(默认值为10)。您可以将Go实例配置为最多服务500个并发请求。