引言: 某銀行先前使用的相關(guān)業(yè)務(wù)處理系統(tǒng)采用Power Builder 6.0軟件開發(fā)平臺開發(fā),用電子郵件傳輸相關(guān)數(shù)據(jù)文件,規(guī)模較小、結(jié)構(gòu)簡單,功能較弱,因此重新開發(fā)適應(yīng)目前需要的新系統(tǒng),以適應(yīng)形勢和業(yè)務(wù)發(fā)展的需要。本文就在項目中所涉及的改進方法加以分析和總結(jié),以饗讀者。
由于先前使用的相關(guān)業(yè)務(wù)處理系統(tǒng)用電子郵件傳輸相關(guān)數(shù)據(jù)文件,規(guī)模較小、結(jié)構(gòu)簡單,功能較弱,因此重新開發(fā)適應(yīng)目前需要的新系統(tǒng),以適應(yīng)形勢和業(yè)務(wù)發(fā)展的需要。在大型分布式基于網(wǎng)站的應(yīng)用系統(tǒng)中,用戶數(shù)量、業(yè)務(wù)數(shù)據(jù)以及通信負荷均較大,提高系統(tǒng)的運行性能是一個迫切需要解決的重要課題。系統(tǒng)采用瀏覽器/服務(wù)器(Brower/Server)模式,各類服務(wù)器集中配置在總行發(fā)行部門,實現(xiàn)數(shù)據(jù)集中管理。各省、地(市)、縣分支庫發(fā)行部門安裝JDK和客戶端應(yīng)用程序,采用基于IE瀏覽器的用戶界面,通過銀行內(nèi)聯(lián)網(wǎng)聯(lián)機運行。系統(tǒng)總體網(wǎng)絡(luò)拓撲結(jié)構(gòu)示意圖(見圖1所示)。
在硬件運行平臺和系統(tǒng)軟件方面。較早的HTTP Server結(jié)合CGI程序調(diào)用的方式,由于每一請求需要對應(yīng)于后端系統(tǒng)的系統(tǒng)進程來運行CGI程序來處理,系統(tǒng)的開銷相當大,性能和擴展能力差。應(yīng)用服務(wù)器在市場上同類眾多產(chǎn)品中,我們選擇了IBM公司的Web Sphere產(chǎn)品系列。
注重前期系統(tǒng)架構(gòu)的分析和設(shè)計,預(yù)先考慮未來的擴展與性能需要。在項目投產(chǎn)后,應(yīng)用系統(tǒng)從開發(fā)環(huán)境走向?qū)嶋H的生產(chǎn)環(huán)境,用戶訪問量的不斷地上升,為了預(yù)留應(yīng)用系統(tǒng)的發(fā)展空間,我們不斷地運用新技術(shù)、采用新產(chǎn)品又對整個應(yīng)用系統(tǒng)作了多次系統(tǒng)性的升級。其中通過引入多臺應(yīng)用服務(wù)器及Web服務(wù)器等構(gòu)建集群并行工作以提高整個應(yīng)用系統(tǒng)的吞吐量及單點故障的克服能力。
采用集群技術(shù),對應(yīng)用系統(tǒng)進行橫向擴展和縱向擴展。
采用集群服務(wù)(CS)技術(shù),創(chuàng)建集群服務(wù)(CS)集群,將系統(tǒng)進行橫向擴展。當其中任何一個物理主機出現(xiàn)硬件或軟件故障時,運行在該物理主機上的應(yīng)用系統(tǒng)會由集群服務(wù)功能轉(zhuǎn)移到其它沒有故障的物理主機并被重新啟動。由于集群服務(wù)使用諸如SCSI和光纖等具有公共總線結(jié)構(gòu)的共享磁盤配置,因此,在故障應(yīng)急期間將不會有數(shù)據(jù)被丟失。
采用網(wǎng)絡(luò)負載均衡(NLB)技術(shù),創(chuàng)建網(wǎng)絡(luò)負載均衡(NLB)集群,將系統(tǒng)進行橫向和縱向擴展。通過在集群內(nèi)的多個服務(wù)器之間根據(jù)每一臺服務(wù)器的具體運行性能合理地分配來自客戶端的請求。并能夠?qū)崿F(xiàn)隨著流量的增加,可以向集群中添加更多的服務(wù)器,以增強整個應(yīng)用系統(tǒng)的可伸縮性。
圖1 系統(tǒng)總體網(wǎng)絡(luò)拓撲結(jié)構(gòu)示意圖
采用組件負載均衡(CLB)技術(shù),創(chuàng)建組件負載均衡(CLB)集群,將系統(tǒng)更進一步進行橫向和縱向擴展
采用數(shù)據(jù)庫路由器技術(shù),在后端進一步增設(shè)創(chuàng)建數(shù)據(jù)庫服務(wù)器集群,實現(xiàn)數(shù)據(jù)庫服務(wù)器的負載均衡,以及在任何時刻均保持完全相同的非單一邏輯數(shù)據(jù)集的熱備份。
在數(shù)據(jù)庫路由器ICX后端可以同時連接N個數(shù)據(jù)庫,所有的數(shù)據(jù)庫用戶都通過數(shù)據(jù)庫路由器ICX訪問數(shù)據(jù)庫。當用戶訪問查詢數(shù)據(jù)庫系統(tǒng)時,根據(jù)實際情況分配服務(wù)器來提供計算服務(wù),能夠大大地提高服務(wù)運行速度和優(yōu)化處理性能,并且實現(xiàn)負載均衡。
另外,可以同時連接多臺數(shù)據(jù)庫服務(wù)器,具體連接物理服務(wù)器的臺數(shù)根據(jù)用戶的具體需求來確定,一般具體數(shù)量為2~16臺。這若干臺數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)庫數(shù)據(jù)信息內(nèi)容在任何時刻均保持是完全一致的。當其中某一臺數(shù)據(jù)庫服務(wù)器發(fā)生故障時,可以實時的、第一時間切換到其他處于正常運行狀態(tài)的服務(wù)器上來繼續(xù)提供計算服務(wù)。實現(xiàn)零時間的服務(wù)器切換,不僅大大地提高了整個應(yīng)用系統(tǒng)的安全性,而且實現(xiàn)真正意義的服務(wù)器不間斷地提供計算服務(wù)。
在數(shù)據(jù)中心中,按行政區(qū)域進行業(yè)務(wù)數(shù)據(jù)分離,相應(yīng)的劃分諸多個子網(wǎng),以承載相關(guān)的擁有多個不同子功能的相應(yīng)的多個不同集群,同時在前端增設(shè)域名(DNS)服務(wù)器用于直接分流至各個子網(wǎng)的數(shù)據(jù)流量。實現(xiàn)將數(shù)據(jù)由集中式存儲轉(zhuǎn)換為分布式分散存儲,把不同行政區(qū)域的業(yè)務(wù)數(shù)據(jù)分開存儲在不同業(yè)務(wù)子網(wǎng)的數(shù)據(jù)庫服務(wù)器的集群中。經(jīng)過多次進行優(yōu)化后系統(tǒng)的拓撲結(jié)構(gòu)示意圖(見圖2所示)。
圖2 系統(tǒng)按行政區(qū)域劃分多個子網(wǎng)與系統(tǒng)橫向擴展和縱向擴展拓撲結(jié)構(gòu)示意圖
由于內(nèi)聯(lián)網(wǎng)由眾多子網(wǎng)構(gòu)成,為了降低網(wǎng)絡(luò)中的數(shù)據(jù)流量,客戶機最好能夠直接訪問處于同一子網(wǎng)內(nèi)的Web服務(wù)器。這個問題的簡單解決方法是增加配置域名服務(wù)器,啟用DNS服務(wù)器的“啟用網(wǎng)絡(luò)掩碼排序”功能即可。具體的詳細配置過程如下:
首先安裝DNS服務(wù)器角色。打開“服務(wù)器管理器”窗口選擇“添加角色”。在“選擇服務(wù)器”窗口中選擇“DNS服務(wù)器”,單擊“下一步”,單擊“下一步”,直至安裝完成。
然后單擊“開始”→單擊“管理工具”→單擊“DNS”,打開“DNS管理器控制臺”。單擊要選擇的DNS服務(wù)器名稱,選定服務(wù)器。右鍵點擊已選定的DNS服務(wù)器,在彈出的菜單中選擇“屬性”,然后在“屬性”對話框中切換到“高級”選項卡,選擇“服務(wù)器選項”列表框中的“啟用網(wǎng)絡(luò)掩碼排序”選項即可。
在選擇的服務(wù)器“屬性”對話框中單擊“高級”選項卡。
經(jīng)過多次采用多種不同的技術(shù)對應(yīng)用系統(tǒng)進行升級改造以后,單一集群的最大并發(fā)連接數(shù)超過100萬,可處理峰值5Gbps的流量,每秒處理數(shù)據(jù)包數(shù)量為80萬個,擁有高達99.95%的可用性。每一組負載均衡(LB)集群由4臺物理服務(wù)器組成,在僅有一臺物理服務(wù)器可用的極端情況下,仍然可以支撐20萬以上的并發(fā)連接。