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