如果您的主執行個體負載較高,或在發生主動切換類的營運動作時有防閃斷需求,可以使用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個外網地址,支援自訂配置每個代理串連地址的存取原則,以滿足不同的業務情境,增強業務的靈活性。具體操作,請參見設定資料庫代理串連地址存取原則、串連資料庫。
讀寫分離
讀寫分離指通過代理串連地址實現讀寫請求的自動轉寄。
少寫多讀的應用情境可能會對主執行個體造成巨大的讀取壓力,進而影響到業務。讀寫分離功能可使寫請求自動轉寄到主執行個體,讀請求自動轉寄到各個唯讀執行個體,實現讀寫請求的自動分流,減輕主執行個體的壓力。更多資訊,請參見什麼是讀寫分離。
串連保持
RDS MySQL代理的串連保持功能,即在發生執行個體切換類的操作時,能保持應用程式與代理的串連不斷開,使用者通過Proxy 位址訪問資料庫的應用程式不會收到串連斷開的報錯。更多資訊,請參見設定串連保持。
事務拆分
資料庫代理預設開啟事務拆分功能,能夠將事務內寫操作之前的讀請求轉寄到唯讀執行個體,降低主執行個體負載。更多資訊,請參見設定事務拆分。
串連池
有效解決串連數過多或短串連業務(例如PHP)頻繁建立新串連導致執行個體負載過高的問題。更多資訊,請參見設定串連池。
可用性區域
指代理節點和代理串連地址所在的可用性區域,建議資料庫代理可用性區域、代理串連地址可用性區域和RDS執行個體的可用性區域保持一致,以減少跨可用性區域訪問帶來的網路延遲。開通代理後,支援遷移代理可用性區域。
就近訪問
資料庫代理多可用性區域部署時,開通就近訪問功能,支援使用者指定應用程式串連到同一可用性區域內的代理節點,實現應用程式、代理節點、唯讀節點均在同一可用性區域,最大程度降低延遲。具體操作,請參見設定就近訪問。
SSL加密
對資料庫代理串連地址進行SSL加密,可以保證資料的傳輸安全。具體操作,請參見設定代理SSL加密。
代理部署架構
RDS MySQL資料庫代理支援單可用性區域部署和雙可用性區域部署。
單可用性區域部署:指所有代理節點位於同一可用性區域。
雙可用性區域部署:指代理節點位於兩個不同可用性區域,實現跨可用性區域容災,不額外收費。
部署形式
代理部署形式包含以下三種:
部署形式1
部署形式2
部署形式3
部署形式 | 可用性區域 | 代理節點總個數 | 規格限制 | 支援代理類型 |
部署形式1 | 雙可用性區域 | 4 | 同一可用性區域內,代理節點規格必須一致。 | 獨享型 |
部署形式2 | 雙可用性區域 | 2 | 兩個節點規格必須一致。 | 獨享型、通用型 |
部署形式3 | 單可用性區域 | 2 | 同一可用性區域內,代理節點規格必須一致。 | 獨享型、通用型 |
開通資料庫代理後支援變更代理部署架構,詳情請參見變更代理配置。
預設架構及可用性區域
代理預設架構及可用性區域遵循以下邏輯:
RDS執行個體部署形式 | 代理類型 | 預設代理部署形式 | 預設代理可用性區域 |
單可用性區域部署 | 獨享型 | 部署形式3 | 預設和RDS執行個體主節點的主可用性區域保持一致。 |
通用型 | 部署形式3 | ||
雙可用性區域部署 | 獨享型 | 部署形式1 |
|
通用型 | 部署形式2 |
代理容災機制
部署形式1
當發生代理節點層級故障時,故障節點不再承擔流量,流量將轉寄到同一可用性區域內的其他未發生故障的代理節點。
當發生可用性區域層級故障時,由於多可用性區域部署,具備跨可用性區域容災的能力,業務流量將轉寄到未發生故障的可用性區域代理節點。當故障可用性區域的代理節點恢複後,新增業務流量將轉寄到恢複後的代理節點中,存量長連線路由保持不變,等待自動消亡。
說明如果開通了就近訪問功能,出於可用性高於訪問延遲的考慮,當發生可用性區域層級故障時就近訪問功能可能會失效,優先保障代理執行個體整體的可用性。
部署形式2
由於代理是雙可用性區域兩節點部署,代理節點層級的故障等同於可用性區域層級的故障,當發生故障時,業務流量將轉寄到另一個未發生故障的可用性區域內的代理節點。
部署形式3
當發生代理節點層級故障時,故障節點不再承擔流量,業務流量將全部由同一可用性區域內的另一個未發生故障的代理節點承擔。
當發生可用性區域層級故障時,代理將無法提供服務,需要等可用性區域機房故障恢複,或手動變更代理到跨可用性區域部署形式。
代理類型介紹
RDS MySQL 資料庫代理提供兩種代理類型:通用型和獨享型。
通用型:共用CPU實體資源,不收取任何費用,更經濟。
獨享型:獨佔CPU實體資源,隨用隨付,具有更好的效能穩定性。
兩種類型的差異和支援的功能如下表所示:
對比項 | 通用型 | 獨享型 |
計費類型 | 免費 | 隨用隨付,詳情請參見費用說明。 |
資源類型 | 共用CPU實體資源 | 獨佔CPU實體資源,具有更好的效能穩定性。 |
代理單節點規格範圍 | 1~8核 | 1~16核 |
配套RDS MySQL執行個體 | 配套RDS MySQL高可用系列和叢集系列的執行個體 | |
部署架構 | 支援部署形式2、3。詳情請參見代理部署架構。 | 支援部署形式1、2、3。詳情請參見代理部署架構。 |
單可用性區域部署 | 支援 | |
雙可用性區域部署 | 支援 | |
就近訪問 | 不支援 | 支援 |
讀寫分離 | 支援 | |
事務拆分 | 支援 | |
串連地址(原代理終端) | 單個RDS MySQL執行個體支援1~7個代理串連地址(每個代理串連地址支援申請1個內網地址和1個外網地址) | |
主動切換的串連保持 | 支援 | 支援 |
故障切換的串連保持 | 不支援 | 支援 |
串連池 | 支援 | |
SSL加密 | 支援 |
代理規格和代理單節點規格的關係:
代理規格 = 所有代理節點規格求和
。例如,獨享型雙可用性區域(可用性區域A + 可用性區域B)部署代理程式,可用性區域A的單節點代理規格CPU為1核,節點個數為2;可用性區域B的單節點代理規格CPU為2核,節點個數為2,則代理規格 = 可用性區域A的代理規格 + 可用性區域B的代理規格 = 1核 x 2 + 2核 x 2 = 2核 + 4核 = 6核
。代理個數和代理規格的關係:
代理個數 = 代理規格 / 單位代理規格
,其中, 單位代理規格固定為2核 CPU。例如,代理執行個體的代理規格為6核 ,則代理個數 = 6核 / 2核 = 3
。
注意事項
請參見資料庫代理注意事項。
費用說明
請參見資料庫代理費用說明。
使用方法
請參見使用資料庫代理。