如果您的主實例因連接數過多導致負載較高,或因業務需求要進行讀寫分離,可以使用RDS PostgreSQL數據庫代理功能,該功能支持讀寫分離、事務拆分等能力,能夠有效降低主實例訪問壓力,具有高可用、高性能、可運維、簡單易用等特點。
關于RDS數據庫代理的使用問題和更多相關信息,歡迎加入用戶釘釘群(106730000316)進行咨詢、反饋和交流 。
數據庫代理概述
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核
。
注意事項
請參見數據庫代理注意事項。
費用說明
請參見數據庫代理費用說明。
使用方法
請參見使用數據庫代理。