Google Cloud SQL / App Engine 并发限制

Google Cloud SQL / App Engine 并发限制

我一直在使用 Google App Engine 托管我的 API,并不断遇到并发数据库连接的限制。文档说每个“应用引擎实例”最多只能有 12 个并发连接(https://cloud.google.com/sql/faq#sizeqps),但我不太清楚这是什么意思。

我使用的是 GoLang,我的应用是事务性的,因此 12 个并发数据库连接的限制实际上意味着少于 12 个并发 API 连接。这确实太低了,似乎与 Google 的其他速率限制不一致,后者相当慷慨。

每个单独的进程只需要一个数据库连接,因此如果有办法生成多个“实例”,那就太好了。但我不太清楚这意味着什么,以及它是否适用于所有服务池、每个单独的服务、每个处理程序等。

提前感谢你的帮助。丹

答案1

实例是 App Engine 应用程序的基本构建块,指的是在构成 App Engine 应用程序的服务之一上运行代码版本的机器。App Engine 的功能之一是能够根据需求扩展或缩减应用程序。这是通过根据以下条件创建和关闭实例来实现的:您选择的扩展配置部署应用程序时。

由于您说您一直在按照每个实例 12 个连接的限制运行,我假设这意味着 App Engine 确定您的实例应该能够同时处理超过 12 个请求。为了避免这种情况,您应该在 app.yaml 中将 max_concurrent_requests 设置为 12 或更低,并确保在完成所有连接后干净地终止它们。这样,任何单个实例都不应尝试同时使用超过 12 个数据库连接。

请注意,此限制仅适用于 App Engine 标准环境,也就是说,在灵活的环境不会受到此每个实例连接限制的限制,并能正确处理连接,直到 App Engine 认为需要创建另一个实例。

相关内容