PolarDB資料庫代理是位於資料庫和應用程式之間的網路代理程式服務,用於代理應用程式訪問資料庫時的所有請求,具有高可用、高效能、可營運、簡單易用等特點,支援自動讀寫分離、負載平衡、一致性層級、串連池、過載保護等進階功能。您可以串連PolarDB叢集地址使用資料庫代理的各項功能。
PolarDB資料庫代理介紹
PolarDB叢集版是一個由多節點構成的資料庫叢集,包括一個主節點和多個唯讀節點。對外預設提供兩個地址,分別為主地址和叢集地址。其中,叢集地址功能由PolarDB資料庫代理提供,叢集地址分為可讀可寫(自動讀寫分離)和唯讀兩種讀寫入模式。
支援兩種資料庫代理版本
資料庫代理企業版提供兩種版本:企業通用版和企業獨享版。
企業通用版:配套叢集子系列的通用規格,它可以共用CPU實體資源。資料庫代理的CPU資源不佔用叢集的CPU資源,其規格預設為對應叢集中資料庫節點總核心數的1/6。
企業獨享版:配套叢集子系列的獨享規格,它可以獨佔CPU實體資源,具有更好的效能穩定性。資料庫代理的CPU資源不佔用叢集的CPU資源,其規格預設為對應叢集中資料庫節點總核心數的1/4。
兩種版本的差異如下表所示:
對比項 | 企業通用版 | 企業獨享版 |
對比項 | 企業通用版 | 企業獨享版 |
計費類型 | 免費 | |
資源類型 | 共用CPU實體資源,可根據業務負載,提供智能秒級資源彈性擴充能力 | 獨佔實體資源,具有更好的效能穩定性 |
部署架構 | 高可用冗餘架構 | |
執行個體規格 | 最低配置:2核 | |
串連數 | 無限制 | |
IOPS | 叢集儲存最大IOPS相比歷史版本可提升50%,不同規格叢集的最大IOPS可參見企業版計算節點規格 | |
唯讀節點配置 | 唯讀節點無需與主節點配置保持一致,可以根據業務負載降配從而節省成本 | |
唯讀節點數量 | 支援1~15個唯讀節點 | |
串連地址 | 1個主地址+7個叢集地址 | |
熱備切換 | 串連/事務不中斷,短暫阻塞5~10秒 | |
一致性 |
| |
串連池 | 支援 | |
事務拆分 | 支援 | |
防閃斷(串連保持) | 支援 | |
資料脫敏(安全) | 支援 | |
變更配置業務無感 | 支援 | |
多主叢集(庫表) | 支援 | |
計算節點秒級彈性擴充 | 支援 | 獨佔資源,無需支援 |
Proxy限流保護(即將上線) | 支援 |
費用說明
資料庫代理企業版不收取相關費用,可免費使用。
資料庫代理企業版的切換策略如下:
系列 | 購買類型 | 切換策略 |
系列 | 購買類型 | 切換策略 |
叢集版 | 新購叢集 | 在2021年12月9日後,新購叢集僅提供資料庫代理企業版。 |
存量隨用隨付叢集 | 對於存量的隨用隨付叢集,資料庫代理於2021年12月9日已自動切換到資料庫代理企業版。 | |
存量訂用帳戶叢集 | 對於存量的訂用帳戶叢集,資料庫代理於2021年12月9日已自動切換到資料庫代理企業版。 |
使用限制
僅PolarDB叢集版支援叢集地址和資料庫代理相關功能。
注意事項
資料庫代理預設的叢集地址和自訂的叢集地址都不支援壓縮協議。
使用叢集地址後,若未啟用事務拆分,事務內的所有請求都會路由到主節點。
使用叢集地址後,當執行
SHOW PROCESSLIST
命令時,系統會將所有節點的結果合并後返回。若執行了多語句或調用了預存程序,當前串連的後續請求會全部路由到主節點,需斷開當前串連並重新串連才能恢複讀寫分離功能。
PolarDB叢集地址本身並沒有最大串連數的限制,串連數的限制主要由後端資料庫中計算節點的規格決定。對於讀寫入模式的叢集地址由於一個應用串連會與後端資料庫中每個計算節點各建立一個串連,所以應用能使用的最大串連數就是單個計算節點的最大串連數;對於唯讀模式的叢集地址由於一個應用串連只會與後端資料庫中的一個計算節點建立串連,所以應用能夠使用的最大串連數為該唯讀叢集地址下所有隻讀節點的最大串連數之和。對於讀寫入模式的叢集地址可以通過事務級串連池功能來增加應用的最大可用串連。
新增唯讀節點或重啟唯讀節點之後建立的讀寫分離串連,會轉寄請求到該唯讀節點。新增唯讀節點或重啟唯讀節點之前建立的讀寫分離串連,不會轉寄請求到新增的唯讀節點或重啟後的唯讀節點上,需要斷開該串連並重建立立串連,例如,重啟應用程式。
請勿在運行Multi Statements或調用預存程序時修改環境變數,例如
set names utf8mb4;select * from t1;
,否則可能會導致請求路由到唯讀節點和主節點查到的資料不一致。當您使用應用串連池建立URL連結時,為了防止串連池在網路或其它非預期情境下丟包導致應用串連池hang住的問題,建議在URL連結中增加
connectTimeout
和socketTimeout
參數。參數說明請參見參數說明。樣本如下:java url: jdbc:mysql://ip:port/db?connectTimeout=60000&socketTimeout=300000;
升級資料庫代理規格
資料庫代理企業版預設的規格可以滿足使用者絕大部分的應用情境。當客戶進行壓力測試或者業務輸送量很高時,當前新版本的資料庫代理規格會自動隨著代理的負載即時升級,避免資料庫代理成為瓶頸。對於老版本的資料庫代理,您也可以手動升級其規格。
資料庫代理不佔用叢集的CPU核心數資源,因此其規格升級不會導致叢集可用CPU數減少。
資料庫代理企業版不收取費用,可免費使用。因此其規格升級也不會產生任何相關費用。
關於如何升級資料庫代理規格,請參見升級資料庫代理規格。
相關API
API | 描述 |
API | 描述 |
建立PolarDB叢集的公網地址。 | |
建立PolarDB自訂叢集地址。 | |
查詢PolarDB叢集的地址資訊。 | |
修改PolarDB叢集地址屬性。 | |
修改PolarDB叢集的串連地址(如自訂叢集地址)。 | |
釋放PolarDB叢集地址(除了自訂叢集地址的私網地址)。 | |
釋放PolarDB自訂叢集地址。 |