代管連線集區總覽

本頁面說明什麼是代管連線集區,以及如何使用這項功能,透過集區管理機制,為 Cloud SQL 執行個體最佳化資料庫連線管理作業。

透過代管連線集區,您可以運用集區功能,為 Cloud SQL 執行個體最佳化資源用量和連線延遲時間,進而擴充工作負載。 代管連線集區會盡可能將伺服器連線動態指派給傳入的要求。這項功能可吸收突然出現的連線尖峰,並重複使用現有的資料庫連線,因此能大幅提升效能,特別是對於已擴充的連線。管理連線集區會連線至集區叢集,而非特定資料庫,因此可縮短連線時間,並為工作負載提供可擴充性。

每個集區都會與專屬的資料庫和使用者建立關聯。用戶端通過驗證後,集區會嘗試重複使用集區內其中一個閒置伺服器連線,將資料庫連線至伺服器。如果沒有可用的伺服器連線,系統會在集區中建立新的伺服器連線,以連線至資料庫。使用的集區數量取決於執行個體的 vCPU 核心數量。

雖然您可以將代管連線集區用於任何交易工作負載,但對於含有短期連線的應用程式,或導致連線暴增的應用程式,代管連線集區可提供最大的輸送量和延遲時間優勢。

如果是長期連線,使用代管連線集區的連線效能可能會略低於直接連線。在這種情況下,如果連線數量非常多,代管連線集區會提供連線擴縮功能。不過,對於通常會建立長期連線的應用程式,您可能要避免使用連線集區。

您可以視連接埠而定,使用 Identity and Access Management 保護連線。如要進一步瞭解 Cloud SQL 中的 IAM 運作方式和相關限制,請參閱「IAM 驗證」。

如要進一步瞭解如何啟用受管理連線集區,請參閱「設定受管理連線集區」。

需求條件

如要使用受管理連線集區,執行個體必須符合下列規定:

  • 執行個體必須是 Cloud SQL Enterprise Plus 版本。
  • 您必須僅使用直接連線或 Cloud SQL 驗證 Proxy 連線至執行個體。
  • 執行個體必須設定私人服務存取權、使用公開 IP,或是啟用 Private Service Connect 的新執行個體。
  • 執行個體必須使用新的 Cloud SQL 網路架構
  • 代管連線集區的維護版本號碼至少須為 POSTGRES_$version.R20250727.00_14。如要進一步瞭解如何執行自助式維護,請參閱「執行自助式維護」。

Cloud SQL 執行個體受管理連線集區使用的連接埠

啟用「受管理連線集區」後,Cloud SQL 執行個體用於處理資料庫流量的通訊埠會變更。視連接埠而定,您可以使用 Identity and Access Management 保護連線。

代管連線集區使用的通訊埠和可用的 IAM 選項如下:

  • TCP 通訊埠 5432:供 Postgres 資料庫伺服器直接連線。這是使用 psql 用戶端直接連線時的預設通訊埠編號。

  • TCP 通訊埠 6432:供代管的連線集區伺服器直接連線。如要使用這個通訊埠連線,請在使用 psql 用戶端直接連線時指定 psql -p 6432

    使用這個通訊埠時,您可以採用任何 IAM 驗證方法

  • TCP 通訊埠 3307:僅供受管理連線集區伺服器使用 Cloud SQL 驗證 Proxy 連線。使用 Cloud SQL Auth Proxy 連線至受管理連線集區時,這個通訊埠號碼會透過 Cloud SQL Auth Proxy 用戶端設定,且無法變更。

    您可以使用任何IAM 驗證選項,或透過這個連接埠自動進行 IAM 資料庫驗證

集區選項

代管連線集區可讓您使用 pool_mode 參數管理連線集區。您可以採用下列集區選項:

  • transaction (預設):在交易層級集區連線。每次交易完成後,連線都會返回集區。Cloud SQL 建議您對生命週期較短的連線使用transaction集區模式。
  • session:在工作階段層級集區連線。每個工作階段都會使用專屬的伺服器連線,以維持工作階段狀態。這會降低集區效率。用戶端中斷連線時,伺服器會返回連線集區。

進階設定選項

您可以使用下列設定選項, 自訂受管理連線集區

設定名稱 說明
max_pool_size 每個連線集區中,資料庫和使用者配對允許的伺服器連線數上限。預設值為 50 個連線。
min_pool_size 每個連線集區隨時可用的伺服器連線數量下限。

如果伺服器連線數少於 min_pool_size,這項設定會將更多伺服器連線新增至集區。這有助於管理閒置一段時間後資料庫負載突然增加的情況,並確保連線可用且隨時待命。

預設值為 0 個連線。
max_client_connections 使用代管連線集區時,執行個體允許的連線數上限。預設值為 5,000 個連線。
max_prepared_statements transaction 集區模式支援的通訊協定層級具名預先編譯陳述式數量上限。

將這個選項設為 0 可停用預先準備好的陳述式支援功能。為獲得最佳效能,這個值應超過資料庫中常用的預先準備項目數量。代管連線集區中的預備陳述式數量過多,可能會導致記憶體用量增加。

預設值為 0 個陳述式。
client_connection_idle_timeout 用戶端連線閒置多久後會逾時。這個值可以介於 0 到 2,147,483 秒之間,預設值為 0 秒。
server_connection_idle_timeout 伺服器連線閒置多久後會逾時。這個值介於 0 到 2,147,483 秒之間,預設值為 600 秒。
query_wait_timeout 查詢在集區中等待伺服器連線的時間,超過這個時間就會逾時。

將這個選項設為 0 可停用此功能,允許無限期排隊。啟用這個選項可防止沒有回應的伺服器保留連線。

這個值可介於 0 到 2,147,483 秒之間,預設值為 120 秒。
ignore_startup_parameters 您要忽略的參數,這些參數預設不會在代管連線集區啟動封包中追蹤。
server_lifetime 伺服器連線閒置多久後,代管連線集區就會關閉連線。如果值設為 0 秒,連線會在用完後立即關閉。

預設值為 3600 秒。

限制

搭配 Cloud SQL Enterprise Plus 版執行個體使用受管理連線集區時,請注意下列限制:

  • 在現有執行個體上啟用代管連線集區會導致資料庫重新啟動。
  • 使用 Cloud SQL API 啟用、停用或設定 Managed Connection Pooling 時,instance.update API 不得包含任何其他執行個體設定更新。
  • 只有 Cloud SQL 驗證 Proxy 2.15.2 以上版本,才能使用代管連線集區。
  • 如果您使用 Cloud SQL Go 語言連接器,建議您使用 Go 1.24 以上版本。如果您使用 Go 1.23 以下版本,使用代管連線集區時可能會遇到效能限制。
  • 如果您在 transaction 集區模式中使用 Managed Connection Pooling,則不支援下列 SQL 功能:

    • SET/RESET
    • LISTEN
    • WITH HOLD CURSOR
    • PREPARE/DEALLOCATE
    • PRESERVE/DELETE ROW 臨時資料表
    • LOAD
    • 工作階段層級諮詢鎖定
  • 如果您使用 asyncpg 資料庫介面程式庫,透過 3307 和 6432 連接埠在 Managed Connection Pooling 集區器上執行作業,則必須將 max_prepared_statements 更新為大於 0 的值,才能在 Managed Connection Pooling 集區器中啟用預先準備好的陳述式。

  • 如果您使用 PostgreSQL 適用的 Cloud SQL 17 版,則系統不支援 sslnegotiation=direct 選項。

  • 代管連線集區不支援追蹤用戶端 IP。如果您在查詢洞察中啟用「儲存用戶端 IP 位址」,系統會以 local 顯示用戶端 IP 位址,而非 IP 位址本身。

  • 如果執行個體使用 Cloud SQL 驗證 Proxy,且已啟用「受管理連線集區」,則不支援手動 IAM 資料庫驗證。您只能使用自動 IAM 驗證

代管連線集區使用的伺服器連線

max_connections 資料庫設定會限制代管連線集區中的集區器可使用的伺服器連線數量上限。Cloud SQL 建議根據執行個體的負載需求和資料庫執行個體大小調整這個值。負載量達到高峰時,驗證的連線數可能會非常高。

如果您在執行個體上使用預設的 50 個集區,建議您為資料庫設定 max_connections 旗標時,為受管理連線集區保留每個 CPU 至少 15 個伺服器連線。max_pool_size如要進一步瞭解 max_connections 標記,請參閱「並行連線數量上限」。如要修改執行個體的 max_connections 旗標,請參閱「設定資料庫旗標」。

後續步驟