劉 超
(南充廣播電視大學,四川 南充 637000)
網絡應用進一步發展到大數據時代,對我們的網站建設提出新的要求,響應更快,服務器7×24在線,系統更安全,數據更安全。傳統的網站建立方式有了一定的局限性,過去平臺建設使用單臺服務器提供服務,但性能和穩定性都很難保證。后來使用多臺服務器組成集群,使用災備,雙機熱備等多種保證穩定性,但這些技術對淘寶,京東等大型網絡平臺來說,依然完成不了他們大數據時代的需求。他們的網絡平臺面對用戶更多,提供服務種類多,但要求響應時間非常短且安全性要求非常高,由此網絡平臺建設進入了分布式網絡架構階段。但這類網絡平臺建設技術難度高,成本高,維護難度也高。對很多中小型事業單元來說并沒有能力建設分布式架構的服務,如何幫助中小型事業單元建立一個分布式高效能的網絡平臺,并且成本不能太高成為目前網絡化進程的一個急需解決的問題。
本文的教務平臺建設是借鑒使用京東等電商的技術路線開發的,追求高可靠性,熱部署,穩定性,且注重保證網站在大量訪問情況下的安全穩定,7×24在線并且使用較為低成本的硬件設備完成較高性能網絡平臺,探索一條較為經濟可靠的分布式網絡搭建技術路線。由于分布式網絡平臺的搭建中可以選擇使用的技術路線非常多,每一個環節都有若干種選擇,如何進行最有效的搭配成為眾多開發者的門檻。本文通過國開基層教務平臺的建設,總結并提供了一條高效率穩定低成本的解決方案。
分布式網絡架構一般使用分布式資源共享服務器,指數據和程序可以不位于一個服務器上,而是分散到多個服務器,以網絡上分散分布不同地理位置的服務器來共同提供服務。由于我們的教務平臺數據保護要求較高,所以采用多臺服務器集中在機房部署,只是使用多臺服務器來提供服務,并沒有地理位置上的分散,這也是最常見的應用。
國家開放大學對新的教育技術的使用一直處于比較領先的地位,從歷史上的衛星轉播,電視教學等一直有較好的應用。在網絡技術突飛猛進的發展過程中,
對網絡的使用也是一直處于領先的地位。但是由于國開系統的特殊性,比如分校分布廣,分層多,中央,省,市,縣幾級分布,且各地經濟技術水平發展差距較大,課程等教務多方面的選擇并不統一。實際情況差距較大,造成分校到學生一級的脫節,學生并不能詳細的了解到自己的學習情況。針對這個問題,我們研究開發了分校一級的平臺,內容涉及教務,學生,教師,上級平臺等幾個方面。
系統的建設要考慮到應用范圍,以后的可擴展性等方面的因素。分校一級涉及的內容主要是詳細統計學生課程通過情況,并將本期教學過程的詳細告知學生,詳細內容為選課后的課程及學習平臺,考試,成績等內容告知學生。學生根據平臺的告知的詳細內容進行學習。涉及到學生的班級,班主任,教學計劃,修復學,轉專業,學位申請等內容,考試方面則有考試文件,組考數據,考試成績等內容的安排。平臺針對市一級的學習,涉及學生大概在五千到兩萬人之間,涉及考試課次大概在兩萬到十五萬條左右,由于學生登錄平臺的時間段會比較集中,所以對系統的并發性,健壯性有較高的要求。且學生的登錄方式多樣,必須要進行移動端的適配。成績數據量較大,現已有46萬條數據,且每年增加6萬條左右。
系統平臺搭建在centos6.5版本上,它使用linux內核,在共享的系統優化軟件上有較多的選擇,系統穩定;設計語言使用java;服務器代理使用tomcat;數據庫使用mysql;編程工具使用eclipse;這樣的選擇一個是很成熟,而且費用低。團隊合作使用在碼云創建的賬號,每人負責的部分及時更新上傳;同時要考慮到負載均衡的處理;共享緩存;數據庫使用主從方式備份,同步寫入;防單點(single point)部署等幾個方面。
基于linux內核的系統很多,國內就是centos和ubuntu比較多。選用centos的原因一個是它采用的內核組件及內核版本較為保守,因此穩定性要好一些。而且很多專業設備都支持centos的安裝。這樣就降低了極大的難度。且本人對centos使用較為熟悉。
由于使用了centos系統,.net在該平臺沒有什么優勢,J2EE有良好的跨平臺性能,使用java來進行編程就是不二的選擇了。盡管對普通事業單元來說,linux系統比windows系統由更高的門檻,但centos經歷了長期的發展,技術難度已經降低了很多,而且網絡上有非常多的使用幫助,所以選擇centos系統并不會有很大的難度。

圖1
如圖1所示,我們系統平臺搭建邏輯結構的基本樣式,依此結構,平臺搭建中使用的各項技術完美融合,達到較好的并發性,穩定性,經濟性。
教務系統建設中,考慮到學生登錄系統會有一定的集中性,比如考前考試安排,考后出成績等都會造成學生集中登錄,所以負載均衡這一塊一定要做好。負載均衡Load Balance,指把工作分攤到多個操作單元上執行,指在現有的網絡結構之上,提供一種有效透明的方法擴展網絡設備和服務器的帶寬,增加吞吐量,加強網絡數據的處理能力,提高網絡的靈活性和可用性。
做負責均衡有多種方法,這里我們使用nginx來做服務器的反向代理和負載均衡。負載均衡有多種做法,比如軟件方案有 DNS Load Balance,CheckPoint Firewall-1 ConnectControl,有的則采用硬件解決,比如路由模式,橋接模式,服務直接返回模式等。我們建設教務平臺的時候,綜合使用范圍,系統強度,技術難度,可靠性,經濟性等幾個方面綜合考慮,采用nginx來作為負載均衡服務器,在鏈接高并發的情況下,是一個非常好用的服務器,可以支持高達50000個并發的鏈接請求。且安裝簡單,配置文件方便,可以7*24不間斷運行,可數月不重啟??紤]到目前訪問量的因數,我們使用四臺服務器來提供服務,四臺虛擬機,分布在兩臺物理機器上。如果后期需要更多服務的話,可以采用直接增加服務器數量的方式來對應??蓴U展性很強。
nginx的使用比較簡單方便,下載后不需要安裝,直接啟動就可以了,但是要配置一下核心文件,配置nginx.conf文件,主要是lcation選項,它表示配置路徑,所有的請求都被匹配到了這里。
傳統上還有一些技術,比如雙機熱備等,但效率并不高,所以沒有采用。
在共享緩存的管理上,我們使用了redis作為管理工具。Redis是一款高性能的數據庫服務器,每秒的set操作可達110000次,get可達81000次可以實現主從同步,Redis支持主從同步。數據可以從主服務器向任意數量的從服務器上同步,從服務器可以是關聯其他從服務器的主服務器。Radis的源文件可以免費獲得,需要make編譯一次。
Tomcat是動態網頁服務器,是jsp/servlet容器,同時也支持 HTML、JSP、ASP、PHP、CGI等,其中 CGI需要一些手動調試,不過很容易的,屬于配套的應用了。Tomcat只是一個servlet(jsp也翻譯成servlet)容器,可以認為是apache的擴展,但是可以獨立于apache運行即使在Windows系統中,也常使用tomcat作為web網絡服務器。Apache是個靜態的web服務器,教務平臺的內容大多是實時更新的,屬于動態網頁,apache明顯不符合要求。
數據庫服務器采用主從結構,從服務器進行實時備份。保證數據的安全性。Mysql體積小,速度快,源碼開放,總成本比較低,適合中小網站的建設。
平臺建設圍繞的中心就是學生學習和教師選課,學生在學習遇到了課程目標多樣化的問題,各種課程開設單位不一致,造成要求不一致,完成平臺不一致,同時也對教師給學生的課程注冊造成極大地負擔。從該目標出發,合理設計數據流,該平臺包含了學生信息表,班級信息表,教學計劃表,班主任表,教學點表,成績表等多種數據。

圖2
上圖2為平臺業務流程圖,通過對業務流程的梳理,基本涵蓋了學生入學后到考試的各各階段。入口分為教務、班主任、財務、學生等幾個主體,登陸后根據系統分配顯示不同的功能模塊??梢詭椭處?,教務,財務,學生等幾個主體互動。大大減輕了老師學生之間,下級教務和上級教務之間,教務和學生之間信息不暢通的局面。平臺已經運行了兩個學期,極大的減輕了教學選課的負擔和學生對課程學習的困惑。
由于各分校各部門的實際業務流程有差距,所以該平臺距離大面積推廣還有一定的不足。但系統建成兩個學期以來,在各工作流程中穩定的發揮了積極的作用,極大的減輕了教學選課的負擔和學生對課程學習的困惑。
本次的平臺的建設先進性在于將負載均衡,共享緩存等技術應以較低的成本的應用于普通事業單元的建設,以更好的系統性能和穩定性使系統更加出色。總結了一條較為可行,易于推廣使用的技術路線。該教務平臺從另一方面成為計算機專業教師的一個理論聯系實際的平臺,由于有充足的數據和復雜的業務流程,所以對各項技術都有較大考驗,后續工作中繼續引入最新的技術到普通工作中,解決大眾工作中遇到的實際問題,而不是去創造新的需求,讓技術走向日常。
[1]陳康賢.《大型分布式網站架構設計與實踐》[M].電子工業出版社.
[2]Peter Membrey,David hows,Eelco Plugge,武海峰,陳曉亮譯.《實用負載均衡技術:網站性能優化攻略》[M].人民郵電出版社.
[3](美國)LourisRosenfeld,(美國)PeterMorville.《Web信息架構——設計大型網站》[M].電子工業出版社.