本页面介绍了什么是受管连接池,以及如何将其与 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
选项。