亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        應(yīng)用前置機實現(xiàn)系統(tǒng)過負荷控制

        2012-07-04 02:45:38徐萌飛王軍玲
        船電技術(shù) 2012年11期
        關(guān)鍵詞:后臺前置控制策略

        徐萌飛 王軍玲

        ( 武漢船用電力推進裝置研究所,武漢 430064 )

        0 引言

        隨著大型企業(yè)自身規(guī)模不斷擴大以及企業(yè)間并購重組的增多,需要面向客戶提供數(shù)據(jù)服務(wù)的企業(yè)各部門,其原有的設(shè)備和通訊接口也越來越多樣且復(fù)雜,對數(shù)據(jù)通訊和數(shù)據(jù)處理也提出了更高的要求。而且,在業(yè)務(wù)應(yīng)用中,客戶接入類型多種多樣(例如2G,3G,internet等),通訊接入方式多種多樣(包括有線,無線),接口協(xié)議也多種多樣(例如CAMEAL,HTTP,SOAP等),所以需要一種行之有效的架構(gòu)來支持不同客戶獲得后臺統(tǒng)一的業(yè)務(wù)服務(wù)感知。同時,在客戶端請求訪問量過大的情況下,如何實現(xiàn)整個系統(tǒng)高效且平穩(wěn)的過負荷控制,也成為一個亟待解決的問題。

        1 過負荷控制業(yè)務(wù)需求

        業(yè)務(wù)系統(tǒng)判斷是否達到過負荷狀態(tài)一般采用資源使用率評估的方法,即判斷當前系統(tǒng)已使用資源占可提供資源的百分比,在服務(wù)器和大型機系統(tǒng),常常以CPU使用率作為主要判斷依據(jù)(很多系統(tǒng)以CPU占用率達到80%開始實施過負荷控制),內(nèi)存和磁盤占用率等其他部分為輔助判斷依據(jù)。

        系統(tǒng)過負荷控制包括以下幾個方面的需求:

        1) 系統(tǒng)對過負荷響應(yīng)的及時有效性

        當系統(tǒng)達到臨界值時,系統(tǒng)必須迅速做出反應(yīng),實施過負荷控制策略。因此,從系統(tǒng)檢測到負荷過重,到實施過負荷控制的部件動作之間的時間間隔要盡可能短,信息傳遞的環(huán)節(jié)要盡可能少。

        當系統(tǒng)實施過負荷控制策略后,系統(tǒng)負荷要能在系統(tǒng)可承受的較短時間內(nèi)有效下降到正常工作范圍,如果不能達到這個目標則系統(tǒng)存在崩潰的風(fēng)險。一般很多系統(tǒng)采用停止對外部客戶新請求的響應(yīng),停止響應(yīng)的范圍越大,往往過負荷控制得越快,但對整個系統(tǒng)服務(wù)的客戶評價影響也越大。

        2) 系統(tǒng)實施過負荷控制時要維持系統(tǒng)可用性。

        過負荷控制意味著拒絕對部分外界用戶服務(wù),但并不意味著整個系統(tǒng)停止對所有外部客戶服務(wù),而是在保持系統(tǒng)額定負荷的用戶服務(wù)能力,只是拒絕超過負荷臨界的用戶請求。

        3) 系統(tǒng)進行過負荷控制時的穩(wěn)定性

        過負荷控制策略實施后,由于停止了對客戶終端新請求的響應(yīng),系統(tǒng)負荷會下降。而一旦系統(tǒng)負荷降低到臨界值以下時,后臺業(yè)務(wù)服務(wù)又要重新啟用對用戶終端的響應(yīng),系統(tǒng)負荷將再次上升,甚至可能再次超過臨界值,從而導(dǎo)致下一次過負荷控制。如此反復(fù),系統(tǒng)負荷存在波動,對整個業(yè)務(wù)的提供也存在不確定風(fēng)險,一般而言,波動越小越好。很多系統(tǒng)要求波動在5%以內(nèi)。

        4) 系統(tǒng)實施過負荷控制策略的靈活性

        由于過負荷控制意味著在系統(tǒng)負荷未降低前要停止對部分用戶的響應(yīng)。其策略和業(yè)務(wù)特性相關(guān),而業(yè)務(wù)特性往往和客戶類型以及客戶請求的類型有關(guān)。例如,如果客戶劃分為一般用戶和高級用戶,則在過負荷的情況下,先停止對一般用戶的響應(yīng),保持對高級別用戶的服務(wù),在系統(tǒng)負荷還不斷上升的情況下,盡可能最后才停止對高級用戶的響應(yīng)。

        上述需求在實現(xiàn)過程中,往往存在一定的矛盾關(guān)系,過分傾向?qū)崿F(xiàn)某部分需求,將導(dǎo)致其他需求的服務(wù)質(zhì)量降低,所以針對過負荷控制的架構(gòu)和算法上都需要深入研究。

        2 前置機的功能

        前置機(Front-End system)是一種接入設(shè)備,最初應(yīng)用于銀行系統(tǒng),實現(xiàn)銀行傳統(tǒng)業(yè)務(wù)向外拓展而普遍采用的中間設(shè)備,其主要功能是網(wǎng)絡(luò)通信,報文認證,交易數(shù)據(jù)轉(zhuǎn)換,管理和調(diào)度前臺發(fā)起的交易等。其功能等同于通訊領(lǐng)域用于收斂用戶的端局交換機。

        在通訊領(lǐng)域,前置機成為提高系統(tǒng)吞吐效率,降低系統(tǒng)負荷的重要組成部分。它不僅僅實現(xiàn)對客戶服務(wù)請求的收斂節(jié)點功能,同時對不同類型的客戶接入通訊協(xié)議進行格式轉(zhuǎn)換,將多樣性的數(shù)據(jù)請求格式轉(zhuǎn)化為統(tǒng)一的服務(wù)請求格式,發(fā)往后臺服務(wù)層。

        前置機包括從客戶接入端到與后臺服務(wù)端通訊接口的軟件和硬件。如果企業(yè)采用了基于SOA(Service Oriented Architecture,SOA)的業(yè)務(wù)系統(tǒng)架構(gòu),那么前置機將可以直接和其核心組件-企業(yè)服務(wù)總線(Enterprise Service Bus,ESB)進行對接。

        本文提供一種基于腳本運行的前置機的系統(tǒng)方案來實現(xiàn)前述的過負荷控制的業(yè)務(wù)目標。和普通業(yè)務(wù)系統(tǒng)架構(gòu)相比,應(yīng)用前置機的系統(tǒng)進行過負荷控制時具有更加高效靈活的特點。

        下面將基于普通后臺業(yè)務(wù)處理系統(tǒng)方案和基于前置機的接入方案進行一個對比。

        3 業(yè)務(wù)系統(tǒng)的基本體系架構(gòu)

        為多客戶服務(wù)的業(yè)務(wù)系統(tǒng)體系架構(gòu)圖,最普遍的是采用C/S架構(gòu),即客戶端/服務(wù)器模式,如下:使用此種架構(gòu)的系統(tǒng)在負荷較重的情況下,存在下列問題:

        圖1 多客戶端C/S體系結(jié)構(gòu)

        1) 業(yè)務(wù)系統(tǒng)不僅僅要進行業(yè)務(wù)數(shù)據(jù)處理,還需要負責(zé)和外部多個客戶終端進行通訊的任務(wù),當接入客戶很多的情況下,整個系統(tǒng)負荷很重。

        2) 由于要支持多種類型的客戶端接入,后臺服務(wù)器要能夠提供多種協(xié)議接口,大大增加了后臺服務(wù)系統(tǒng)的復(fù)雜性。

        3) 針對同一類型接口的用戶接入,系統(tǒng)一般采用單一的接口進程進行處理,一旦進程崩潰,則所有此類型的用戶提交的服務(wù)請求將失敗。

        4) 由于系統(tǒng)面向的是多個獨立用戶請求,所以過負荷控制策略一般單一。在系統(tǒng)達到負荷臨界點時,系統(tǒng)進行過負荷控制時會同時影響到外部大量同類型的客戶請求,系統(tǒng)產(chǎn)生大幅波動,降低穩(wěn)定性。

        5) 系統(tǒng)對外部請求處理策略或過負荷控制策略發(fā)生變化時,往往要重新加載或升級整個業(yè)務(wù)系統(tǒng)軟件,在升級過程中,將無法響應(yīng)客戶端請求,從而導(dǎo)致所有客戶端無法得到服務(wù),業(yè)務(wù)中斷。

        為解決在滿負荷運行情況下的過負荷控制,一些系統(tǒng)采用了的B/S三層架構(gòu),并在負荷分擔(dān)時采用了F2之類的負載均衡設(shè)備,其體系架構(gòu)圖如下:

        圖2 多客戶端B/S體系結(jié)構(gòu)

        應(yīng)用這種體系結(jié)構(gòu),采用了多服務(wù)器后臺,使用如F2之類的負載均衡設(shè)備,根據(jù)各個后臺業(yè)務(wù)服務(wù)器自身的負荷來動態(tài)選擇由哪個業(yè)務(wù)服務(wù)器對外提供服務(wù)。這種方式能夠部分解決問題

        (1),采用多后臺服務(wù)器則解決了問題(3),但是,使用這種架構(gòu)在多種客戶終端接入時仍無法解決剩下的問題(2)、(4)和(5)。

        而且由于B/S架構(gòu)的天然限制,在沒有增加協(xié)議轉(zhuǎn)換部件的情況下,限制了接入的客戶終端類型。

        最后此架構(gòu)存在的另一個矛盾仍然是業(yè)務(wù)處理和負荷控制的耦合性。由于負載均衡設(shè)備會根據(jù)后臺服務(wù)器的負荷,動態(tài)分配客戶端的服務(wù)請求,如果后臺業(yè)務(wù)服務(wù)器的負荷控制策略不一致,則可能導(dǎo)致用戶獲得業(yè)務(wù)體驗不一致。而如果后臺服務(wù)器采用一致的負荷控制策略,控制靈活性上又不足。

        4 基于前置機的業(yè)務(wù)系統(tǒng)架構(gòu)

        為解決前述問題,可以采用下面的基于前置機的業(yè)務(wù)系統(tǒng)架構(gòu)。其簡化體系如下:

        圖3 采用前置機的C/S體系結(jié)構(gòu)

        此體系架構(gòu)由后臺業(yè)務(wù)系統(tǒng),業(yè)務(wù)前置機,業(yè)務(wù)前置機管理主機組成。后臺業(yè)務(wù)系統(tǒng)和圖1中的服務(wù)器一樣,一般為性能較強的業(yè)務(wù)服務(wù)器。前置機有多臺一般不需使用過高配置,很多系統(tǒng)的業(yè)務(wù)前置機可配置為輕量級的工作站甚至是工控機或PC。業(yè)務(wù)前置機的管理主機的配置可以更加簡單。

        不同類型的客戶終端可以根據(jù)其類型、其接口、甚至地域等分類,分別收斂到業(yè)務(wù)前置機上。由前置機處理通訊任務(wù)、協(xié)議轉(zhuǎn)換以及過負荷控制策略的實施,業(yè)務(wù)系統(tǒng)專注于后臺業(yè)務(wù)處理,實現(xiàn)了控制和業(yè)務(wù)的分離,解決了舊系統(tǒng)面臨的問題(1)。

        不同的前置機可以處理不同的外部協(xié)議接口,功能簡化。業(yè)務(wù)前置機通過協(xié)議轉(zhuǎn)換,將接入的客戶端請求的協(xié)議轉(zhuǎn)化為業(yè)務(wù)系統(tǒng)統(tǒng)一的標準接口,大大降低了后臺業(yè)務(wù)系統(tǒng)接口處理的復(fù)雜性,解決了舊系統(tǒng)面臨的問題(2)。而且各個前置機使用內(nèi)部統(tǒng)一協(xié)議和后臺業(yè)務(wù)系統(tǒng)進行通訊,所以后臺業(yè)務(wù)系統(tǒng)啟動的多個服務(wù)進程對外的接口也可以統(tǒng)一,即使某個進程因為僵死而停止服務(wù),其他進程也可以接管僵死進程的任務(wù),不影響外界用戶業(yè)務(wù)需求,從而解決了舊系統(tǒng)面臨的問題(3)。為了進一步保證系統(tǒng)的可靠性,還可以在前置機單元使用主-從雙機機制,這樣當前置機單機出現(xiàn)問題,備機立刻接替服務(wù),不會造成業(yè)務(wù)中斷。

        由于不同類型的客戶請求可以分別收斂不同的前置機,所以不同的前置機上可以配置不同的過負荷控制策略,而且可以根據(jù)業(yè)務(wù)需求,配置控制策略算法,實現(xiàn)系統(tǒng)穩(wěn)定調(diào)節(jié)。

        前置機軟件使用基于腳本的應(yīng)用軟件,可以采用目前廣泛應(yīng)用的TCL框架或Python框架,將前置機的協(xié)議處理邏輯和負荷控制算法使用TCL腳本或者Python腳本實現(xiàn)。根據(jù)實現(xiàn)不同的負荷控制策略而采用不同的腳本程序,通過前置機管理主機將業(yè)務(wù)腳本動態(tài)加載到前置機上,無需對后臺業(yè)務(wù)系統(tǒng)軟件進行任何修改,非常方便靈活。在動態(tài)加載的過程中,可以對多臺前置機做逐臺更新,只會短時間影響到被更新的前置機收斂的客戶接入,將對客戶的影響降到最低。如果前置機單元采用主-從雙機,可以在更新完從機的控制腳本后實施主從切換,客戶受到的影響更加微乎其微。所以,能解決舊系統(tǒng)面臨的問題(5)。

        如果客戶將業(yè)務(wù)處理分散到多臺服務(wù)器上,只需要將前述圖2的體系架構(gòu)中,增加前置機部分,使前置機位于用戶和負載均衡設(shè)備之間即可,如下:

        圖4 采用前置機的多客戶端業(yè)務(wù)系統(tǒng)結(jié)構(gòu)

        使用這種系統(tǒng)架構(gòu),不僅僅包含了原有B/S體系結(jié)構(gòu)的優(yōu)點(如動態(tài)負載分配,后臺業(yè)務(wù)服務(wù)器物理獨立,業(yè)務(wù)統(tǒng)一),解決了舊系統(tǒng)面臨的問題,還大大擴展了接入客戶端的種類,使其不僅僅局限于web browser??蓞⒖记笆瞿P椭械姆治?,在此不多敘述。

        近年來,越來越多企業(yè)采用SOA(Service Oriented Architecture,面向服務(wù)的體系架構(gòu))來解決內(nèi)部跨部門之間的應(yīng)用集成問題和數(shù)據(jù)交換問題。在SOA架構(gòu)中,應(yīng)用ESB(Enterprise Service Bus,企業(yè)服務(wù)總線)作為核心組件。其基本的組成架構(gòu)如下:

        圖5 采用ESB架構(gòu)

        在基于SOA的體系結(jié)構(gòu)中,仍然可以采用前置機方案,布置在客戶業(yè)務(wù)終端之和ESB業(yè)務(wù)總線之間,對客戶請求進行收斂,同樣簡化了ESB實現(xiàn)的復(fù)雜程度(因為前置機進行了協(xié)議統(tǒng)一轉(zhuǎn)換),而前置機控制主機可以作為應(yīng)用服務(wù)器的一員,通過ESB來管理各個前置機。如下所示:

        圖6 采用ESB管理前置機結(jié)構(gòu)

        5 前置機軟件結(jié)構(gòu)

        下面以基于TCL框架的前置機為例,介紹前置機軟件實現(xiàn)機制。可以使用C或C++等的系統(tǒng)語言編制前置機軟件,在軟件中嵌入TCL解釋器,這樣應(yīng)用程序就可以解釋執(zhí)行TCL語言寫成的腳本語言。由于TCL本身是用C實現(xiàn)的,所以集成到這些系統(tǒng)語言編制的軟件中非常容易,在操作系統(tǒng)中安裝了TCL軟件框架后,在C/C++開發(fā)應(yīng)用軟件中,包含TCL的提供的頭文件,調(diào)用TCL的API函數(shù)即可。

        前置機軟件,TCL解釋器及前置機管理主機軟件之間的關(guān)系如下:

        圖7 TCL解釋器及前置機管理主機軟件關(guān)系

        在整個軟件中,前置機軟件使用C/C++系統(tǒng)語言編寫完成的部分主要是與前置機管理主機通訊,執(zhí)行管理主機下達的對用戶接入進行維護管理的指令,同時還響應(yīng)業(yè)務(wù)腳本加載,業(yè)務(wù)啟動、停止等控制指令。TCL解釋器則負責(zé)解釋執(zhí)行業(yè)務(wù)腳本并輸出結(jié)果。

        基于Python腳本框架的前置機軟件的實現(xiàn)也大同小異,也是將Python解釋器嵌入到應(yīng)用程序中,從而可以解釋執(zhí)行用Python語言寫成的腳本語言。嵌入是通過Python的C語言應(yīng)用程序編程接口(C API)來進行的。

        當過負荷控制策略和協(xié)議轉(zhuǎn)換等業(yè)務(wù)處理邏輯在業(yè)務(wù)腳本中實現(xiàn)后,加載到前置機軟件運行環(huán)境中,就可以由腳本解釋語言框架進行解釋執(zhí)行,如果進行了修改,腳本無需重新編譯,直接更新,非常方便靈活。在處理速度上,高效的解釋型腳本語言和編譯型語言速度也相差無幾。

        6 過負荷控制策略實現(xiàn)

        使用前置機進行過負荷控制策略時,后臺業(yè)務(wù)系統(tǒng)并不根據(jù)自身的業(yè)務(wù)負荷情況來決定以何種方式應(yīng)答客戶終端的請求。因為對后臺系統(tǒng)而言,最終用戶是透明的,所有的業(yè)務(wù)數(shù)據(jù)請求都來自前置機。所以正常運行時,后臺系統(tǒng)會不斷將自身的負荷狀態(tài)廣播給與其連接的所有前置機,前置機則根據(jù)加載的業(yè)務(wù)腳本中過負荷控制的功能來決定如何處理。這樣的模式減少了后臺業(yè)務(wù)系統(tǒng)的開銷,縮短了整個系統(tǒng)對業(yè)務(wù)請求處理的路徑,提高了響應(yīng)速度。

        當業(yè)務(wù)系統(tǒng)逼近臨界點時,前置機就會主動拒絕新增的客戶端的服務(wù)請求,降低負荷,直到后臺業(yè)務(wù)系統(tǒng)恢復(fù)正常為止。由于拒絕客戶端的業(yè)務(wù)請求同樣會占用系統(tǒng)的開銷,所以將這種開銷放到前置機上,處理機制上充分體現(xiàn)了控制和業(yè)務(wù)相分離的思想。

        在實際應(yīng)用系統(tǒng)中,即使采用最簡單的負荷控制策略(1),就可以收到很好的控制效果,系統(tǒng)負荷曲線平滑無波動。

        7 結(jié)束語

        前置機在面向多用戶提供服務(wù)的大型系統(tǒng)中發(fā)揮著重要的作用。將系統(tǒng)過負荷控制功能從后臺業(yè)務(wù)服務(wù)器中剝離出來放在前置機上,這種實現(xiàn)方式相對于以往的系統(tǒng)架構(gòu)而言,體現(xiàn)了控制和業(yè)務(wù)處理相分離的思想,能夠提高過負荷控制的及時性,有效性,部署的靈活性。通過對控制策略的算法設(shè)計,能夠提高整個系統(tǒng)在負載臨界點時提供業(yè)務(wù)服務(wù)的穩(wěn)定性。不論是最初的 C/S架構(gòu),B/S架構(gòu)還是代表未來發(fā)展的SOA體系架構(gòu),都可以考慮應(yīng)用前置機來實現(xiàn)過負荷控制。

        [1]劉德強,王小波,李曉兵,林浩. 基于SOA的通信前置機系統(tǒng)的研究. 電力系統(tǒng)保護與控制, 2010,(4).

        [2]王國強,張貝克. 基于 Python的嵌入式腳本研究.計算機應(yīng)用與軟件, 2010,(3).

        [3]周波,楊貫中,蔡宇輝. TCL/TK語言結(jié)構(gòu)分析及其在網(wǎng)絡(luò)教學(xué)中的應(yīng)用. 計算機工程, 2002, (4).

        [4]何鐘林,張玉明,王擁軍,陳駿林. 電力通信網(wǎng)監(jiān)管中心前置機雙機系統(tǒng)方案設(shè)計. 電力系統(tǒng)自動化,1994, (9).

        猜你喜歡
        后臺前置控制策略
        考慮虛擬慣性的VSC-MTDC改進下垂控制策略
        能源工程(2020年6期)2021-01-26 00:55:22
        被診斷為前置胎盤,我該怎么辦
        前置性學(xué)習(xí)單:讓學(xué)習(xí)真實發(fā)生
        教書育人(2020年11期)2020-11-26 06:00:32
        國企黨委前置研究的“四個界面”
        當代陜西(2020年13期)2020-08-24 08:22:02
        工程造價控制策略
        山東冶金(2019年3期)2019-07-10 00:54:04
        被診斷為前置胎盤,我該怎么辦
        現(xiàn)代企業(yè)會計的內(nèi)部控制策略探討
        后臺暗戀
        前臺、后臺精彩花絮停不了
        容錯逆變器直接轉(zhuǎn)矩控制策略
        中文字幕日韩有码国产| 精品国产三级在线观看| 熟妇与小伙子matur老熟妇e| 久久97久久97精品免视看| 国产熟妇按摩3p高潮大叫| 国产三级精品三级在线观看| 免费黄色电影在线观看| 少妇的丰满3中文字幕| 免费看国产成年无码av| 人人妻人人澡av| 在线不卡精品免费视频| 日本一区二区三区视频在线观看 | 97无码人妻一区二区三区蜜臀| 人妻露脸国语对白字幕| 麻豆精品国产免费av影片| 一区二区三区视频在线观看免费| 97人妻熟女成人免费视频| 国色天香精品亚洲精品| 国产亚洲精品综合一区二区| 最新国产熟女资源自拍| 欧美成人家庭影院| 免费无遮挡无码永久视频| av无码天堂一区二区三区| 极品美女扒开粉嫩小泬| 国产成人丝袜在线无码| 亚洲av男人的天堂在线| 亚洲国产果冻传媒av在线观看| 曰韩无码二三区中文字幕| 亚洲精品中国国产嫩草影院美女| 风韵丰满妇啪啪区老老熟女杏吧 | 久久精品亚洲热综合一本色婷婷| 久久精品第九区免费观看| 4hu四虎永久在线观看| 妺妺窝人体色www在线图片| 二区三区亚洲精品国产| 手机在线看片国产人妻| 久久久久久人妻无码| 无码人妻精品丰满熟妇区| 免费精品无码av片在线观看| 熟女系列丰满熟妇av| 亚洲不卡av一区二区三区四区|