本文出自頭條號(hào)老王談運(yùn)維,轉(zhuǎn)載請(qǐng)說(shuō)明出處。
企業(yè)電商網(wǎng)站為了提高流量,往往經(jīng)常開(kāi)設(shè)秒殺活動(dòng),需要在幾秒鐘或者幾分鐘時(shí)間里承擔(dān)幾萬(wàn)甚至幾十萬(wàn)的訪問(wèn)。高并發(fā)不僅對(duì)前端處理有要求,對(duì)后端一樣有要求(例如,數(shù)據(jù)庫(kù)),因此高并發(fā)的需求也是運(yùn)維人員經(jīng)常面對(duì)的一個(gè)問(wèn)題。如何緩解該場(chǎng)景下的數(shù)據(jù)壓力,并且給用戶(hù)流暢舒適的訪問(wèn)體驗(yàn)?zāi)兀?/p>
這就是我們今天要說(shuō)到的數(shù)據(jù)庫(kù)讀寫(xiě)分離技術(shù)了!
什么是讀寫(xiě)分離
讀寫(xiě)分離,基本的原理是讓主數(shù)據(jù)庫(kù)處理事務(wù)性增、改、刪操作(INSERT、UPDATE、DELETE),而從數(shù)據(jù)庫(kù)處理SELECT查詢(xún)操作。數(shù)據(jù)庫(kù)復(fù)制被用來(lái)把事務(wù)性操作導(dǎo)致的變更同步到集群中的從數(shù)據(jù)庫(kù)。

為什么要讀寫(xiě)分離
因?yàn)閿?shù)據(jù)庫(kù)的“寫(xiě)”(寫(xiě)10000條數(shù)據(jù)到oracle可能要3分鐘)操作是比較耗時(shí)的。 但是數(shù)據(jù)庫(kù)的“讀”(從oracle讀10000條數(shù)據(jù)可能只要5秒鐘)操作非常迅速。
當(dāng)業(yè)務(wù)對(duì)于數(shù)據(jù)庫(kù)讀與寫(xiě)的操作數(shù)量差距非常大時(shí),為了避免數(shù)據(jù)庫(kù)的寫(xiě)入影響查詢(xún)的效率時(shí),建議采用讀寫(xiě)分離技術(shù)。
PS:數(shù)據(jù)庫(kù)不一定要讀寫(xiě)分離,如果程序使用數(shù)據(jù)庫(kù)較多時(shí),而更新少,查詢(xún)多的情況下會(huì)考慮使用,利用數(shù)據(jù)庫(kù)主從同步 ,可以減少數(shù)據(jù)庫(kù)壓力,提高性能。

讀寫(xiě)分離帶來(lái)的好處
- 增加冗余
- 增加了機(jī)器的處理能力
- 對(duì)于讀操作為主的應(yīng)用,可以確保寫(xiě)的服務(wù)器壓力更小,而讀又可以接受點(diǎn)時(shí)間上的延遲。
云端如何實(shí)現(xiàn)讀寫(xiě)分離
在云計(jì)算的大環(huán)境下,企業(yè)多將自己的電商網(wǎng)站部署在云端。但是對(duì)于云使用不熟悉的同學(xué),在網(wǎng)站秒殺活動(dòng)開(kāi)始后,往往會(huì)出現(xiàn)頁(yè)面訪問(wèn)緩慢,頁(yè)面丟失,或者用戶(hù)無(wú)法下單付款的現(xiàn)象。同樣都是使用RDS,為什么別人秒殺活動(dòng)訪問(wèn)如此順暢呢?
因?yàn)槟愫雎粤嗽茢?shù)據(jù)庫(kù)本身自帶的讀寫(xiě)分離的功能,只需要在購(gòu)買(mǎi)云數(shù)據(jù)庫(kù)時(shí)開(kāi)通服務(wù)即可。

“云”運(yùn)維的坑點(diǎn)確實(shí)不少,特別對(duì)于剛剛使用云不熟悉云的同學(xué)來(lái)說(shuō),一方面會(huì)增加企業(yè)IT 開(kāi)銷(xiāo),另一方面也會(huì)引發(fā)一些不必要的運(yùn)維事故,影響業(yè)務(wù)正常運(yùn)行。
推薦大家一個(gè)云運(yùn)維工具——王教授,他是一個(gè) SaaS 化的在線云計(jì)算管理及協(xié)作平臺(tái),你只需綁定對(duì)應(yīng)云賬號(hào)的AcessKey即可隨時(shí)查看到該賬戶(hù)下所有資產(chǎn)狀況,同時(shí)他還會(huì)對(duì)賬號(hào)下資產(chǎn)“健康狀況”做出診斷,并且給出優(yōu)化建議。
例如:提示云服務(wù)器CPU使用率偏高

提示云數(shù)據(jù)庫(kù)RDS存在慢查詢(xún),并且支出具體的存在慢SQL的語(yǔ)句

提示服務(wù)器出現(xiàn)的安全組變動(dòng),并且給出具體的變動(dòng)“方向”

需要的同學(xué)可以查看工具地址使用:https://www.prof.wang/