如果您的主實例負載較高,或在發生主動切換類的運維動作時有防閃斷需求,可以使用RDS MySQL數據庫代理功能,通過讀寫分離對業務流量進行負載均衡,降低主實例CPU負載壓力,還可以通過連接保持(防止閃斷)和SSL加密功能提高實例的可用性和安全性。
RDS MySQL數據庫代理是位于數據庫服務端和應用服務端之間的網絡代理服務,用于代理應用服務端訪問數據庫時的所有請求。您可以連接數據庫代理訪問地址使用數據庫代理的各項功能,以簡化RDS MySQL數據庫實例的連接管理。RDS MySQL數據庫代理具有高可用、高性能、可運維、簡單易用等特點。
適用場景
事務內有大量請求,導致主實例負載過高的場景。
連接數過多導致主實例負載過高的場景。
短連接為主的業務。
有讀寫分離需求的業務場景。
純只讀和有隔離需求的業務。
發生主動切換類的運維動作時,有防閃斷需求的場景。
說明假設您購買了包含1個主實例和4個只讀實例的RDS實例,現在需要將A業務(純只讀)和B業務(可讀可寫)都連接至該實例。您可以將只讀實例1和只讀實例2組成代理終端A(只讀模式)提供給業務A,主實例、只讀實例3和只讀實例4組成代理終端B(讀寫模式)提供給業務B,以實現兩個業務在數據庫使用上的物理隔離,避免相互影響。
基本概念
代理連接地址(原代理終端)
代理連接地址(原代理終端)是數據庫代理的核心,支持自定義連接地址訪問策略、修改連接地址前綴和端口號等。通過數據庫代理連接地址連接RDS實例可以使用數據庫代理的高級功能。
開通數據庫代理后,每個RDS MySQL 實例最多支持7個代理連接地址(原代理終端),每個代理連接地址可以申請1個內網地址和1個外網地址,支持自定義配置每個代理連接地址的訪問策略來滿足不同的業務場景,增強業務的靈活性。具體操作,請參見配置數據庫代理連接地址訪問策略、連接數據庫。
讀寫分離
讀寫分離指通過代理連接地址實現讀寫請求的自動轉發。
少寫多讀的應用場景可能會對主實例造成巨大的讀取壓力,進而影響到業務。讀寫分離功能可使寫請求自動轉發到主實例,讀請求自動轉發到各個只讀實例,實現讀寫請求的自動分流,減輕主實例的壓力。更多信息,請參見什么是讀寫分離。
事務拆分
數據庫代理默認開啟事務拆分功能,能夠將事務內寫操作之前的讀請求轉發到只讀實例,降低主實例負載。更多信息,請參見設置事務拆分。
連接池
有效解決連接數過多或短連接業務(例如PHP)頻繁建立新連接導致實例負載過高的問題。更多信息,請參見設置連接池。
SSL
對數據庫代理連接地址進行SSL加密,可以保證數據的傳輸安全。具體操作,請參見設置代理SSL加密。
代理類型介紹
RDS MySQL 數據庫代理提供兩種類型:通用型和獨享型。
通用型:共享CPU物理資源,不收取任何費用,更經濟。
獨享型:獨占CPU物理資源,按量計費,具有更好的性能穩定性。
兩種類型的差異和支持的功能如下表所示:
對比項 | 通用型 | 獨享型 |
計費類型 | 免費 | 按量計費,詳情請參見費用說明。 |
資源類型 | 共享CPU物理資源 | 獨占CPU物理資源,具有更好的性能穩定性。 |
代理規格 | 最高配置:16核(代理個數 8) | 最高配置:32核(代理個數16) |
配套RDS MySQL實例 | 配套RDS MySQL高可用系列和集群系列的實例 | |
部署架構 | 高可用冗余架構 | |
讀寫分離 | 支持 | |
事務拆分 | 支持 | |
連接地址(原代理終端) | 支持1~7個代理連接地址(每個代理連接地址支持申請1個內網地址和1個外網地址) | |
連接保持(防閃斷) | 支持 | |
連接池 | 支持 | |
SSL加密 | 支持 |
代理個數和代理規格的關系:代理規格=單位代理規格×代理個數
,其中單位代理規格固定為2核CPU。
例如,代理實例的代理個數為3 ,則代理規格為2核×3=6核
。
注意事項
請參見數據庫代理注意事項。
費用說明
請參見數據庫代理費用說明。
使用方法
請參見使用數據庫代理。