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