我对 Go 如何处理 Google App Engine 上的并发请求有点困惑。所以我希望有人可以提供一些澄清。
以下是我收集到的事实:
Go 在 App Engine 上是单线程的。-这是因为可以通过创建多个线程的竞争条件来进行任意指针运算
[App Engine 有一个] 10 个并发限制 [这是通过限制每个运行时的并发线程来实施的。在大多数情况下,我们的调度程序会尝试启动一个新实例。
如果 Go 在 App Engine 上是单线程的,那么第 3 点就没有实际意义。这留下了 1 和 2。如果 App Engine 上的 Go 是单线程的,并且线程需要在阻塞 I/O 时继续执行,那么看起来 App Engine Go 实例将在等待 I/O 时阻塞所有 goroutine。
它是否正确?如果不是,Go 的并发性如何在 App Engine 上真正发挥作用?
帮助量化事物。如果我要保持连接打开 30 秒。单个 AE Go 实例如何维持并发连接?
谢谢你。
编辑:这是允许 Go Instance 处理超过 10 个并发请求的功能请求Allow configured limit of concurrent requests per instance。请给它加星。