处理Cloud SQL中的并发请求和连接

Kar*_*iya 8 python mysql google-app-engine google-cloud-sql google-cloud-datastore

我们使用Datastore在App Engine上创建了一个应用程序.现在,我们已经导致使用Cloud SQL的,因为我们想用联接,嵌套查询和功能,如average,total等数据会从数据存储通过日常cron作业迁移到云SQL.

我刚刚通过以下链接了解与性能和限制相关的基本细节.

到目前为止,看起来Dier D0或D1将达到我们预期的目的.

很少有令我困惑的事情:

a)什么是待连接以及它如何影响?不确定是否抛出1033实例有太多并发请求,当它超过100.我们如何处理?是否我们可以创建250个连接,但一次只能使用100个连接?

b)250个并发连接.如果超过250,应该抛出错误太多的连接

c)每个应用程序引擎实例12个每个SQL实例的并发连接.我们如何确保每个应用引擎实例不超过12个连接?

我通过以下论坛:

App Engine中的Google Cloud SQL有哪些连接限制,以及如何最好地重用数据库连接?

在Google Cloud SQL(GAE)Python应用程序中管理数据库连接的好方法是什么?

但人们面临着某些问题.

d)我们遇到了一个OperationalError:

(2013年,当我们尝试使用1000多个请求进行测试时,"在读取初始通信数据包时丢失了与MySQL服务器的连接",系统错误:38")错误.

我们有1500多人同时使用我们的系统,看起来它会失败.因此,如果由于上述问题我们可以使用Cloud SQL,我们会感到困惑.但是应该可以使用解决方案.

有人可以帮忙吗?

小智 0

在我的公司,我们在 Google Cloud SQL 上运行 postgres 数据库。我们遇到了类似的问题,我们的解决方案包括使用代理服务,为所有用户保留一个公共连接器池。

对于 Postgres,这称为 PgBouncer ( https://www.pgbouncer.org/ )。经过短暂的谷歌搜索后,我发现了 ProxySQL ( https://proxysql.com/ ),它被认为是 MySQL 的潜在类似工具(参见: https: //github.com/prisma/prisma/issues/3258)。

在他们的网站上,ProxySQL 还提供了一个架构,可以帮助您了解该服务在实践中的外观。

在此输入图像描述