肖圣魁 孫榮 姜東參 扶湘典



摘 要:三峽通航調度系統作為三峽局的核心應用系統,涉及船舶過閘申報、計劃下發、過閘統計、信息服務等各個重要的業務。近些年隨著三峽通航業務的不斷深化拓展,調度系統的壓力日益增加,已經逐漸無法滿足三峽通航信息化水平飛速發展的需要。為進一步提升系統的穩定性以及可持續性,本文對目前調度系統存在的主要問題進行的分析,并研究目前主流的系統高可用部署技術,提出一套適用于三峽通航調度系統的架構優化方案。
關鍵詞:三峽通航;架構;高可用
中圖分類號:U641? ? ? ? ?文獻標識碼:A? ? ? ? ? ? 文章編號:1006—7973(2021)10-0067-02
三峽通航調度系統是以三峽局頒布的《通航調度管理辦法》為指導,構建涵蓋壩區升船機、葛洲壩船閘、三峽船閘、錨地等通航設施于一體的綜合調度模型。并在此基礎上,以三峽局《信息資源規劃方案》為依據,充分利用已建設網絡系統、GPS綜合應用系統、應用框架系統和數據中心等資源,系統性構建三峽升船機航運調度、安檢系統。調度系統功能主要包括:智能化調度方案生成、船舶定位與報到、船舶過壩申報、船舶動態管理、調度計劃、預計劃、安檢計劃、調度管理、錨地管理、運行管理、氣象水情管理等功能。目前隨著三峽通航業務的發展,在調度系統的基礎上二次開發了資料審核、區域聯動、復檢計劃、船舶流量控制等功能,對調度系統的壓力逐漸增加,為提升系統的穩定性,滿足不斷發展的業務需求,亟需對調度系統的架構進行優化調整。
1 三峽通航調度系統運行現狀及存在的問題
調度系統作為三峽通航業務內部使用的重要系統,部署在內網環境,其應用服務器的整體架構如下圖所示:
調度安檢系統在船舶申報、調度、計劃以及安檢等各個流程及環節發揮了重要的作用,但隨著運行時間的增加,部分問題日益凸顯,對服務器及系統的穩定運行造成的較大的影響,影響了調度系統后期的升級優化,無法滿足日益增長的業務需要。
調度系統應用服務器目前部署有IBM websphere中間件,為主從模式。當主服務器故障時,將直接導致調度系統業務中斷;當從服務器故障時,主服務器應用負載大幅度增加,影響系統運行速度。
根據以上分析可以發現,調度系統采用的主從結構雖然能夠對業務進行負載均衡,減少服務器應用的壓力,但依舊存在單節點隱患。三峽通航作為影響長江水運的重要業務節點,一旦調度系統產生故障,將會影響船舶正常過閘流程,保證服務器及系統應用的穩定運行至關重要。因此,對調度系統的架構進行優化是十分必要的。
2 架構技術分析
(1)集群。集群就是一組相互獨立的計算機,通過高速的網絡組成一個計算機系統,每個集群節點都是運行其自己進程的一個獨立服務器。對網絡用戶來講,網站后端就是一個單一的系統,協同起來向用戶提供系統資源,系統服務。通過網絡連接組合成一個組合來共同完成一個任務。根據目的的不同,服務器集群可以分為高性能集群、高可用集群以及負載均衡集群。
(2)負載均衡。負載均衡(Load Balance)是集群技術(Cluster)的一種應用。負載均衡可以將工作任務分攤到多個處理單元,從而提高并發處理能力。任何的負載均衡技術都要想辦法建立某種一對多的映射機制:一個請求的入口映射到多個處理請求的節點,從而實現分而治之。這種映射機制使得多個物理存在對外體現為一個虛擬的整體,對服務的請求者屏蔽了內部的結構。
(3)高可用。高可用HA(High Availability)是分布式系統架構設計中必須考慮的因素之一,它通常是指,在集群服務器架構中,當主服務器故障時,備份服務器能夠自動接管主服務器的工作,并及時切換過去,以實現對用戶的不間斷服務。
根據對不同架構技術進行分析比選,并結合三峽通航業務發展的實際,目前三峽通航業務能力從小型朝著中型過渡,對業務的連續性較高,同時因為系統數量較多、環境復雜,本次架構的部署應該盡量簡單;經過研究分析,擬采用負載均衡以及高可用作為本次服務器架構優化的方案,使用的軟件為LVS、Keepalive以及Nginx。
3 架構部署以及實現
LVS是一個開源的軟件,可以實現傳輸層四層負載均衡。LVS是Linux Virtual Server的縮寫,意思是Linux虛擬服務器。目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR);八種調度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。
Keepalived基于VRRP協議來實現高可用解決方案,避免單點故障[1]。至少需要兩臺服務器運行Keepalived[2],即一臺為Master,另一臺為Backup,但對外表現為一個VIP(虛擬IP)。兩臺服務器會檢測對方狀態,如果有一臺服務器宕機,或工作出現故障,Keepalived將檢測到,并將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常后Keepalived自動將服務器加入到服務器群中,通過服務器自動接管應用,能夠避免產生單點故障。
經過優化后的架構如下圖所示:
4 總結
根據以上的測試結果,可以發現通過LVS+Keepalived+Nginx的高可用架構,能夠有效避免產生單點故障,提升服務器的穩定。同時隨著業務的不斷增加,通過增加節點服務器給Nginx服務器分擔負載,具有較高的可持續性,可以有效適應三峽通航業務的不斷發展,為三峽通航信息化水平的進一步發展打下一定的基礎。
參考文獻:
[1]單康康,王勇超,郭曄.基于LVS+Keepalived的DNS集群研究[J].電信快報,2018(3):26-28
[2]孫天昊,陳飛,鄧俊昆.一種基于cookie回話保持的LVS集群系統[J].計算機應用研究,2013(4):1102-1104.