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