當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 遼寧OA系統(tǒng) > 沈陽(yáng)OA系統(tǒng) > 沈陽(yáng)OA行業(yè)資訊
如何利用緩存服務(wù)器來(lái)負(fù)載均衡
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
文章來(lái)源:泛普軟件根據(jù)一些專家的調(diào)查分析,發(fā)現(xiàn)企業(yè)在使用數(shù)據(jù)庫(kù)的時(shí)候,90%以上主要用來(lái)查詢。有些企業(yè)這個(gè)比例甚至更高。也就說(shuō),用戶對(duì)數(shù)據(jù)庫(kù)的操作,其實(shí)更新操作占的比例很少。大部分的操走都只是查詢操作。如一些論壇,大部分用戶只會(huì)看貼,而不會(huì)發(fā)帖。這就是一個(gè)典型的查詢操作比例大大超過(guò)更新操作比例的例子。針對(duì)這種情況,其查詢操作往往是其數(shù)據(jù)庫(kù)性能的瓶頸。如何有效提高查詢的性能,這就使各個(gè)數(shù)據(jù)庫(kù)專家在考慮的問(wèn)題。在SQL Server數(shù)據(jù)庫(kù)中,已經(jīng)有了一個(gè)現(xiàn)成的解決方案。數(shù)據(jù)庫(kù)管理員可以利用緩存服務(wù)器來(lái)提高數(shù)據(jù)庫(kù)的性能。筆者這里就以SQLServer2008為例,談?wù)勅绾卫镁彺娣?wù)器來(lái)實(shí)現(xiàn)負(fù)載均衡,來(lái)提高數(shù)據(jù)庫(kù)的查詢效率。
如上圖,是一家著名的BBS論壇的數(shù)據(jù)庫(kù)架構(gòu)。首先其通過(guò)多臺(tái)WEB應(yīng)用服務(wù)器來(lái)實(shí)現(xiàn)負(fù)載均衡。這個(gè)方案跟數(shù)據(jù)庫(kù)架構(gòu)關(guān)系不大,筆者不做過(guò)多闡述。筆者要談的是,其在數(shù)據(jù)庫(kù)服務(wù)器與WEB應(yīng)用服務(wù)器之間,還多了一層,即數(shù)據(jù)庫(kù)緩存服務(wù)器。在SQLServer數(shù)據(jù)庫(kù)中,就是利用這些緩存服務(wù)器來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)層面的負(fù)載均衡,來(lái)提高數(shù)據(jù)庫(kù)的查詢性能。那么這個(gè)解決方案到底有什么特點(diǎn)呢?是如何來(lái)解決查詢操作這個(gè)瓶頸問(wèn)題?在部署這個(gè)解決方案的時(shí)候需要注意哪些問(wèn)題呢?不要著急,筆者會(huì)一一回答這些問(wèn)題。
一、 數(shù)據(jù)查詢與數(shù)據(jù)更新分開(kāi)走。
如上圖所示,如果用戶要查看某個(gè)帖子,其就會(huì)打開(kāi)某個(gè)連接。此時(shí)WEB應(yīng)用服務(wù)器就會(huì)從后臺(tái)數(shù)據(jù)庫(kù)中查詢相關(guān)的記錄。這里需要注意的是,由于其只是查看帖子,而不涉及到更新的操作,為此WEB應(yīng)用服務(wù)器就只從緩存服務(wù)器中讀取數(shù)據(jù)。這個(gè)緩存服務(wù)器中的記錄跟數(shù)據(jù)庫(kù)服務(wù)器的內(nèi)容是同步的。WEB應(yīng)用服務(wù)器在從數(shù)據(jù)庫(kù)緩存服務(wù)器讀取數(shù)據(jù)之前,還會(huì)先判斷一下哪臺(tái)數(shù)據(jù)庫(kù)服務(wù)器比較空。會(huì)優(yōu)先連接到比較空閑的數(shù)據(jù)緩存服務(wù)器中,然后從這臺(tái)服務(wù)器中讀取數(shù)據(jù)。所以,當(dāng)訪問(wèn)這個(gè)論壇的用戶比較多時(shí),這個(gè)數(shù)據(jù)緩存服務(wù)器能夠?qū)崿F(xiàn)負(fù)載均衡的需要。
如果用戶看了某個(gè)帖子,現(xiàn)在需要發(fā)表一個(gè)評(píng)論,此時(shí)后臺(tái)數(shù)據(jù)庫(kù)會(huì)怎么操作呢?注意,當(dāng)WEB應(yīng)用服務(wù)器發(fā)送了一個(gè)Update更新操作的時(shí)候,其應(yīng)用服務(wù)器會(huì)自動(dòng)連接到數(shù)據(jù)庫(kù)服務(wù)器,而不會(huì)再連接到數(shù)據(jù)庫(kù)緩存服務(wù)器。而是直接向數(shù)據(jù)庫(kù)服務(wù)器發(fā)送更新操走的語(yǔ)句。當(dāng)數(shù)據(jù)庫(kù)服務(wù)器更新了相關(guān)的內(nèi)容之后,會(huì)與數(shù)據(jù)庫(kù)緩存服務(wù)器實(shí)現(xiàn)數(shù)據(jù)的同步。從上圖中可以看出,整個(gè)數(shù)據(jù)查詢與數(shù)據(jù)更新WEB應(yīng)用服務(wù)器是分兩條路走。其實(shí)這就好像是公路上分道行駛,機(jī)動(dòng)車(chē)走機(jī)動(dòng)車(chē)道;非機(jī)動(dòng)車(chē)走非機(jī)動(dòng)車(chē)道。如此的話,就不會(huì)因?yàn)榉菣C(jī)動(dòng)車(chē)比較慢,而影響到機(jī)動(dòng)車(chē)的速度。在這個(gè)方案中,將數(shù)據(jù)庫(kù)的更新操作與查詢操作分開(kāi)來(lái)走,也是類似的道理。在查詢時(shí),數(shù)據(jù)流是單向流動(dòng)的,所以能夠在很大程度上提高查詢的效率。從而讓數(shù)據(jù)負(fù)載均衡的效果更加明顯??傊?dāng)某個(gè)應(yīng)用程序查詢操作大大超過(guò)更新操作時(shí),通過(guò)在多個(gè)數(shù)據(jù)庫(kù)間緩存只讀數(shù)據(jù),并在數(shù)據(jù)庫(kù)間均勻連接客戶端以分發(fā)負(fù)載,則就可以向外擴(kuò)展工作負(fù)荷的讀取分區(qū),即實(shí)現(xiàn)負(fù)載均衡的目的。
二、 采用這個(gè)方案需要注意的地方。
在部署這個(gè)解決方案時(shí),仍然有些數(shù)據(jù)庫(kù)管理員需要關(guān)注的內(nèi)容。如以下這些內(nèi)容,數(shù)據(jù)庫(kù)管理員需要根據(jù)企業(yè)的實(shí)際情況來(lái)進(jìn)行調(diào)整,以提高這個(gè)方案的價(jià)值。
首先需要考慮數(shù)據(jù)緩存服務(wù)器與數(shù)據(jù)庫(kù)服務(wù)器之間同步的頻率問(wèn)題。這個(gè)同步操作是一把雙刃劍。若同步的頻率太高,會(huì)影響數(shù)據(jù)庫(kù)服務(wù)器與緩存服務(wù)器的性能;若同步頻率比較低的話,則數(shù)據(jù)庫(kù)緩存服務(wù)器中的數(shù)據(jù)得不到及時(shí)的更新。如此的話,用戶查詢時(shí)可能在短時(shí)間內(nèi)無(wú)法獲取最新的數(shù)據(jù)。所以,一般來(lái)說(shuō),系統(tǒng)滯后的時(shí)間應(yīng)該盡量的短,即數(shù)據(jù)庫(kù)服務(wù)器的更新內(nèi)容必須盡快與數(shù)據(jù)庫(kù)緩存服務(wù)器進(jìn)行同步。理想的狀態(tài)時(shí),在更新數(shù)據(jù)庫(kù)服務(wù)器的同時(shí)更新數(shù)據(jù)庫(kù)緩存服務(wù)器。但是,這么做是以犧牲數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)緩存服務(wù)器的性能為代價(jià)的。為此數(shù)據(jù)庫(kù)管理員在實(shí)施這個(gè)解決方案時(shí),往往不會(huì)這么做。而是設(shè)置在一段時(shí)間之后同步。如可以設(shè)置為10秒、60秒、300秒或者更長(zhǎng)的時(shí)間后進(jìn)行同步。具體這個(gè)同步的時(shí)間間隔多少為好,沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)。這需要數(shù)據(jù)庫(kù)管理員根據(jù)企業(yè)對(duì)數(shù)據(jù)同步的要求不同而定。一般來(lái)說(shuō),數(shù)據(jù)庫(kù)管理員在滿足用戶需要的前期下,可以將這個(gè)時(shí)間設(shè)置的相對(duì)長(zhǎng)一點(diǎn)。這可以避免因?yàn)檫^(guò)多的同步操作而降低了這個(gè)方案的價(jià)值。其實(shí),對(duì)于大部分用戶來(lái)說(shuō),60秒左右的時(shí)間差異還是可以接受的。如在論壇中,一個(gè)人發(fā)帖后,在一分鐘之后看到一般不會(huì)有什么問(wèn)題。對(duì)于人的感覺(jué)來(lái)說(shuō),這個(gè)一分鐘時(shí)間不長(zhǎng)。但是對(duì)于數(shù)據(jù)庫(kù)服務(wù)器來(lái)說(shuō),這一分鐘可以做很多事情。所以,適當(dāng)延長(zhǎng)這個(gè)同步時(shí)間,卻可以在很大程度上提高數(shù)據(jù)庫(kù)服務(wù)器性能。這個(gè)時(shí)間的代價(jià),有時(shí)候還是值得的。
其次,在數(shù)據(jù)庫(kù)服務(wù)器與數(shù)據(jù)庫(kù)緩存服務(wù)器之間,應(yīng)該建立比較直接的、快速的網(wǎng)絡(luò)連接。當(dāng)用戶比較多時(shí),數(shù)據(jù)庫(kù)服務(wù)器與數(shù)據(jù)庫(kù)緩存服務(wù)器之間若發(fā)生同步操作,則會(huì)造成很多的網(wǎng)絡(luò)流量。有時(shí)候同步操作發(fā)生時(shí),影響這個(gè)工作的效率可能并不是數(shù)據(jù)庫(kù)服務(wù)器或者數(shù)據(jù)庫(kù)緩存服務(wù)器本身,而是他們之間的網(wǎng)絡(luò)連接。由于其可用的帶寬跟不少數(shù)據(jù)庫(kù)服務(wù)器系統(tǒng)的吞吐量,從而影響到了同步操作的效率。為此,在數(shù)據(jù)庫(kù)服務(wù)器與數(shù)據(jù)庫(kù)緩存服務(wù)器之間的網(wǎng)路連接,應(yīng)該盡量的直接。如最好不要在中間夾著其他的不必要的網(wǎng)絡(luò)設(shè)備;也最好不要在他們之間配備防火墻等安全策略。這些安全策略與網(wǎng)絡(luò)設(shè)備都會(huì)在很大程度上影響到這個(gè)同步操作的效率。另外,最好也不要有其他的應(yīng)用服務(wù)來(lái)爭(zhēng)搶帶寬。所以簡(jiǎn)單的說(shuō),如果可能的話,在數(shù)據(jù)庫(kù)服務(wù)器上部署多張網(wǎng)卡,直接與數(shù)據(jù)庫(kù)源服務(wù)器實(shí)現(xiàn)雙機(jī)互聯(lián),而那傳輸同步操作需要的數(shù)據(jù),這是一個(gè)很不錯(cuò)的手段。由于其數(shù)據(jù)傳輸更直接、而且其他設(shè)備或者應(yīng)用服務(wù)也會(huì)來(lái)爭(zhēng)奪其帶寬,同時(shí)又可以克服他們的非法攻擊。為此,只要他們之間多距離比較短的話,采用這種方案可能效果會(huì)比較好,可以在最大程度內(nèi)縮短這個(gè)同步操作所需要的時(shí)間,從而讓其他用戶盡早看到更新的數(shù)據(jù)。
第三為同步選擇合適的復(fù)制方案。
那么該如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)服務(wù)器與緩存服務(wù)器之間的同步呢?在SQLServer數(shù)據(jù)庫(kù)中,有三個(gè)方案可供數(shù)據(jù)庫(kù)管理員選擇。這三個(gè)方案分別為快照復(fù)制、合并復(fù)制與事務(wù)復(fù)制。這三個(gè)復(fù)制模型各有各的特點(diǎn)。不過(guò)從最終效果來(lái)看,其都可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)服務(wù)器與數(shù)據(jù)庫(kù)緩存服務(wù)器之間的同步。不過(guò)由于其內(nèi)部的實(shí)現(xiàn)機(jī)制不同,為此其雖然結(jié)果相同,但是從性能等方面考慮,還是有差異的。各種復(fù)制模型的原理與特點(diǎn)屬于基本知識(shí)的范疇,筆者在這里就不做過(guò)多闡述了。筆者認(rèn)為,在利用這個(gè)數(shù)據(jù)庫(kù)緩存服務(wù)器來(lái)實(shí)現(xiàn)負(fù)載均衡的方案中,最好采用事務(wù)復(fù)制的同步方案。因?yàn)橄啾绕渌桨竵?lái)說(shuō),事務(wù)日志能夠滿足事務(wù)的一致性、數(shù)據(jù)庫(kù)服務(wù)器系統(tǒng)比較大的吞吐量、同步時(shí)盡量少的開(kāi)銷(xiāo)、以及系統(tǒng)比較短的滯后時(shí)間等等需求。另外在有些企業(yè)中采用這個(gè)方案的話,還要考慮到表與記錄的過(guò)濾需求。而通過(guò)事務(wù)復(fù)制的話,就可以實(shí)現(xiàn)對(duì)列和行的過(guò)濾。而其他復(fù)制模型的話,只能夠部分滿足這些需求。所以,筆者認(rèn)為,在選擇數(shù)據(jù)同步方案時(shí),可能選擇事務(wù)復(fù)制來(lái)實(shí)現(xiàn)同步,更加的合適。不過(guò)最終是否真是如此,還是要求數(shù)據(jù)庫(kù)管理員根據(jù)企業(yè)的實(shí)際需要,然后分別采用幾個(gè)復(fù)制模型來(lái)進(jìn)行測(cè)試,才能夠得出真正合理的結(jié)果。
- 1OA軟件最全面的房地產(chǎn)營(yíng)銷(xiāo)操作指導(dǎo)大綱
- 23年內(nèi)全球9成企業(yè)將使用開(kāi)源技術(shù)
- 3RFID 電子標(biāo)簽與條型碼的比較
- 4數(shù)據(jù)中心基礎(chǔ)架構(gòu)的挑戰(zhàn)與新發(fā)展
- 5SNS社交類網(wǎng)站:?jiǎn)T工很癡迷很老板很為難
- 6縱談企業(yè)應(yīng)用集成、業(yè)務(wù)流程集成與中間件
- 7數(shù)據(jù)中心冷卻:綠色環(huán)??滩蝗菥?/a>
- 8選購(gòu)上網(wǎng)行為管理設(shè)備關(guān)注四大要點(diǎn)
- 9云計(jì)算也許帶給安全行業(yè)一次新的機(jī)遇
- 10分析:七步解決服務(wù)器I/O成本問(wèn)題
- 11以色列國(guó)防部老兵看云計(jì)算的安全問(wèn)題
- 12OA項(xiàng)目顧問(wèn)、銷(xiāo)售、代理的策劃營(yíng)銷(xiāo)
- 13數(shù)據(jù)集成項(xiàng)目成敗中樞 數(shù)據(jù)模型要靈活
- 14解讀至強(qiáng)5500在高性能計(jì)算的應(yīng)用
- 15云計(jì)算五大支柱 動(dòng)態(tài)計(jì)算基礎(chǔ)設(shè)施是關(guān)鍵
- 16泛普OA軟件解決方案能解決哪些客戶問(wèn)題?
- 17軟件許可證成為桌面虛擬化發(fā)展瓶頸
- 18SOA和SaaS管理軟件將在ERP結(jié)合
- 19如何使用虛擬化里的高級(jí)NAS功能?
- 20充分利用SSD需要系統(tǒng)架構(gòu)的哪些支持?
- 21系統(tǒng)重裝防再遭病毒侵襲 五大注意事項(xiàng)
- 22應(yīng)用感知存儲(chǔ)滿足用戶的實(shí)際需求
- 23從網(wǎng)關(guān)安全設(shè)備轉(zhuǎn)向云安全正當(dāng)時(shí)嗎?
- 24存儲(chǔ)的下一步進(jìn)化將是自動(dòng)化效用存儲(chǔ)
- 25專家:云存儲(chǔ)已經(jīng)形成四大應(yīng)用領(lǐng)域
- 26那些是適用于中小企業(yè)的HR解決方案
- 27如何利用緩存服務(wù)器來(lái)負(fù)載均衡
- 28網(wǎng)絡(luò)安全信息通報(bào)實(shí)施辦法6月1日起實(shí)施
- 29選擇合適的虛擬化技術(shù)需要因人而異
- 30沈陽(yáng)泛普OA軟件的項(xiàng)目定價(jià)模擬
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓