7月22日,騰訊云數據庫正式發布數據庫代理(又名proxy)服務,支持MySQL 5.7 版本和8.0 版本,可為用戶提供透明且安全的網絡代理服務,實現自動讀寫分離,降低業務使用數據庫的復雜度,完美解決了數據庫故障切換的網絡瞬斷問題,網絡中斷時間降低至0,MySQL數據庫的故障轉移時間最多可減少60%,使得應用程序抵抗數據庫故障風險的能力大幅提升。
這標志著騰訊云數據庫MySQL完成了企業級中間件的孵化,在可用性、穩定性和擴展性方面均有了突破性提升,能夠更好地為用戶提供企業級服務。
數據庫代理是位于云數據庫服務和應用服務之間的網絡代理服務,用于代理應用服務訪問數據庫時的所有請求。數據庫代理訪問地址獨立于原有的數據庫訪問地址,提交至數據庫代理地址的寫請求通過代理集群中轉訪問數據庫的主實例(只寫實例),將讀請求轉發至只讀實例,自動實現讀寫分離,降低主實例的負載。
目前大量現網用戶業務場景中存在讀多寫少、業務負載無法預測等問題,在出現大量讀請求時,單個實例可能無法承受讀取壓力,甚至會對業務產生影響,這時需要對讀取能力進行彈性擴展,創建一個或多個只讀實例,利用只讀實例滿足大量的數據庫讀取需求。但該方案對用戶的技術要求較高,需要業務側支持讀寫分離改造,其代碼的健壯性決定了業務讀寫分離的質量,同時也犧牲了靈活性和可擴展性。
使用騰訊云數據庫代理可解決此問題,創建只讀實例后,通過數據庫代理開啟自助讀寫分離功能,在應用程序中只需配置一個代理連接地址,就可以使寫請求自動轉發到主實例,讀請求自動轉發到各個只讀實例。從而有效降低主實例的讀負載,通過添加只讀實例來提供數據庫集群的水平擴展能力,降低用戶自行拆分業務讀寫請求的復雜度,尤其適合大量讀負載的情況。即使增加或刪除只讀實例,也無需調整應用程序的設置。同時騰訊云數據庫代理與支持的數據庫引擎協議完全兼容,因此應用程序無需更改代碼,只需將連接指向數據庫代理地址即可實現數據庫訪問。
騰訊云數據庫代理服務具備高穩定性、強隔離性、超高性能、擴容方便快捷、完備的性能監控、熱加載、支持自動讀寫分離等特性,采用集群架構部署,多節點保證故障評估轉移,每個代理每秒最高可以處理10萬左右的請求,支持1個 – 60個代理節點動態擴展。騰訊云數據庫代理服務提供讀/寫請求數、CPU、內存等性能指標的秒級監控,可以根據監控數據及業務規劃調整代理個數,支持動態熱加載配置,不會發聲網絡中斷或重啟。
在應用場景上,除了解決主實例大量讀負載之外,騰訊云數據庫代理服務也能為多種高發業務痛點提供天然的解決方案。
游戲業務頻繁的開服和滾服場景中,常常會遇到無法預測的工作負載,進而導致新的數據庫連接突發。騰訊云數據庫代理服務可通過專屬連接管理使多個應用程序共享數據庫連接,以有效利用數據庫資源,并允許用戶通過調節打開的數據庫連接數來保持可預測的數據庫性能,支持刪除無法使用的應用程序請求,以保留應用程序的整體性能和可用性。
互聯網行業頻繁使用短連接的應用服務,在使用數據庫時可能會頻繁創建大量連接,騰訊云數據庫代理的連接池功能能夠實現資源復用,避免頻繁創建、釋放連接引起的大量性能開銷,縮減系統整體響應時間,提高響應效率,增進系統運行環境的平穩性,另一方面也能有效避免常規數據庫連接操作中可能出現的資源泄漏。
SaaS 或電子商務行業中的傳統應用程序為減少客戶的響應時間,可能會使數據庫連接長期打開并保持空閑狀態,使用騰訊云數據庫代理服務可保留空閑連接,僅根據需要建立數據庫連接服務于活動請求,從而避免為支持大多數空閑連接過度調大閾值及購買更高配置的數據庫,可在顯著降低成本的情況下提高效率。
此外,通過使用騰訊云數據庫代理服務,用戶可以構建可透明容忍數據庫故障轉移應用程序,無需編寫復雜的故障處理代碼。數據庫專屬代理自動將讀流量路由到新的數據庫實例,同時保留應用程序連接。