劉 超
(南充廣播電視大學(xué),四川 南充 637000)
網(wǎng)絡(luò)應(yīng)用進一步發(fā)展到大數(shù)據(jù)時代,對我們的網(wǎng)站建設(shè)提出新的要求,響應(yīng)更快,服務(wù)器7×24在線,系統(tǒng)更安全,數(shù)據(jù)更安全。傳統(tǒng)的網(wǎng)站建立方式有了一定的局限性,過去平臺建設(shè)使用單臺服務(wù)器提供服務(wù),但性能和穩(wěn)定性都很難保證。后來使用多臺服務(wù)器組成集群,使用災(zāi)備,雙機熱備等多種保證穩(wěn)定性,但這些技術(shù)對淘寶,京東等大型網(wǎng)絡(luò)平臺來說,依然完成不了他們大數(shù)據(jù)時代的需求。他們的網(wǎng)絡(luò)平臺面對用戶更多,提供服務(wù)種類多,但要求響應(yīng)時間非常短且安全性要求非常高,由此網(wǎng)絡(luò)平臺建設(shè)進入了分布式網(wǎng)絡(luò)架構(gòu)階段。但這類網(wǎng)絡(luò)平臺建設(shè)技術(shù)難度高,成本高,維護難度也高。對很多中小型事業(yè)單元來說并沒有能力建設(shè)分布式架構(gòu)的服務(wù),如何幫助中小型事業(yè)單元建立一個分布式高效能的網(wǎng)絡(luò)平臺,并且成本不能太高成為目前網(wǎng)絡(luò)化進程的一個急需解決的問題。
本文的教務(wù)平臺建設(shè)是借鑒使用京東等電商的技術(shù)路線開發(fā)的,追求高可靠性,熱部署,穩(wěn)定性,且注重保證網(wǎng)站在大量訪問情況下的安全穩(wěn)定,7×24在線并且使用較為低成本的硬件設(shè)備完成較高性能網(wǎng)絡(luò)平臺,探索一條較為經(jīng)濟可靠的分布式網(wǎng)絡(luò)搭建技術(shù)路線。由于分布式網(wǎng)絡(luò)平臺的搭建中可以選擇使用的技術(shù)路線非常多,每一個環(huán)節(jié)都有若干種選擇,如何進行最有效的搭配成為眾多開發(fā)者的門檻。本文通過國開基層教務(wù)平臺的建設(shè),總結(jié)并提供了一條高效率穩(wěn)定低成本的解決方案。
分布式網(wǎng)絡(luò)架構(gòu)一般使用分布式資源共享服務(wù)器,指數(shù)據(jù)和程序可以不位于一個服務(wù)器上,而是分散到多個服務(wù)器,以網(wǎng)絡(luò)上分散分布不同地理位置的服務(wù)器來共同提供服務(wù)。由于我們的教務(wù)平臺數(shù)據(jù)保護要求較高,所以采用多臺服務(wù)器集中在機房部署,只是使用多臺服務(wù)器來提供服務(wù),并沒有地理位置上的分散,這也是最常見的應(yīng)用。
國家開放大學(xué)對新的教育技術(shù)的使用一直處于比較領(lǐng)先的地位,從歷史上的衛(wèi)星轉(zhuǎn)播,電視教學(xué)等一直有較好的應(yīng)用。在網(wǎng)絡(luò)技術(shù)突飛猛進的發(fā)展過程中,
對網(wǎng)絡(luò)的使用也是一直處于領(lǐng)先的地位。但是由于國開系統(tǒng)的特殊性,比如分校分布廣,分層多,中央,省,市,縣幾級分布,且各地經(jīng)濟技術(shù)水平發(fā)展差距較大,課程等教務(wù)多方面的選擇并不統(tǒng)一。實際情況差距較大,造成分校到學(xué)生一級的脫節(jié),學(xué)生并不能詳細的了解到自己的學(xué)習情況。針對這個問題,我們研究開發(fā)了分校一級的平臺,內(nèi)容涉及教務(wù),學(xué)生,教師,上級平臺等幾個方面。
系統(tǒng)的建設(shè)要考慮到應(yīng)用范圍,以后的可擴展性等方面的因素。分校一級涉及的內(nèi)容主要是詳細統(tǒng)計學(xué)生課程通過情況,并將本期教學(xué)過程的詳細告知學(xué)生,詳細內(nèi)容為選課后的課程及學(xué)習平臺,考試,成績等內(nèi)容告知學(xué)生。學(xué)生根據(jù)平臺的告知的詳細內(nèi)容進行學(xué)習。涉及到學(xué)生的班級,班主任,教學(xué)計劃,修復(fù)學(xué),轉(zhuǎn)專業(yè),學(xué)位申請等內(nèi)容,考試方面則有考試文件,組考數(shù)據(jù),考試成績等內(nèi)容的安排。平臺針對市一級的學(xué)習,涉及學(xué)生大概在五千到兩萬人之間,涉及考試課次大概在兩萬到十五萬條左右,由于學(xué)生登錄平臺的時間段會比較集中,所以對系統(tǒng)的并發(fā)性,健壯性有較高的要求。且學(xué)生的登錄方式多樣,必須要進行移動端的適配。成績數(shù)據(jù)量較大,現(xiàn)已有46萬條數(shù)據(jù),且每年增加6萬條左右。
系統(tǒng)平臺搭建在centos6.5版本上,它使用linux內(nèi)核,在共享的系統(tǒng)優(yōu)化軟件上有較多的選擇,系統(tǒng)穩(wěn)定;設(shè)計語言使用java;服務(wù)器代理使用tomcat;數(shù)據(jù)庫使用mysql;編程工具使用eclipse;這樣的選擇一個是很成熟,而且費用低。團隊合作使用在碼云創(chuàng)建的賬號,每人負責的部分及時更新上傳;同時要考慮到負載均衡的處理;共享緩存;數(shù)據(jù)庫使用主從方式備份,同步寫入;防單點(single point)部署等幾個方面。
基于linux內(nèi)核的系統(tǒng)很多,國內(nèi)就是centos和ubuntu比較多。選用centos的原因一個是它采用的內(nèi)核組件及內(nèi)核版本較為保守,因此穩(wěn)定性要好一些。而且很多專業(yè)設(shè)備都支持centos的安裝。這樣就降低了極大的難度。且本人對centos使用較為熟悉。
由于使用了centos系統(tǒng),.net在該平臺沒有什么優(yōu)勢,J2EE有良好的跨平臺性能,使用java來進行編程就是不二的選擇了。盡管對普通事業(yè)單元來說,linux系統(tǒng)比windows系統(tǒng)由更高的門檻,但centos經(jīng)歷了長期的發(fā)展,技術(shù)難度已經(jīng)降低了很多,而且網(wǎng)絡(luò)上有非常多的使用幫助,所以選擇centos系統(tǒng)并不會有很大的難度。
圖1
如圖1所示,我們系統(tǒng)平臺搭建邏輯結(jié)構(gòu)的基本樣式,依此結(jié)構(gòu),平臺搭建中使用的各項技術(shù)完美融合,達到較好的并發(fā)性,穩(wěn)定性,經(jīng)濟性。
教務(wù)系統(tǒng)建設(shè)中,考慮到學(xué)生登錄系統(tǒng)會有一定的集中性,比如考前考試安排,考后出成績等都會造成學(xué)生集中登錄,所以負載均衡這一塊一定要做好。負載均衡Load Balance,指把工作分攤到多個操作單元上執(zhí)行,指在現(xiàn)有的網(wǎng)絡(luò)結(jié)構(gòu)之上,提供一種有效透明的方法擴展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬,增加吞吐量,加強網(wǎng)絡(luò)數(shù)據(jù)的處理能力,提高網(wǎng)絡(luò)的靈活性和可用性。
做負責均衡有多種方法,這里我們使用nginx來做服務(wù)器的反向代理和負載均衡。負載均衡有多種做法,比如軟件方案有 DNS Load Balance,CheckPoint Firewall-1 ConnectControl,有的則采用硬件解決,比如路由模式,橋接模式,服務(wù)直接返回模式等。我們建設(shè)教務(wù)平臺的時候,綜合使用范圍,系統(tǒng)強度,技術(shù)難度,可靠性,經(jīng)濟性等幾個方面綜合考慮,采用nginx來作為負載均衡服務(wù)器,在鏈接高并發(fā)的情況下,是一個非常好用的服務(wù)器,可以支持高達50000個并發(fā)的鏈接請求。且安裝簡單,配置文件方便,可以7*24不間斷運行,可數(shù)月不重啟??紤]到目前訪問量的因數(shù),我們使用四臺服務(wù)器來提供服務(wù),四臺虛擬機,分布在兩臺物理機器上。如果后期需要更多服務(wù)的話,可以采用直接增加服務(wù)器數(shù)量的方式來對應(yīng)??蓴U展性很強。
nginx的使用比較簡單方便,下載后不需要安裝,直接啟動就可以了,但是要配置一下核心文件,配置nginx.conf文件,主要是lcation選項,它表示配置路徑,所有的請求都被匹配到了這里。
傳統(tǒng)上還有一些技術(shù),比如雙機熱備等,但效率并不高,所以沒有采用。
在共享緩存的管理上,我們使用了redis作為管理工具。Redis是一款高性能的數(shù)據(jù)庫服務(wù)器,每秒的set操作可達110000次,get可達81000次可以實現(xiàn)主從同步,Redis支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。Radis的源文件可以免費獲得,需要make編譯一次。
Tomcat是動態(tài)網(wǎng)頁服務(wù)器,是jsp/servlet容器,同時也支持 HTML、JSP、ASP、PHP、CGI等,其中 CGI需要一些手動調(diào)試,不過很容易的,屬于配套的應(yīng)用了。Tomcat只是一個servlet(jsp也翻譯成servlet)容器,可以認為是apache的擴展,但是可以獨立于apache運行即使在Windows系統(tǒng)中,也常使用tomcat作為web網(wǎng)絡(luò)服務(wù)器。Apache是個靜態(tài)的web服務(wù)器,教務(wù)平臺的內(nèi)容大多是實時更新的,屬于動態(tài)網(wǎng)頁,apache明顯不符合要求。
數(shù)據(jù)庫服務(wù)器采用主從結(jié)構(gòu),從服務(wù)器進行實時備份。保證數(shù)據(jù)的安全性。Mysql體積小,速度快,源碼開放,總成本比較低,適合中小網(wǎng)站的建設(shè)。
平臺建設(shè)圍繞的中心就是學(xué)生學(xué)習和教師選課,學(xué)生在學(xué)習遇到了課程目標多樣化的問題,各種課程開設(shè)單位不一致,造成要求不一致,完成平臺不一致,同時也對教師給學(xué)生的課程注冊造成極大地負擔。從該目標出發(fā),合理設(shè)計數(shù)據(jù)流,該平臺包含了學(xué)生信息表,班級信息表,教學(xué)計劃表,班主任表,教學(xué)點表,成績表等多種數(shù)據(jù)。
圖2
上圖2為平臺業(yè)務(wù)流程圖,通過對業(yè)務(wù)流程的梳理,基本涵蓋了學(xué)生入學(xué)后到考試的各各階段。入口分為教務(wù)、班主任、財務(wù)、學(xué)生等幾個主體,登陸后根據(jù)系統(tǒng)分配顯示不同的功能模塊??梢詭椭處煟虅?wù),財務(wù),學(xué)生等幾個主體互動。大大減輕了老師學(xué)生之間,下級教務(wù)和上級教務(wù)之間,教務(wù)和學(xué)生之間信息不暢通的局面。平臺已經(jīng)運行了兩個學(xué)期,極大的減輕了教學(xué)選課的負擔和學(xué)生對課程學(xué)習的困惑。
由于各分校各部門的實際業(yè)務(wù)流程有差距,所以該平臺距離大面積推廣還有一定的不足。但系統(tǒng)建成兩個學(xué)期以來,在各工作流程中穩(wěn)定的發(fā)揮了積極的作用,極大的減輕了教學(xué)選課的負擔和學(xué)生對課程學(xué)習的困惑。
本次的平臺的建設(shè)先進性在于將負載均衡,共享緩存等技術(shù)應(yīng)以較低的成本的應(yīng)用于普通事業(yè)單元的建設(shè),以更好的系統(tǒng)性能和穩(wěn)定性使系統(tǒng)更加出色??偨Y(jié)了一條較為可行,易于推廣使用的技術(shù)路線。該教務(wù)平臺從另一方面成為計算機專業(yè)教師的一個理論聯(lián)系實際的平臺,由于有充足的數(shù)據(jù)和復(fù)雜的業(yè)務(wù)流程,所以對各項技術(shù)都有較大考驗,后續(xù)工作中繼續(xù)引入最新的技術(shù)到普通工作中,解決大眾工作中遇到的實際問題,而不是去創(chuàng)造新的需求,讓技術(shù)走向日常。
[1]陳康賢.《大型分布式網(wǎng)站架構(gòu)設(shè)計與實踐》[M].電子工業(yè)出版社.
[2]Peter Membrey,David hows,Eelco Plugge,武海峰,陳曉亮譯.《實用負載均衡技術(shù):網(wǎng)站性能優(yōu)化攻略》[M].人民郵電出版社.
[3](美國)LourisRosenfeld,(美國)PeterMorville.《Web信息架構(gòu)——設(shè)計大型網(wǎng)站》[M].電子工業(yè)出版社.