顧同江+++安金鵬+++弋才勇
摘 要:目前各企業在線運行著多套業務應用系統,并且在逐步增多,如郵件系統、網絡管理系統、OA系統、企業內控管理系統等,隨著業務應用部署規模的擴大,接入業務數量的不斷增多,普通的單一的短信服務架構已不能滿足業務需求,出現短信收發延遲時間過長甚至收發失敗的情況,失去通知、監控類短信收發的重要意義。通過短信平臺雙機互備體系的研究,提出一種新的短信平臺架構模式,有效避免因服務器或數據庫異常造成短信無法發送的問題。根據企業業務發展情況分析,使用短信平臺進行業務往來的系統會逐步增加,需要保證短信的穩定性和時效性,因此對短信平臺的體系結構升級改造勢在必行。
關鍵詞:短信平臺;雙機互備;負載均衡
1 系統相關背景
由于業務需求,應用短信的程度日益加大。傳統的單一服務器短信平臺系統已經無法滿足業務需求,所以在此提出一種新的短信平臺體系——雙機互備體系。通過對該體系的研究探討,考究該體系的可行性和應用價值。
2 雙機互備體系的介紹
該短信平臺雙機互備系統為B/S結構,由負載均衡連接兩臺短信服務器,由負載均衡將接收用戶請求并將請求分攤到主、備服務器上。分別在兩臺服務器上搭建數據庫,主、備數據庫實現數據的實時同步。再由三臺網關服務器發送至運營商。
對現短信平臺軟件進行升級,分別對三大運營商的接口通道升級為網關API的收發。按照分層的方式實現業務與承載的分離,通過具有業務路由功能的功能層可以實現各業務系統調用,對業務數據的透明訪問,和業務模塊之間的有機集成,從而提供靈活多樣的業務接入能力和業務擴展能力,并且可以通過業務支撐單元的外部開放接口可以提供簡便、安全、可靠、易于擴展的第三方業務的透明接入系統途徑。
對現短信平臺硬件進行改造,通過負載均衡將訪問流量分配到主、備短信服務器,數據寫入數據庫集群,數據庫集群采用主從互備的機制實現,在將數據通過三臺網關服務器分發到各運營商。
3 雙機互備體系的優勢
(1)利用負載均衡來擴展網絡設備和服務器的帶寬、增加吞吐量和并發能力,加強網絡數據處理能力、提高網絡的靈活性和可用性。利用負載均衡和兩臺主、備服務器,能有效解決由于傳輸數據量過大導致網絡阻塞的問題,降低服務器單節點風險,提高系統的整體性能。
(2)短信平臺利用雙服務器主從互備的特點,能有效增加系統的容錯性和穩定性。數據庫集群主、從互備,能夠使數據做到實時同步,可以有效避免因數據庫異常造成的短信無法發送以及數據丟失的問題。
(3)采用開放式的系統體系結構和負載動態均衡系統設計技術,保證系統容量的動態增長和功能的完善和升級,適應信息管理技術不斷進步的需要,并為新技術的發展提供應有的可行空間。
(4)軟件系統的設計采用模塊化結構設計和規范化標識,保證軟件的可維護性要求,當系統軟件局部功能模塊發生故障時,不影響其他模塊的正常運行。
4 雙機互備體系的具體建設
系統結構是基于中間件的三層客戶機/服務器模式,將業務層、功能層和傳輸層分為三個不同的部分。短信數據的收發是通過傳輸層進行的;短信數據的完整性與一致性是功能層來保證的;各業務系統與業務層對接,只負責業務的處理。
業務層:提供的用戶通過多種接入方式接入系統后,向用戶提供的短信收發服務。
功能層:也就是系統的業務邏輯層,是由接口和短信平臺、數據庫共同完成,功能層與用戶終端訪問方式無關。
傳輸層:構架平臺的最底層,主要是由應用服務器、WEB應用中間件與數據庫組成。
其中關鍵步驟有:
(1)數據庫體系基于容量和時間雙約束的溢出檢測和自適應的日志運行可靠性設計。
數據庫Master-Slave模式,一臺Slave承受不住讀請求壓力時,可以添加多臺,進行負載均衡,分散讀壓力。還可以對多臺Slave進行分工,服務于不同的系統,因為不同系統的查詢需求不同,對Slave分工后,可以創建不同的索引,使其更好的服務于目標系統。
數據庫Master-Master模式互相將對方作為自己的Master,自己作為對方的Slave來進行復制,但對外來講,還是一個主和一個從。當主Master下線時,備Master切換為主Master,當原來的主Master上線后,因為他記錄了自己當前復制到對方的什么位置了,就會自動從之前的位置開始重新復制,不需要人為地干預,大大提升了效率。
數據庫體系采用mysql主動模式的Master-Master(Master-Master in Active-Active Mode)模式,Master-Master復制的兩臺服務器,既是master,又是另一臺服務器的slave。這樣,任何一方所做的變更,都會通過復制應用到另外一方的數據庫中。
通過短信業務應用的特性,需要實現數據分布(Data distribution)、負載平衡(load balancing)、備份(Backups)、高可用性和容錯行 (High availability and failover),對比后采用Master-Master模式。
(2)接口監控基于Watchdog的監視和自啟復活的可靠性設計:采用watchdog模式對應用和短信平臺的接口程序進程進行24小時自動監控,出現問題后及時重啟接口進程及服務告警。
watchdog 實際上是模式核心是一個用于接口進程服務主動重啟的計時器機制,在指定時間內對/dev/watchdog列表中接口進程服務進程進行一次檢查,如果進程正常則歸零計時器,重新倒計時。如果在指定時間內接口進程進程異常,watchdog便認為接口進程服務進程發生嚴重故障,主動重啟接口進程服務進程,實現接口進程的監視和自啟復活,以求自救而不是等死。
(3)基于雙機熱備和負載均衡的體系結構設計:通過雙機熱互備技術,采用的active/standby 方式,active服務器處于工作狀態;而standby服務器處于監控準備狀態。當active服務器出現故障的時候,通過軟件診測或手工方式將standby機器激活,保證應用在短時間內完全恢復正常使用。結合mysql數據庫集群主從互備技術,采用主動的Master-Master模式,實現數據的一致性;從而構建短信平臺雙機互備體系。通過設置虛擬服務地址(IP),將位于同一地域(Region)的多臺服務器虛擬成一個高性能、高可用的應用服務池;再根據應用指定的方式,將來自客戶端的網絡請求分發到服務器池中。網絡負載均衡會檢查服務器池中后端服務器的健康狀態,自動隔離異常狀態的后端服務器,從而解決了單臺后端服務器的單點問題,同時提高了應用的整體服務能力。
雙機互備采用F5負載均衡來接收用戶的請求,由負載均衡將請求分攤到主、備服務器上。主、備服務器運行環境為Redhat Linux 5.0,應用服務為Apache,基于Application Platform平臺進行集成開發,使用 Mysql 5.0數據庫,基于PHP,Perl開發語言的面向對象的系統設計模式。
數據庫體系采用mysql主動模式的Master-Master(Master-Master in Active-Active Mode)模式,避免因單數據庫或硬盤容量占用率過大等異常造成短信無法發送;對數據庫實現主備模式、增加系統的容錯性和穩定性。
5 結束語
系統增加冗余備份、擁塞控制、狀態報告、優先級、調度機制、消息跟蹤等模塊,優化接口管理、網關吞吐量模塊,提高程序的穩定性和短信發送效率。
通過具有業務路由的功能層實現各業務系統調用,對業務數據的透明訪問,和業務模塊之間的有機集成,從而提供靈活多樣的業務接入能力和業務擴展能力,并且可以通過業務支撐單元的外部開放接口可以提供簡便、安全、可靠、易于擴展的第三方業務的透明接入系統途徑。提供了webservice,url,socket,中間庫等多種接口。
短信平臺雙機互備體系非常適合對短信業務需求較高的企業和單位,提升效率的同時也能有效提高系統的穩定性和容錯性。