本面介绍了如何在 AlloyDB for PostgreSQL 中启用、连接到和监控托管式连接池。托管式连接池是一种设计模式,通过维护预建立的连接池来优化数据库连接管理。然后,应用会重复使用此连接池,而不是为每个数据库操作打开和关闭连接,从而提高性能和资源利用率。
使用托管式连接池,您可以通过优化 AlloyDB 实例的资源用量和连接延迟时间来扩缩数据库工作负载。托管式连接池会尽可能使用池和多路复用来动态地为传入请求分配服务器连接。此方法可处理连接突然激增情况,并重复使用现有的数据库连接,从而提高性能,尤其是对于规模扩大的连接。使用托管式连接池时,应用会连接到池程序,而不是连接到特定数据库,从而缩短连接时间并提高读取工作负载的可伸缩性。
虽然您可以对任何事务型工作负载使用托管式连接池,但托管式连接池最适合包含更多短期有效的连接的应用,或可能会出现连接激增的应用。
准备工作
您必须使用直接连接连接到实例。托管式连接池不支持通过 AlloyDB Auth Proxy 或 AlloyDB 语言连接器建立连接。
所需的角色
如需获得启用和使用托管式连接池所需的权限,请让您的管理员为您授予 AlloyDB 实例的 Cloud AlloyDB Admin (roles/alloydb.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色可提供 权限,启用和使用托管式连接池需要此权限。
alloydb.instances.update
高级配置选项
AlloyDB 托管式连接池支持以下高级池配置选项。您可以使用这些配置选项来自定义托管式连接池,以满足您的实例的需求。您可以使用Google Cloud 控制台、gcloud CLI 或 AlloyDB API 在实例级层设置这些配置。
| 配置名称 | 说明 |
|---|---|
|
连接模式 ( connection-pooling-pool-mode)
|
对于连接模式,您可以选择事务(默认)或会话。
事务 ( transaction):
事务级层的池连接。在事务期间,系统会为客户端分配一个服务器连接。事务完成后,服务器连接会放回池中。 会话 ( session):
会话级层的池连接。在客户端保持连接的整个过程中,系统会为其分配一个服务器连接。客户端断开连接后,服务器连接会放回池中。 |
|
池大小上限 ( connection-pooling-max-pool-size)
|
每个用户和数据库对的连接池的大小上限。默认值为 50 个连接。 |
|
池大小下限 ( connection-pooling-min-pool-size)
|
连接池的大小下限。默认值为 0 个连接。 |
|
空闲客户端连接超时(秒) ( connection-pooling-client-connection-idle-timeout)
|
客户端连接在超时前保持空闲状态的时间。该值的范围可介于 0 到 2,147,483 秒之间,默认值为 0 秒。 |
|
空闲服务器连接超时(秒) ( connection-pooling-server-connection-idle-timeout)
|
服务器连接在超时之前保持空闲状态的时间。该值的范围可介于 0 到 2,147,483 秒之间,默认值为 600 秒。 |
|
查询等待超时(秒) ( connection-pooling-query-wait-timeout)
|
查询等待超时的时间。该值的范围可介于 0 到 2,147,483 秒之间,默认值为 120 秒。 |
|
预处理语句数上限 ( connection-pooling-max-prepared-statements)
|
在事务池模式下发送的预处理语句命令数上限。默认值为 0。 |
|
忽略启动参数 ( connection-pooling-ignore-startup-parameters)
|
您要忽略的参数,默认情况下,系统不会在启动数据包中跟踪这些参数。 |
|
服务器生命周期(秒) ( connection-pooling-server-lifetime)
|
在托管式连接池关闭服务器连接之前,该连接未使用的时长上限。默认值为 3,600 秒。 |
默认情况下,托管式连接池会发起与 AlloyDB 服务器的连接。建立客户端连接并进行身份验证后,托管式连接池可能会创建一个或多个服务器连接,以便连接池的大小与所选配置相匹配。然后,系统会为客户端连接分配一个可用的服务器连接。服务器连接会一直保持,直到明确关闭或空闲时间超过空闲服务器连接超时期限为止。
启用托管式连接池
您可以为任何现有实例或新实例启用托管式连接池。
为新的主实例启用
如需创建启用了托管式连接池的新主实例,请参阅创建主实例。您可以使用Google Cloud 控制台、Google Cloud CLI 或 AlloyDB API 为实例启用托管式连接池。
为新的读取池实例启用
如需创建启用了托管式连接池的新读取池实例,请参阅创建读取池实例。您可以使用Google Cloud 控制台、Google Cloud CLI 或 AlloyDB API 为实例启用托管式连接池。
为现有实例启用
您可以使用Google Cloud 控制台、Google Cloud CLI 或 AlloyDB API 为现有实例启用托管式连接池。