托管式连接池概览

本页面介绍了什么是受管连接池,以及如何将其与 Cloud SQL 实例搭配使用。

借助托管式连接池,您可以使用池化技术优化 Cloud SQL for PostgreSQL 实例的资源利用率和连接延迟时间,从而扩缩工作负载。 托管式连接池会尽可能动态地为传入请求分配服务器连接。此方法可处理连接突然激增情况,并重复使用现有的数据库连接,从而显著提高性能,尤其是对于规模扩大的连接。托管式连接池会连接到池程序集群,而不是连接到特定数据库,从而缩短连接时间并提高工作负载的可伸缩性。使用的池化器数量取决于实例的 vCPU 核心数。

虽然您可以对任何事务型工作负载使用托管式连接池,但托管式连接池最适合包含短期有效的连接的应用,或会导致连接激增的应用,可提供最大的吞吐量和延迟时间优势。

对于长期存在的连接,使用托管式连接池的连接性能可能略低于使用直接连接时的性能。在这种情况下,当连接数非常高时,托管式连接池可提供连接扩缩功能。不过,对于通常建立长期有效连接的应用,您可以改用与实例的直接连接。

如需详细了解如何启用托管式连接池,请参阅配置托管式连接池

要求

如需使用托管式连接池,您的实例必须满足以下要求:

  • 您的实例必须是 Cloud SQL 企业 Plus 版实例。
  • 您必须使用直接连接或仅使用 Cloud SQL Auth 代理连接到实例。
  • 您必须使用有效的用户名和密码连接到实例。使用托管式连接池时,不支持 IAM 用户和 IAM 群组用户。
  • 您的实例必须设置为使用专用服务访问通道、使用公共 IP,或者是一个启用了 Private Service Connect 的新实例。
  • 您的实例必须使用新的 Cloud SQL 网络架构
  • 托管式连接池需要最低维护版本号 POSTGRES_$version.R20250302.00_04。如需了解详情,请参阅自助维护

Cloud SQL 实例的受管连接池使用的端口

启用受管理的连接池后,Cloud SQL 实例用于处理数据库流量的端口会发生变化。托管式连接池使用的端口如下:

  • TCP 端口 5432:供 Postgres 数据库服务器用于直接连接。这是使用 psql 客户端直接连接时使用的默认端口号。
  • TCP 端口 6432:用于 PgBouncer 服务器的直接连接。如需使用此端口进行连接,请在使用 psql 客户端直接连接时指定 psql -p 6432
  • TCP 端口 3307:仅用于通过 PgBouncer 服务器建立的 Cloud SQL Auth 代理连接。当您使用 Cloud SQL Auth 代理连接到 Pgbouncer 时,此端口号会通过 Cloud SQL Auth 代理客户端进行配置,无法更改。

可用的配置选项

托管式连接池提供以下池选项,您可以使用 pool_mode 参数进行设置:

  • transaction(默认):在事务级层池连接。
  • session:会话级层的池连接。

您还可以使用以下配置参数自定义托管式连接池

  • max_pool_size:连接池的大小上限。默认值为 50 个连接。
  • min_pool_size:连接池的阈值大小。如果服务器连接数小于 min_pool_size,则向池中添加更多服务器连接。默认值为 0 个连接。
  • max_client_connections:实例允许的最大连接数。默认值为 5,000 个连接。
  • client_connection_idle_timeout:客户端连接在超时前保持空闲状态的时间。该值的范围可介于 0 到 2,147,483 秒之间,默认值为 0 秒。
  • server_connection_idle_timeout:服务器连接在超时前保持空闲状态的时间。该值的范围可介于 0 到 2,147,483 秒之间,默认值为 600 秒。
  • query_wait_timeout:查询等待直至超时的时间。 该值的范围可介于 0 到 2,147,483 秒之间,默认值为 120 秒。
  • max_prepared_statements:在事务池模式下支持的协议级命名预处理语句命令数上限。默认值为 0。
  • ignore_startup_parameters:您要忽略的参数,默认情况下,系统不会在托管式连接池的启动数据包中跟踪这些参数。
  • server_lifetime:在托管式连接池关闭服务器连接之前,该连接未使用的时长上限。默认值为 3,600 秒。

限制

将受管连接池与 Cloud SQL 企业 Plus 版实例搭配使用时,请考虑以下限制:

  • 在现有实例上启用托管式连接池会导致数据库重启。
  • 当您使用 Cloud SQL API 启用、停用或配置托管式连接池时,instance.update API 不能包含任何其他实例配置更新。
  • 托管连接池只能与 Cloud SQL Auth 代理版本 2.15.2 及更高版本搭配使用。
  • 如果您使用的是 Cloud SQL Go 语言连接器,建议您使用最低 Go 版本 1.24。如果您使用的是 Go 1.23 版或更早版本,那么在使用托管式连接池时,性能可能会受到限制。
  • 如果您在 transaction 池模式下使用托管式连接池,则不支持以下 SQL 功能:

    • SET/RESET
    • LISTEN
    • WITH HOLD CURSOR
    • PREPARE/DEALLOCATE
    • PRESERVE/DELETE ROW 临时表
    • LOAD
    • 会话级咨询锁
  • 如果您使用的是 Cloud SQL for PostgreSQL 版本 17,则不支持 sslnegotiation=direct 选项。

后续步骤