摘要:互聯(lián)網(wǎng)信息技術(shù)突飛猛進(jìn),Web系統(tǒng)被越來(lái)越多的行業(yè)在生產(chǎn)生活中使用。教育考試管理機(jī)構(gòu)在發(fā)布中考、高考成績(jī)的時(shí)候,Web系統(tǒng)也被用于考生查詢(xún)分?jǐn)?shù)。由于查分人數(shù)眾多,容易出現(xiàn)系統(tǒng)緩慢,甚至高峰時(shí)段短時(shí)間內(nèi)無(wú)法訪問(wèn)的情況。為了解決該問(wèn)題,文章提出了一種基于虛擬化和負(fù)載均衡的高并發(fā)Web考試查分系統(tǒng)的解決方案,該方案能有效地應(yīng)對(duì)短期高并發(fā)的業(yè)務(wù)訪問(wèn)。
關(guān)鍵詞:虛擬化;教育考試;高并發(fā);查分;負(fù)載均衡
中圖分類(lèi)號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)14-0099-03
當(dāng)今世界信息技術(shù)突飛猛進(jìn),在現(xiàn)實(shí)生活中Web訪問(wèn)技術(shù)使用越來(lái)越頻繁。人們?cè)絹?lái)越離不開(kāi)Web系統(tǒng),譬如12306鐵路網(wǎng)上購(gòu)票、大眾點(diǎn)評(píng)網(wǎng)上訂座、淘寶網(wǎng)上購(gòu)物、教育考試網(wǎng)上查分等,Web系統(tǒng)已經(jīng)融入人們?nèi)粘I钪小kS著Web系統(tǒng)應(yīng)用場(chǎng)景的擴(kuò)大以及互聯(lián)網(wǎng)的普及,普通的Web系統(tǒng)由于響應(yīng)時(shí)間過(guò)長(zhǎng),處理速度過(guò)慢,高峰期無(wú)法連接等特性越來(lái)越難以滿(mǎn)足臨時(shí)、短時(shí)間、突發(fā)的巨大訪問(wèn)量。高并發(fā)Web系統(tǒng)借助虛擬化技術(shù)構(gòu)建應(yīng)用服務(wù)集群、數(shù)據(jù)庫(kù)集群,通過(guò)一定的負(fù)載均衡策略極大地提高了服務(wù)的可靠性和穩(wěn)定性,很好地滿(mǎn)足了現(xiàn)實(shí)生產(chǎn)生活的需要。
本文著重研究了高并發(fā)訪問(wèn)系統(tǒng)的技術(shù)特點(diǎn),并結(jié)合教育考試管理機(jī)構(gòu)成績(jī)發(fā)布時(shí)遇到的高并發(fā)訪問(wèn)這一特定場(chǎng)景,基于虛擬化技術(shù)和負(fù)載均衡提出了一套行之有效的高并發(fā)Web系統(tǒng)架構(gòu),最后通過(guò)實(shí)現(xiàn)原型系統(tǒng)證明了這套架構(gòu)在相關(guān)應(yīng)用領(lǐng)域中的實(shí)際價(jià)值。
1 Web發(fā)展概述
最開(kāi)始的Web系統(tǒng)由一臺(tái)服務(wù)器構(gòu)成,同時(shí)承擔(dān)著響應(yīng)服務(wù)請(qǐng)求和數(shù)據(jù)增、刪、改、查的任務(wù),這種架構(gòu)所能承載的日訪問(wèn)量和短時(shí)間訪問(wèn)量都很小。隨著訪問(wèn)請(qǐng)求日益增加,單一服務(wù)器搭建的Web系統(tǒng)無(wú)法滿(mǎn)足要求,因此逐漸將前端響應(yīng)服務(wù)請(qǐng)求的功能和后臺(tái)數(shù)據(jù)增、刪、改、查的功能區(qū)分開(kāi),由一臺(tái)Web服務(wù)器和一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器構(gòu)成。Web服務(wù)器負(fù)責(zé)接收處理客戶(hù)的訪問(wèn)請(qǐng)求,數(shù)據(jù)庫(kù)服務(wù)器負(fù)責(zé)處理保存后臺(tái)的客戶(hù)數(shù)據(jù),兩類(lèi)服務(wù)器互不影響,這種架構(gòu)可以滿(mǎn)足以萬(wàn)計(jì)級(jí)別的日訪問(wèn)量。如果Web訪問(wèn)服務(wù)繼續(xù)增加,服務(wù)提供商可能會(huì)采用更高配置、更高性能的服務(wù)器來(lái)解決訪問(wèn)瓶頸,但這種架構(gòu)存在著先天劣勢(shì),且不能滿(mǎn)足短期突發(fā)的大量訪問(wèn)請(qǐng)求這類(lèi)場(chǎng)景[1-3]。在廣泛使用需求的推動(dòng)下,高并發(fā)Web系統(tǒng)成為研究熱點(diǎn)。
2 虛擬化技術(shù)概述
虛擬化技術(shù)將計(jì)算機(jī)的處理器、內(nèi)存、硬盤(pán)、顯卡等物理資源抽象為邏輯資源,并將邏輯資源組合成虛擬機(jī)。用戶(hù)在訪問(wèn)虛擬機(jī)獲取服務(wù)時(shí)就像訪問(wèn)現(xiàn)實(shí)計(jì)算機(jī)一樣真實(shí)。在實(shí)際生產(chǎn)環(huán)境中,軟硬件資源相對(duì)孤立,通過(guò)虛擬化技術(shù)整合新舊物理資源,將不同時(shí)期采購(gòu)的不同型號(hào)、不同品牌的計(jì)算機(jī)作成虛擬機(jī),構(gòu)成一個(gè)大的服務(wù)器資源池,極大地減少了機(jī)房軟硬件資源的采購(gòu)成本,提高了軟硬件資源的利用率。當(dāng)一臺(tái)虛擬機(jī)出現(xiàn)故障時(shí),可以遷移到其他服務(wù)器上進(jìn)行運(yùn)行,見(jiàn)圖1,確保服務(wù)無(wú)縫銜接,實(shí)現(xiàn)了查詢(xún)?cè)L問(wèn)服務(wù)的高可靠性[4-6]。
3 考試查分系統(tǒng)的特點(diǎn)
考試管理機(jī)構(gòu)考試查分系統(tǒng)呈現(xiàn)一定的規(guī)律。在考試管理機(jī)構(gòu)規(guī)定的一段時(shí)間內(nèi),考生可通過(guò)部署的查分系統(tǒng)訪問(wèn)查詢(xún)各科考試成績(jī)。在成績(jī)查詢(xún)期間,考生如對(duì)發(fā)布的成績(jī)有疑義,允許其在線提出成績(jī)復(fù)核申請(qǐng)。成績(jī)復(fù)核期間,考試管理機(jī)構(gòu)根據(jù)匯總的成績(jī)復(fù)核申請(qǐng),組織工作人員進(jìn)行成績(jī)復(fù)核。復(fù)核結(jié)束后,考生可再次在線進(jìn)行復(fù)核成績(jī)查詢(xún)。從上述流程可以看出,在成績(jī)剛剛開(kāi)放查詢(xún)時(shí),瞬時(shí)訪問(wèn)會(huì)急劇增加,特別是利害性考試查分系統(tǒng)尤為明顯。此外,由于考生成績(jī)查詢(xún)、修改操作需全程可回溯的特點(diǎn),對(duì)數(shù)據(jù)庫(kù)的任何增刪改查都要有日志記錄。
4 高并發(fā)Web考試查分系統(tǒng)的架構(gòu)設(shè)計(jì)
筆者在單位虛擬化集群上搭建了一套高并發(fā)的Web查分系統(tǒng)。該系統(tǒng)框架由數(shù)據(jù)庫(kù)訪問(wèn)層,緩存管理層,應(yīng)用邏輯層,數(shù)據(jù)表示層4個(gè)部分組成[7-11],見(jiàn)圖2。
數(shù)據(jù)庫(kù)訪問(wèn)層,主要是和數(shù)據(jù)庫(kù)進(jìn)行交互,對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一的讀寫(xiě)和存儲(chǔ),保證訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)結(jié)果的一致性。通過(guò)提供訪問(wèn)數(shù)據(jù)庫(kù)統(tǒng)一的讀、寫(xiě)接口,屏蔽不同類(lèi)型數(shù)據(jù)庫(kù)的差異,極大地方便了緩存服務(wù)器對(duì)數(shù)據(jù)庫(kù)集群的讀操作和應(yīng)用服務(wù)器對(duì)數(shù)據(jù)庫(kù)集群的寫(xiě)操作,降低了數(shù)據(jù)出錯(cuò)的概率。同時(shí),根據(jù)高并發(fā)業(yè)務(wù)邏輯的分析整合,對(duì)數(shù)據(jù)采用了橫向拆分和縱向拆分方法,提供了簡(jiǎn)潔明了的數(shù)據(jù)分散結(jié)構(gòu),降低了模型上層結(jié)構(gòu)的開(kāi)發(fā)復(fù)雜度。數(shù)據(jù)庫(kù)集群讀寫(xiě)分離,通過(guò)一定時(shí)鐘內(nèi)主從復(fù)制來(lái)保證向上層提供服務(wù)的響應(yīng)時(shí)間和數(shù)據(jù)一致性。
緩存管理層,主要是對(duì)緩存服務(wù)器進(jìn)行統(tǒng)一管理,譬如緩存失效時(shí)間、緩存命中概率、緩存內(nèi)存大小、緩存保存規(guī)則、緩存服務(wù)器之間數(shù)據(jù)同步時(shí)鐘設(shè)定等方面。緩存管理層借助虛擬化技術(shù),構(gòu)建緩存虛擬服務(wù)器集群,通過(guò)一定的緩存策略統(tǒng)一管理緩存在虛擬服務(wù)器集群上的數(shù)據(jù)。緩存向上對(duì)應(yīng)用邏輯層提供統(tǒng)一的訪問(wèn)接口,向下對(duì)數(shù)據(jù)庫(kù)訪問(wèn)層進(jìn)行查詢(xún)請(qǐng)求,并根據(jù)緩存策略決定是否將請(qǐng)求結(jié)果寫(xiě)入緩存。
應(yīng)用邏輯層,主要是系統(tǒng)功能實(shí)現(xiàn)的邏輯處理部分,是高并發(fā)Web考試查分系統(tǒng)的核心業(yè)務(wù)層。應(yīng)用邏輯層對(duì)來(lái)自緩存管理層的數(shù)據(jù)根據(jù)業(yè)務(wù)邏輯進(jìn)行處理,實(shí)現(xiàn)數(shù)據(jù)的修改、獲取、刪除等功能,并將處理結(jié)果以用戶(hù)指定的格式反饋給數(shù)據(jù)表示層,由數(shù)據(jù)表示層進(jìn)行展示結(jié)果。應(yīng)用邏輯層還與數(shù)據(jù)庫(kù)訪問(wèn)層進(jìn)行交互,在記錄考生查詢(xún)的log或者考生申請(qǐng)成績(jī)復(fù)核的情況時(shí),應(yīng)用邏輯層調(diào)用數(shù)據(jù)庫(kù)訪問(wèn)層接口進(jìn)行數(shù)據(jù)記錄。
應(yīng)用邏輯層借助虛擬化技術(shù),通過(guò)提供構(gòu)建應(yīng)用虛擬服務(wù)器集群,提高用戶(hù)訪問(wèn)系統(tǒng)的響應(yīng)效率。從多個(gè)物理服務(wù)器上構(gòu)建應(yīng)用虛擬機(jī)資源池,集中提供服務(wù),對(duì)于數(shù)據(jù)表示層來(lái)說(shuō),所有虛擬機(jī)都是透明的,只感知到有一臺(tái)應(yīng)用服務(wù)器在提供服務(wù)。理論上,數(shù)據(jù)表示層可以任由其中一臺(tái)虛擬機(jī)提供服務(wù),但在實(shí)際生產(chǎn)環(huán)境中,受限于應(yīng)用虛擬服務(wù)器的資源使用飽和情況,有可能會(huì)出現(xiàn)虛擬服務(wù)器宕機(jī)的故障,破壞服務(wù)的可靠性。結(jié)合負(fù)載均衡技術(shù)的使用[12],可以使數(shù)據(jù)表示層能選中資源相對(duì)豐富的應(yīng)用虛擬服務(wù)器提供可靠服務(wù)。
數(shù)據(jù)表示層又稱(chēng)為UI層,位于四層架構(gòu)的最上層,由用戶(hù)直接訪問(wèn)。高并發(fā)Web考試查分系統(tǒng)采用B/S結(jié)構(gòu),由Web瀏覽頁(yè)面展示最終結(jié)果。數(shù)據(jù)表示層的主要功能是實(shí)現(xiàn)數(shù)據(jù)的輸入和展現(xiàn)。在此過(guò)程中無(wú)須進(jìn)行邏輯業(yè)務(wù)處理,將數(shù)據(jù)輸入應(yīng)用邏輯層,并由應(yīng)用邏輯層將底層獲取處理的數(shù)據(jù)反饋給數(shù)據(jù)表示層,保證用戶(hù)的體驗(yàn)。
5 高并發(fā)Web考試查分系統(tǒng)的實(shí)現(xiàn)
本文提出的高并發(fā)解決方案可以解決教育考試管理機(jī)構(gòu)中考、高考成績(jī)發(fā)布時(shí)高并發(fā)訪問(wèn)的問(wèn)題,同時(shí)為普通Web系統(tǒng)所參考。數(shù)據(jù)庫(kù)訪問(wèn)層對(duì)數(shù)據(jù)庫(kù)的讀和寫(xiě)都在同一個(gè)數(shù)據(jù)庫(kù)服務(wù)器中,無(wú)論從安全性還是高并發(fā)等方面都無(wú)法滿(mǎn)足實(shí)際需求,因此通過(guò)主從復(fù)制的方式來(lái)同步數(shù)據(jù),再通過(guò)讀寫(xiě)分離來(lái)提升數(shù)據(jù)庫(kù)集群的并發(fā)負(fù)載能力。讀寫(xiě)分離的主要內(nèi)容是把數(shù)據(jù)庫(kù)的讀和寫(xiě)分布在不同的數(shù)據(jù)庫(kù)上。數(shù)據(jù)庫(kù)集群由一臺(tái)主服務(wù)器和若干臺(tái)從服務(wù)器構(gòu)成,主服務(wù)器主要負(fù)責(zé)寫(xiě)操作,從服務(wù)器主要進(jìn)行讀操作。主服務(wù)器和從服務(wù)器之間設(shè)定同步程序,這樣主服務(wù)器的數(shù)據(jù)會(huì)在一個(gè)很短的時(shí)間之內(nèi)被同步到各個(gè)從服務(wù)器,見(jiàn)圖3。
表格是數(shù)據(jù)庫(kù)的核心部分,存儲(chǔ)考生數(shù)據(jù)涉及三個(gè)表。第1個(gè)表為考生表,用于查詢(xún)成績(jī)用,存儲(chǔ)報(bào)名號(hào)、考生號(hào)、姓名、各科目成績(jī);第2個(gè)表為復(fù)核表,用于查詢(xún)成績(jī)提出復(fù)核申請(qǐng),存儲(chǔ)報(bào)名號(hào)、姓名、需復(fù)核的科目;第3個(gè)表為考生詳細(xì)表,用于復(fù)核時(shí)調(diào)出考生情況,存儲(chǔ)報(bào)名號(hào)、考生號(hào)、畢業(yè)學(xué)校、身份證號(hào)、姓名、各科目成績(jī)、各科目抬頭圖片。如果把考生所有的字段都保存在一張表里面,表格將會(huì)變得非常大,并且進(jìn)行讀寫(xiě)操作容易形成等待,效率低下??紤]到這些情況,使用縱向拆分的方法,把查詢(xún)最為頻繁的字段獨(dú)立出來(lái)做成一個(gè)表格,僅將和呈現(xiàn)成績(jī)相關(guān)的字段存儲(chǔ)在此表中,去除更加詳細(xì)的關(guān)于考生的字段信息,數(shù)據(jù)比較穩(wěn)定,提高了查詢(xún)和讀寫(xiě)效率。此外,由于考生人數(shù)眾多,采用橫向拆分的方法,按照考生報(bào)名號(hào)的不同把相關(guān)字段放到不同的表格里面來(lái)減少同一個(gè)表格里面的數(shù)據(jù)量,從而達(dá)到加快查詢(xún)速度和寫(xiě)入速度的目的,同時(shí)系統(tǒng)的可擴(kuò)展性和可維護(hù)性也得到極大的提高。
緩存管理層使用負(fù)載均衡技術(shù),使緩存服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器相互協(xié)作、共同負(fù)載、均衡壓力。對(duì)應(yīng)用邏輯層而言,整個(gè)緩存管理層可以視為一臺(tái)具有超高性能的獨(dú)立服務(wù)器。緩存管理層負(fù)責(zé)應(yīng)用邏輯層和數(shù)據(jù)庫(kù)訪問(wèn)層的上傳下達(dá),根據(jù)緩存命中率和數(shù)據(jù)庫(kù)負(fù)載情況,通過(guò)有效的均衡策略調(diào)整訪問(wèn)的數(shù)據(jù)庫(kù)。
利用VMware虛擬化技術(shù),可以彈性增減虛擬服務(wù)器的數(shù)量。在中考、高考查分期間,我們一般會(huì)把應(yīng)用服務(wù)器增加到40臺(tái)以上,等查詢(xún)高峰過(guò)后,再將虛擬化資源收回,一方面減少了硬件成本,另一方面通過(guò)虛擬機(jī)復(fù)制避免了新增物理設(shè)備環(huán)境的搭建,減少了業(yè)務(wù)部署時(shí)間。
筆者在單位搭建了一套基于虛擬化的高并發(fā)考試查分系統(tǒng),很好地響應(yīng)了用戶(hù)查分請(qǐng)求,取得了良好的效果,圖4是中考查分時(shí)的并發(fā)訪問(wèn)趨勢(shì)。
6 結(jié)束語(yǔ)
針對(duì)教育考試管理機(jī)構(gòu)成績(jī)發(fā)布時(shí)遇到的高并發(fā)訪問(wèn)問(wèn)題,本文結(jié)合虛擬化和負(fù)載均衡技術(shù),提出了一套切實(shí)可行的高并發(fā)Web系統(tǒng)架構(gòu),能夠很好地應(yīng)對(duì)本領(lǐng)域短期瞬時(shí)巨大訪問(wèn)量,提高了專(zhuān)業(yè)化考試機(jī)構(gòu)的服務(wù)能力和水平,提升了考生的“獲得感”。
參考文獻(xiàn):
[1] 李思莉,楊井榮,茍強(qiáng).輕量級(jí)Web服務(wù)器的高并發(fā)技術(shù)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2020,30(10):75-78,85.
[2] 黃芝龍,徐莉莎,瞿少成.高并發(fā)Web電商系統(tǒng)的設(shè)計(jì)與優(yōu)化[J].計(jì)算機(jī)與數(shù)字工程,2019,47(7):1719-1724,1775.
[3] GUL Khan Safi Qamas,王鵬,羅森林,等.一種高并發(fā)網(wǎng)絡(luò)Web應(yīng)用技術(shù)研究[J].信息網(wǎng)絡(luò)安全,2017(12):29-35.
[4] 李麗君,唐智華.服務(wù)器虛擬化技術(shù)架構(gòu)研究與應(yīng)用[J].無(wú)線互聯(lián)科技,2021,18(19):75-76.
[5] 李鵬.服務(wù)器虛擬化技術(shù)分析[J].電子世界,2019(22):74-75.
[6] 劉振東.淺談基于Vmware的PC服務(wù)器虛擬化技術(shù)[J].科技風(fēng),2020(9):2.
[7] 李科偉.互聯(lián)網(wǎng)中高并發(fā)技術(shù)架構(gòu)實(shí)踐[J].數(shù)字通信世界,2019(3):65-66.
[8] 陸兆攀,劉萍萍,盧穎.高并發(fā)搜索系統(tǒng)下內(nèi)存池的設(shè)計(jì)和實(shí)現(xiàn)[J].西安工業(yè)大學(xué)學(xué)報(bào),2016,36(3):187-193,205.
[9] 陳繼磊.高并發(fā)下購(gòu)物平臺(tái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2021.
[10] 江洪波.淺談三層架構(gòu)在信息系統(tǒng)開(kāi)發(fā)中的應(yīng)用[J].信息通信,2016,29(12):205-206.
[11] 張宇光.一種融合不同場(chǎng)景的高并發(fā)處理分層架構(gòu)體系[J].通信技術(shù),2020,53(1):93-100.
[12] 何磊.大數(shù)據(jù)平臺(tái)負(fù)載均衡策略?xún)?yōu)化設(shè)計(jì)研究[J].信息技術(shù),2021,45(7):139-143,149.
收稿日期:2022-01-16
作者簡(jiǎn)介:于偉(1985—),男,江蘇南通人,碩士,工程師,主要研究方向?yàn)榻逃畔⒒?,考?wù)管理。