您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何進(jìn)行數(shù)據(jù)庫(kù)的架構(gòu)整體分析,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
很少談架構(gòu)方面的事情,主要是因?yàn)檫@確實(shí)是個(gè)對(duì)知識(shí)面和知識(shí)深度要求很高的領(lǐng)域,無(wú)論是開(kāi)發(fā)語(yǔ)言的選擇、代碼的架構(gòu),服務(wù)器的搭配、網(wǎng)絡(luò)的架構(gòu)、數(shù)據(jù)庫(kù)的架構(gòu)還是第三方軟件的選用等,每一方面都是個(gè)很大的方向,每個(gè)方向都值得一個(gè)人去研究一輩子;每每看到某某網(wǎng)站的首席架構(gòu)師之類(lèi)的人(不過(guò)很多是海綿派),總覺(jué)得那就是樂(lè)于做技術(shù)的人的終極目標(biāo),總是有種崇拜感。
限于工作和知識(shí)的局限性,以及抱著對(duì)各位朋友負(fù)責(zé)的態(tài)度,本文談?wù)摰募軜?gòu)僅限于數(shù)據(jù)庫(kù)方面,而且是基于SQLserver數(shù)據(jù)庫(kù)來(lái)談的,以免誤導(dǎo)各位。
SQLServer經(jīng)過(guò)這些年的發(fā)展,其實(shí)已經(jīng)有很多很好的技術(shù)可以使用,如Replication、SSB、Cluster、Mirroring等(可以參考我在SQLServerDBA三十問(wèn)和SQLServer高可用、高性能和高保護(hù)延伸中的一些技術(shù)方面的知識(shí)),而且這些技術(shù)在可靠性方面已經(jīng)通過(guò)了市場(chǎng)的認(rèn)可,有很多公司在為提高其程序的可靠性、安全性和高效性等方面或多或少的采用了其中的某些技術(shù),以下就我接觸過(guò)的這些技術(shù)方面的應(yīng)用,主要針對(duì)網(wǎng)站這種流量很大,讀多寫(xiě)少的應(yīng)用,就數(shù)據(jù)庫(kù)架構(gòu)方面做些探討,希望對(duì)各位有所幫助,如有不對(duì)的地方,歡迎大家指正和交流。
數(shù)據(jù)可靠和一致性;
數(shù)據(jù)容災(zāi);
當(dāng)數(shù)據(jù)量和訪問(wèn)壓力變大時(shí),方便擴(kuò)充;
高度可用,出問(wèn)題時(shí)能及時(shí)恢復(fù),無(wú)單點(diǎn)故障;
不應(yīng)因?yàn)槟骋慌_(tái)機(jī)器出現(xiàn)問(wèn)題,導(dǎo)致整網(wǎng)性能的急劇下降;
方便維護(hù);
核心服務(wù)器采用Cluster,還采用了SSD做磁盤(pán)陣列(SSD可存放索引等數(shù)據(jù));
核心服務(wù)器的數(shù)據(jù)變更通過(guò)SSB,分發(fā)到兩臺(tái)Replication的主機(jī)中(這一步可以先對(duì)數(shù)據(jù)進(jìn)行粗加工,加工成方便用戶查詢的數(shù)據(jù)形式,然后再通過(guò)SSB包裝后分發(fā)),使用了兩臺(tái)SSB分發(fā)機(jī),既可以分擔(dān)壓力,也可以實(shí)現(xiàn)無(wú)單點(diǎn)故障;SSB可用保證核心庫(kù)的數(shù)據(jù)和Replication主機(jī)數(shù)據(jù)一致;當(dāng)然這一步也可以直接使用Replication來(lái)實(shí)現(xiàn),但對(duì)核心服務(wù)器的壓力會(huì)有所增加;
接下來(lái)將Replication主機(jī)的數(shù)據(jù)通過(guò)分發(fā)服務(wù)器分別分發(fā)到三臺(tái)訂閱機(jī),也就是QUERYDB服務(wù)器;
六臺(tái)QUERYDB通過(guò)F5控制訪問(wèn),同時(shí)在前段加了臺(tái)MemoryCache的服務(wù)器,增加緩存,減少查詢的壓力(這一部分很多公司使用了搜索引擎方面的技術(shù),將數(shù)據(jù)庫(kù)中的數(shù)據(jù)生成XML文件,再通過(guò)索引文件來(lái)查找數(shù)據(jù));
B3和B4兩臺(tái)SSB的作用是做QUERYDB到核心服務(wù)器的SSB消息轉(zhuǎn)發(fā),SSB消息既能從QUERYDB發(fā)送到核心服務(wù)器,同時(shí)也能從核心服務(wù)器發(fā)送到QUERYDB;這樣有啥用呢?用處大了,因?yàn)楹诵姆?wù)器只有一臺(tái),我們?nèi)绻丫W(wǎng)站的所有操作都集中到核心服務(wù)器處理,那在業(yè)務(wù)高峰時(shí)期,數(shù)據(jù)變更非常頻繁,核心服務(wù)器壓力必定非常大,很可能抗不住,為預(yù)防這樣的問(wèn)題,我們勢(shì)必要把部分壓力分擔(dān)出去,于是我們可以在用戶做注冊(cè)、下單等操作時(shí),先將操作放到QUERYDB中,再通過(guò)SSB把消息發(fā)送給核心服務(wù)器,核心服務(wù)器接受到SSB消息后,會(huì)先放到隊(duì)列中,然后一個(gè)個(gè)處理,這樣核心服務(wù)器就不會(huì)因?yàn)橥瑫r(shí)處理過(guò)多的請(qǐng)求,而產(chǎn)生當(dāng)機(jī)的風(fēng)險(xiǎn),同時(shí)核心服務(wù)器處理完信息后,會(huì)將這些數(shù)據(jù)的變動(dòng)通過(guò)Replication分發(fā)到每臺(tái)QUERYDB中去,這樣QUERYDB的數(shù)據(jù)還是會(huì)和核心服務(wù)器保持一致,實(shí)現(xiàn)了通過(guò)QUERYDB來(lái)記錄操作,然后運(yùn)用SSB技術(shù)來(lái)分壓的效果;因?yàn)镼UERYDB有六臺(tái)(還可以擴(kuò)展),QUERYDB上SSB壓力都分散了,所以也不會(huì)給QUERYDB帶來(lái)很大的壓力(可能消息會(huì)有小的延時(shí),應(yīng)該盡量在SSB通道上使用光纖網(wǎng)絡(luò));即便核心服務(wù)器當(dāng)機(jī)了,還是可以進(jìn)行查詢數(shù)據(jù)、注冊(cè)和下訂單等操作,SSB會(huì)一直保留消息。
上述就是小編為大家分享的如何進(jìn)行數(shù)據(jù)庫(kù)的架構(gòu)整體分析了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。