首页 > 解决方案 > 如何提高flask和psycopg2之间的连接时间

问题描述

我有一个连接到 postgres 数据库的烧瓶应用程序。在烧瓶服务器和数据库之间,我添加了一个池连接(pgbouncer)。我的烧瓶应用程序是多线程的,所以我不能在数据库和烧瓶应用程序之间使用单个连接。所以我为每个请求创建一个新的。问题是当我发送大量同时请求(300)时响应时间变得太长,在调试我的代码时我看到它是 psycopg2 的连接时间增加了

这是我的 pgbouncer 配置:

- DB_HOST=psql
- POOL_MODE=transaction
- MAX_CLIENT_CONN=10000
- DEFAULT_POOL_SIZE=2
- MIN_POOL_SIZE=2
- ADMIN_USERS=postgres
- LOG_CONNEXIONS=0
- LOG_DISCONNECTIONS=0

这是我的烧瓶应用程序中的连接函数,在我的应用程序端点的每次新调用时都会调用它。

def getConn(self):
    conn = psycopg2.connect(user=dbUser,
                            password=dbPassword,
                            host=dbHost,
                            port=dbPort,
                            database=dbDatabase
                            )
    conn.autocommit = True
    cursor = conn.cursor()
    cursor.execute("SET search_path TO ecosystem")
    return conn, cursor

标签: pythonpostgresqlflaskpsycopg2pgbouncer

解决方案


推荐阅读