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