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