如果您的主執行個體因串連數過多導致負載較高,或因業務需求要進行讀寫分離,可以使用RDS PostgreSQL資料庫代理功能,該功能支援讀寫分離、事務拆分等能力,能夠有效降低主執行個體訪問壓力,具有高可用、高效能、可營運、簡單易用等特點。
資料庫代理概述
RDS PostgreSQL資料庫代理是位於資料庫服務端和應用服務端之間的網路代理程式服務,用於代理應用服務端訪問資料庫時的所有請求。您可以串連資料庫代理訪問地址使用資料庫代理的各項功能,以簡化RDS PostgreSQL資料庫執行個體的串連管理,請參見通過代理串連地址串連資料庫。
適用情境
事務內有大量請求,導致主執行個體負載過高的情境。
串連數過多導致主執行個體負載過高的情境。
有讀寫分離需求的業務情境。
純唯讀和有隔離需求的業務。
說明假設您購買了包含1個主執行個體和4個唯讀執行個體的RDS PostgreSQL執行個體,現在需要將A業務(純唯讀)和B業務(可讀可寫)都串連至該執行個體。您可以將唯讀執行個體1和唯讀執行個體2組成代理終端A(唯讀模式)提供給業務A,主執行個體、唯讀執行個體3和唯讀執行個體4組成代理終端B(讀寫模式)提供給業務B,以實現兩個業務在資料庫使用上的物理隔離,避免相互影響。
基本概念
代理終端(資料庫代理串連地址)
代理串連地址(原代理終端)是資料庫代理的核心,支援自訂串連地址存取原則、修改串連地址首碼和連接埠號碼等。通過資料庫代理串連地址串連RDS執行個體可以使用資料庫代理的進階功能。
開通資料庫代理後,每個RDS PostgreSQL執行個體最多支援7個代理串連地址(原代理終端),每個代理串連地址可以申請1個內網地址和1個外網地址,支援自訂配置每個代理串連地址的存取原則來滿足不同的業務情境,增強業務的靈活性。 具體操作,請參見設定資料庫代理串連地址存取原則、通過代理串連地址串連資料庫。
讀寫分離
讀寫分離指通過代理串連地址實現讀寫請求的自動轉寄。
少寫多讀的應用情境可能會對主執行個體造成巨大的讀取壓力,進而影響到業務。讀寫分離功能可使寫請求自動轉寄到主執行個體,讀請求自動轉寄到各個唯讀執行個體,實現讀寫請求的自動分流,減輕主執行個體的壓力。更多資訊,請參見什麼是讀寫分離。
事務拆分
資料庫代理預設開啟事務拆分功能,能夠將事務內寫操作之前的讀請求轉寄到唯讀執行個體,降低主執行個體負載。更多資訊,請參見事務拆分。
說明明確交易(例如begin或者start transaction)暫時不支援拆分。
某些業務對全域一致性有要求,開啟事務拆分後將不滿足全域一致性,因此在開啟事務拆分前請評估事務拆分功能是否適用於您的業務。
該功能暫不支援關閉。
資料庫代理類型介紹
RDS PostgreSQL 資料庫代理提供兩種類型:通用型和獨享型。
通用型:共用CPU實體資源,不收取任何費用,更經濟。
獨享型:獨佔CPU實體資源,隨用隨付,具有更好的效能穩定性。
兩種類型的差異和支援的功能如下表所示:
對比項 | 通用型 | 獨享型 |
計費類型 | 免費 | 隨用隨付。計費詳情,請參見資料庫代理費用說明。 |
資源類型 | 共用CPU實體資源 | 獨佔CPU實體資源,具有更好的效能穩定性 |
代理規格 | 最高配置:16核(代理個數 8) | 最高配置:32核(代理個數16) |
配套RDS執行個體系列 | 配套RDS PostgreSQL高可用系列 | |
部署架構 | 高可用冗餘架構 | |
讀寫分離 | 支援 | |
事務拆分 | 支援 | |
串連地址(代理終端) | 支援1-7個代理串連地址(每個代理終端支援申請1個內網串連地址和1個外網串連地址) |
代理規格和代理個數的關係:代理規格 = 單位代理規格 × 代理個數
,其中單位代理規格固定為2核CPU。例如,代理執行個體的代理個數為3 ,則對應的代理規格為2核 x 3 = 6核
。
注意事項
請參見資料庫代理注意事項。
費用說明
請參見資料庫代理費用說明。
使用方法
請參見使用資料庫代理。