Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 处理从应用引擎标准环境到云SQL的每个应用实例60个并发连接限制的最佳方法? 应用程序引擎Python标准环境(threadsafe) 云SQL MySQL第二代 所有请求处理程序都需要数据库并面向用户 没有ORM,只有纯SQL_Google App Engine_Google Cloud Sql_Google App Engine Python - Fatal编程技术网

Google app engine 处理从应用引擎标准环境到云SQL的每个应用实例60个并发连接限制的最佳方法? 应用程序引擎Python标准环境(threadsafe) 云SQL MySQL第二代 所有请求处理程序都需要数据库并面向用户 没有ORM,只有纯SQL

Google app engine 处理从应用引擎标准环境到云SQL的每个应用实例60个并发连接限制的最佳方法? 应用程序引擎Python标准环境(threadsafe) 云SQL MySQL第二代 所有请求处理程序都需要数据库并面向用户 没有ORM,只有纯SQL,google-app-engine,google-cloud-sql,google-app-engine-python,Google App Engine,Google Cloud Sql,Google App Engine Python,根据我们的机器类型,云SQL限制每个应用程序最多有4000个并发连接,更重要的是,在我们的情况下,从应用程序引擎标准环境连接到云SQL实例时,每个应用程序实例最多有60个并发连接。(其他限制还没有接近成为瓶颈) 最可能的瓶颈是每个应用实例最多60个并发连接。我没有可用的数字,所以我不确定一个应用实例(F1/B1)是否可以同时服务60多个用户(可能不会) 当前代码确保为每个请求(需要数据库的地方)创建并最终关闭连接(即使在此之前发生异常。连接可能会根据情况提前关闭。我不确定这是否是最佳方法。从we

根据我们的机器类型,云SQL限制每个应用程序最多有4000个并发连接,更重要的是,在我们的情况下,从应用程序引擎标准环境连接到云SQL实例时,每个应用程序实例最多有60个并发连接。(其他限制还没有接近成为瓶颈)

最可能的瓶颈是每个应用实例最多60个并发连接。我没有可用的数字,所以我不确定一个应用实例(F1/B1)是否可以同时服务60多个用户(可能不会)

当前代码确保为每个请求(需要数据库的地方)创建并最终关闭连接(即使在此之前发生异常。连接可能会根据情况提前关闭。我不确定这是否是最佳方法。从
webapp2.RequestHandler
类调用的简化函数:

def handle_FAW_Request_approve(reqh, ref):
    try:
      conn = connect_to_cloudsql()
      # do queries, maybe updates
      # eventually conn.close() earlier if database not needed anymore
      # do something else
      # return response
    finally:
        try:
            conn.close()
        except Exception as err:
            # connection never existed or already closed
            pass
对此的回答建议使用一种(线程安全的)方法来重新使用数据库连接(或游标)。我认为这将有助于节省因打开/关闭连接而损失的时间,但没有安全措施确保应用程序实例保持在连接限制内,对吗

App Engine是否能够自行检测连接问题并自动生成新实例(具有自动缩放功能),而不是将更多流量定向到该实例


或者,应用程序是否需要自行处理该限制?解决方案是什么,以避免用户面临的服务器错误通过超过给定限制而随机发生?

应用程序引擎内置了在启动新实例之前向单个实例发送请求的数量限制。通过自动缩放,默认值为
max\u-con当前的_请求
是8,因此在一个实例上不太可能达到60个并发请求,除非出现真正的问题


您还应该考虑提高<代码> Max IsCurrutsOpjs<代码>值,因为您可以从单个实例中获得超过8个请求的更多值。

自动缩放,默认的Max SyCurrTrnEngRead是8,因此不太可能会出现并发连接限制。@ VADIM忘记了<代码> Max并发事务请求。s用于自动缩放。这确实会有帮助。谢谢!(PS:我接受你的评论作为答案。)