• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      企業(yè)高可用服務架構(gòu)研究與應用

      2022-09-09 03:16:20鞏俊輝
      電子技術(shù)與軟件工程 2022年13期
      關(guān)鍵詞:高可用性應用服務雙機

      鞏俊輝

      (中國電建集團西北勘測設計研究院有限公司信息中心 陜西省西安市 710065)

      系統(tǒng)的高可用性是可用性與成本間的一種平衡,系統(tǒng)的高可用性涉及到系統(tǒng)的各個方面,需要統(tǒng)籌平衡。高可用性是指一個系統(tǒng)在正常運行條件下,系統(tǒng)不中斷運行的能力,通常是將正常運行時間與統(tǒng)計總時間的比值作為具體的量化指標。系統(tǒng)要保證完全可用是不可能完成的任務,系統(tǒng)高可用性就是對可用性達到指標的度量,一般指達到99.99%以上,具備自動恢復能力的高可用,而更高層次的極高可用性是理想狀態(tài)。

      企業(yè)級應用系統(tǒng)實現(xiàn)高可用的方法一般通過采用符合安規(guī)的軟硬件設備,組建高容錯應用集群,采用負載均衡、數(shù)據(jù)備份、主備架構(gòu)、多活服務等技術(shù)來實現(xiàn)。本文基于企業(yè)級的應用服務,從實用性與可行性方面論證企業(yè)高可用性架構(gòu)建設。

      1 基礎(chǔ)分析

      企業(yè)信息化服務具有多樣化,差異化特點,包括Web服務、移動應用、服務組件、微服務、桌面應用等各種類型的應用服務,各自都面臨著服務治理、管理等問題,服務之間通常存在大量的信息交互,系統(tǒng)間相互影響,企業(yè)構(gòu)建高可用的應用服務以保證即便在服務器軟硬件故障時,信息依然能夠正確保存并可被訪問,是企業(yè)信息化建設的一項重要內(nèi)容。

      現(xiàn)代企業(yè)信息系統(tǒng)的基礎(chǔ)設施平臺,基本都采用私有云或者公有云平臺,云平臺服務基于虛擬化技術(shù),廣泛使用網(wǎng)絡、存儲、服務器等硬件冗余技術(shù),所構(gòu)建的基礎(chǔ)平臺具有較高的硬件可靠性,冗余技術(shù)通常分時間冗余、信息冗余、結(jié)構(gòu)冗余、冗余附加技術(shù),本文主要從軟件方面研究系統(tǒng)的高可用性架構(gòu)設計。

      結(jié)合本企業(yè)的應用實踐,企業(yè)內(nèi)部署了包括自動化辦公、設計、人事、合同、黨建、科技、輔助決策等一系列的信息系統(tǒng),服務于企業(yè)的生產(chǎn)、經(jīng)營以及員工工作、生活的方方面面。這些系統(tǒng)中,生產(chǎn)、辦公、經(jīng)營等高價值信息系統(tǒng)對可用性的要求相對比較高,所以針對這些高價值系統(tǒng),有必要設計構(gòu)建高可用的服務架構(gòu)。

      2 高可用技術(shù)及方案研究

      信息系統(tǒng)服務的高可用性從形式內(nèi)容方面進行分析,主要有以下幾類:

      2.1 高可用架構(gòu)

      高可用的架構(gòu),目標是保證服務器在出現(xiàn)硬件故障時,仍可使用,數(shù)據(jù)可以保存并且能夠被訪問,主要解決方案是包括數(shù)據(jù)和服務的冗余備份,以及失效轉(zhuǎn)移機制實現(xiàn)高可用架構(gòu)。具體對于應用服務系統(tǒng)而言,就是在服務器故障時,通過冗余設計,可以將服務切換到其他可用的服務器上;對于數(shù)據(jù)來說,就是存儲損壞時,可從冗余備份存儲讀取、恢復數(shù)據(jù)。

      2.2 高可用應用

      高可用的應用,對于無狀態(tài)應用服務與有狀態(tài)的應用服務,具體實現(xiàn)為:對于無狀態(tài)服務的失效轉(zhuǎn)移,比如數(shù)據(jù)接口、API 服務等,本身不依賴于服務會話,可以直接通過服務負載均衡實現(xiàn)高可用性,當負載均衡服務檢測到無效服務后,會自動進行失效轉(zhuǎn)移;而對于使用Session 等有狀態(tài)服務,比如Web 應用,其通常在應用中使用上下文對象會話(Session)識別用戶,此類服務在負載均衡的集群環(huán)境中,重要的是保證Session 正確性,相關(guān)的處理機制相對比較復雜,具體實現(xiàn)是通過服務集群的Session 管理實現(xiàn),可采用Session 復制、Session 綁定,以及Session 服務器技術(shù)保證會話分發(fā)可用。具體原理如下:

      (1)Session 復制,實現(xiàn)相對簡單易行,是通過在集群應用之間同步Session 對象,當其中有任何一個應用服務宕機時,并不會導致其他服務的Session 對象丟失,各個應用服務均有Session 獨立復本,可以正常的從本地獲取信息,此方案缺點是Session 復制操作會占用大量服務資源,適合于應用規(guī)模較小的情況。

      (2)Session 綁定是利用負載均衡服務對源地址進行Hash 計算,將同一源地址的請求在整個訪問期間分發(fā)到同一個服務上,即點對點綁定,但此技術(shù)方案不完全符合高可用的需求,即當某個服務失效時,其會話Session 將丟失,與其綁定的客戶端的后續(xù)業(yè)務也無法繼續(xù)進行。

      (3)Session 服務器技術(shù)是利用獨立的服務管理Session,各應用服務在讀寫Session 時,都是通過統(tǒng)一的Session 服務進行操作,也就是將Session 與應用服務分離開,通過Session 獨立管理實現(xiàn)會話訪問,此方案符合高可用的構(gòu)建需求,但需要構(gòu)建Session 服務。

      另外,還可以利用瀏覽器特性,即客戶端在訪問服務時,通過Cookie 記錄Session,并在會話中傳輸Cookie 數(shù)據(jù)以保證會話的有效,此方案需要在請求中傳輸Cookie,這即影響訪問性能,也存在安全隱患,不建議采用。

      2.3 服務高可用性

      在應用系統(tǒng)中,通常需要后端服務來完成數(shù)據(jù)交換。做為公共的信息服務,此類服務大多獨立分布式部署,供具體的應用進行遠程調(diào)用。為保障服務的高可用,通常采用策略管理保證可用性:

      (1)對服務進行分級管理,保證核心的服務具有更高的優(yōu)先級。

      (2)設置服務調(diào)用的超時時間,在服務調(diào)用超時后,通過服務調(diào)度策略重試或請求轉(zhuǎn)換,實現(xiàn)服務正??捎?。

      (3)通過對消息隊列進行異步方式處理,減少服務并發(fā)壓力和避免個別服務失效而影響整體服務請求的情況。

      (4)對服務進行策略調(diào)整,普通服務降級訪問,減少并發(fā)數(shù)或停止服務,從而保證重要服務的業(yè)務正常。另外,對于特別重要的服務,也可進行N 版本設計,保證服務結(jié)果的正確性。

      2.4 高可用的數(shù)據(jù)

      高可用數(shù)據(jù)是指提高數(shù)據(jù)的可用性,可以從數(shù)據(jù)備份、運行機制等方面,保證數(shù)據(jù)的可用性,對于應用系統(tǒng)服務,通常采用的是數(shù)據(jù)庫集群、數(shù)據(jù)庫讀寫分離、分布式數(shù)據(jù)等方法,實現(xiàn)數(shù)據(jù)的高可用性。

      3 高可用應用的構(gòu)建實現(xiàn)

      在企業(yè)內(nèi)高可用架構(gòu)設計需要考慮軟硬件條件,平衡實現(xiàn)。企業(yè)在包含網(wǎng)絡在內(nèi)基礎(chǔ)硬件設施建設,通常會采用硬件設備冗余、網(wǎng)絡線路冗余等架構(gòu)設計,基礎(chǔ)設施平臺相對穩(wěn)定,所以本次研究不過多對基礎(chǔ)設施環(huán)境的高可用架構(gòu)技術(shù)進行敘述,主要對更具靈活操作性的軟件架構(gòu)技術(shù)展開研究。

      3.1 高可用實現(xiàn)原理

      在高可用(HA)系統(tǒng)中,如雙機熱備系統(tǒng)就是使用兩臺服務器,之間互相備份,共同執(zhí)行同一項服務。當其中一臺服務器出現(xiàn)故障時,服務任務由另一臺服務器自動承擔接管,不需要人工干預,保證服務的持續(xù)性。一般情況下,兩臺服務器分為一主一備,正常情況下,主服務器為應用系統(tǒng)提供服務,主備兩臺服務器節(jié)點之間通過狀態(tài)通信,即心跳檢測相互獲取服務狀態(tài),當主服務器出現(xiàn)異常,不能再正常服務時,備份服務器會自動迅速接管服務,實現(xiàn)應用服務的持續(xù)不間斷運行。雙機熱備系統(tǒng)也是常用的關(guān)鍵服務高可用架構(gòu)方案。

      3.2 雙機熱備系統(tǒng)問題分析及解決方案

      在雙機熱備架構(gòu)中,兩個服務之間的狀態(tài)檢測通信是非常關(guān)鍵的,當聯(lián)系2 個節(jié)點的“心跳線”異常時,原本作為整體協(xié)調(diào)的高可用系統(tǒng),就會分裂成為2 個獨立的個體,由于相互失去了聯(lián)系,兩個節(jié)點系統(tǒng)都會判斷對方出現(xiàn)服務故障,從而接管服務,造成兩個節(jié)點上的HA 軟件像“裂腦人”一樣,爭搶提供應用服務,造成共享資源沖突,從而發(fā)生嚴重后果,致使服務競爭或服務無效。

      對付HA 系統(tǒng)“裂腦”的對策,目前常采用的措施一般有以下幾個:

      (1)添加冗余的心跳線,例如采用雙心條線,盡量減少發(fā)生概率。

      (2)對于共享資源啟用資源鎖,比如共享磁盤鎖,正在服務的一方對共享磁盤加鎖,當“裂腦”發(fā)生時,不會造成磁盤使用沖突,但也會存在資源解鎖問題,即一方如果不主動解鎖,另一方將永遠無法使用共享資源,備份節(jié)點也就無法接管共享資源和應用服務。所以在HA 中需設計“智能”鎖,即只在發(fā)現(xiàn)心跳線全部斷開時才啟用資源鎖。

      (3)設置參考仲裁,比如設置參考IP,當前節(jié)點檢測到心跳斷開時,同時再檢測與該參考節(jié)點的通信,如果當前節(jié)點與參考節(jié)點間通信正常,才判斷為冗余節(jié)點服務異常,如與參考節(jié)點通信異常,則認為自身節(jié)點故障,主動釋放自身所占用的共享資源,關(guān)閉或重啟自身節(jié)點服務。

      當前在企業(yè)的實際應用中,通常服務是構(gòu)建在云環(huán)境中,即冗余節(jié)點一般都是部署在相同虛擬主機中,發(fā)生腦裂的可能性是非常低的,但也應該通過建構(gòu)檢測服務,讓服務器根據(jù)檢測自動處理相應故障,進一步保障系統(tǒng)的可靠與可用。

      3.3 系統(tǒng)選擇

      常用的高可用性軟件系統(tǒng),HeartBeat RoseHA 是一個專業(yè)的、功能完善的高可用軟件,但部署和使用較為麻煩。更為常用的輕量級高可用解決方案是通過keepalived 實現(xiàn)主機的冗余和接管,keepalived 雖然沒有HeartBeat 功能點多,但其部署和使用簡單,通常只需要一個配置文件即可實現(xiàn)系統(tǒng)的高可用性。keepalived 早期面向LVS 的,后來增加了VRRP 功能,在實際應用中,也只需使用其VRRP 功能即可。通過VRRP 功能,進行服務器狀態(tài)檢測和故障隔離,保證業(yè)務的連續(xù)性,實現(xiàn)服務不間斷的穩(wěn)定運行,接管速度最快可以小于1 秒。相結(jié)合使用負載均衡系統(tǒng),提高服務的可用性,目前常見的負載均衡主要分為硬件負載均衡和軟件負載均衡。硬件負載均衡比較知名的產(chǎn)品有F5、CirtixNetscaler等,而軟件負載均衡常見的有Haproxy、Nginx、LVS 等。

      對于軟件負載均衡系統(tǒng),LVS 是基于OSI 第四層、傳輸層的轉(zhuǎn)發(fā),可以提供終端到終端的可靠連接;HAproxy 是基于四層和七層的轉(zhuǎn)發(fā),功能更加豐富靈活,負載均衡兩端連接都是獨立的,一定程度上提升了后端系統(tǒng)的安全性,Nginx 也可以做七層轉(zhuǎn)發(fā),主要用于WEB 服務器、緩存服務器,同時又是反向代理服務器。相比較這幾個軟件系統(tǒng),對于基于URL 或目錄的轉(zhuǎn)發(fā),LVS 四層轉(zhuǎn)發(fā)是無法滿足需求的,同時,其配置復雜,對網(wǎng)絡依賴比較大。實際應用中,LVS 更適合有很大并發(fā)量的時候,而普通情況下,選擇HAproxy 或者Nginx 即可滿足業(yè)務需求。

      對于HAproxy 和Nginx,在性能上,HAProxy 的負載均衡速度比Nginx 更出色,支持四層和七層兩種代理模式,而Nginx 對網(wǎng)絡的依賴小,理論上能ping 通就能進行負載功能;同時Nginx 安裝和配置非常簡單,測試也很方便,比較適合Web 服務應用。

      在本企業(yè)的實際應用中,使用的是keepalived+Nginx 方案構(gòu)建實現(xiàn)了企業(yè)應用服務系統(tǒng)的雙機熱備高可用系統(tǒng)架構(gòu)。即在兩臺云服務器之上部署keepalived,通過keepalived虛擬IP 提供服務,VRRP 可以保證兩臺服務器的檢測及服務接管,該架構(gòu)整體性能優(yōu)越,能夠滿足企業(yè)生產(chǎn)環(huán)境的高可用性要求。

      4 高可用系統(tǒng)驗證

      4.1 實施環(huán)境

      服務器:云虛擬機*2,CPU:8C、內(nèi)存:8GB、存儲:200GB

      操作系統(tǒng):CentOS7.9

      軟件:KeepAclived2.2.7+Nginx1.22.0

      網(wǎng)絡:10.0.10.2、10.0.10.3、10.0.10.4

      4.2 實現(xiàn)過程

      如圖1 所示,使用keepalived+nginx 方案實現(xiàn)雙機熱備高可用的架構(gòu),其中,Nginx 服務器通過反向代理與負載均衡,實現(xiàn)應用服務的高可用性,keepalived 通過VRRP 實現(xiàn)自動故障轉(zhuǎn)移,該雙機熱備架構(gòu)可解決可用性問題。

      圖1 :雙機熱備架構(gòu)

      具體部署時,keepalived 與Nginx 安裝過程較為簡單,這里只重點講解關(guān)鍵的服務配置。

      對于keepalived,主要是配置兩個主機服務節(jié)點的VRRP 實例,實例配置如下:

      到此,keepalived 主要配置即完成,啟用服務后,即可實現(xiàn)VRRP 搭建,實現(xiàn)主機間的服務檢測,表現(xiàn)為虛擬IP的轉(zhuǎn)移,nginx 負載服務也是基于該虛擬IP 對外提供服務。

      4.3 結(jié)果驗證

      配置好keepalived 并啟動服務后,查看網(wǎng)絡接口狀態(tài),可以看到虛擬IP 已經(jīng)在主服務器生效,當停止主服務器后,可以觀察到虛擬IP 自動轉(zhuǎn)換到備服務器,接管服務;當主服務器恢復時,虛擬IP 會自動重新轉(zhuǎn)換到主服務器。狀態(tài)檢測并管理故障服務器的工作全部是自動完成,不需要人工干涉,人工只需要修復有故障的服務即可。

      查看節(jié)點的虛擬IP 信息和狀態(tài)遷移過程,如圖2 和圖3所示。

      圖2 :主節(jié)點虛擬IP

      圖3 :備份節(jié)點VRRP 檢測

      4.4 Nginx深度應用

      Nginx 在keepalived+Nginx 架構(gòu)中,Nginx 主要承擔應用服務的角色,可具體通過正向代理、反向代理,以及負載均衡配置實現(xiàn)高可用性。在本企業(yè)的實際應用中,Nginx 作為發(fā)布應用總線提供服務,負責了企業(yè)內(nèi)所有HTTP 服務的應用代理轉(zhuǎn)發(fā)與負載均衡,通過Nginx 構(gòu)建的統(tǒng)一發(fā)布管理服務,實現(xiàn)了企業(yè)內(nèi)Web 應用服務的集中管控,同時結(jié)合企業(yè)內(nèi)部的域名解析服務,實現(xiàn)了Nginx 單個端口的多業(yè)務系統(tǒng)代理,即通過server-_name 區(qū)分實際的業(yè)務服務系統(tǒng),單個server 配置示例如下:

      Nginx 配置相對比較靈活,靈活應用可以實現(xiàn)特殊的功能需求。對于HTTP 代理,有效利用配置中HTTP、Server、Location、IF 不同層級間配置項疊加,可以簡化整體配置,高效實現(xiàn)集中發(fā)布管理中的通用配置以及個性化配置。比如,在HTTP 段中配置:

      實現(xiàn)全局配置項管理,而在Server 段實現(xiàn)個性化配置。

      此外,利用Nginx 七層轉(zhuǎn)發(fā)特性,合理利用能夠?qū)崿F(xiàn)諸多場景應用需求。比如通過在服務的Serve 段中配置Header信息,解決老舊系統(tǒng)對于特定瀏覽器版本依賴需求:

      add_header "X-UA-Compatible" "IE=EmulateIE7";

      又比如通過配置特殊URI 內(nèi)容過濾實現(xiàn)對應用服務的安全加固:

      還可以利用sub_filter 等功能實現(xiàn)應用代碼修改等功能。

      總之,通過Nginx 的深度應用,可以實現(xiàn)復雜場景的Web 發(fā)布管理。通過實踐總結(jié),在實現(xiàn)應用過程中,值得注意的是在Nginx 的不同層級的配置中,相同配置項會完全覆蓋上面層級的配置內(nèi)容,而不是累加的配置過程。

      4.5 總結(jié)

      在keepalived+nginx 架構(gòu)中,keepalived 負責服務器的整體動態(tài)管理,服務器會自動管理故障機器,服務器切換非常快。將服務部署在同一云環(huán)境中,尤其同一主機時,發(fā)生腦裂的概率是非常低的,基本為0。實際可能遇到的問題是keepalived 在配置中未使用LVS 狀態(tài)檢測,對于nginx 服務的狀態(tài)是不敏感的,當nginx 自身的服務發(fā)生問題時,并不會觸發(fā)keepalived 轉(zhuǎn)換服務,所以實際應用中,可以編寫一個nginx 狀態(tài)監(jiān)聽腳本/服務,以控制keepalived 實現(xiàn)服務器的切換,提高架構(gòu)可靠性。該架構(gòu)在本企業(yè)上線以來,總體性能良好,服務穩(wěn)定,尚未發(fā)生過腦裂、服務宕機、異常等故障。

      5 結(jié)論與展望

      高可用系統(tǒng)架構(gòu)歸根結(jié)底是冗余設計,合理有效的冗余應用能提高系統(tǒng)整體的可用性,不管是單應用系統(tǒng)還是綜合應用系統(tǒng),從系統(tǒng)設計,代碼控制、發(fā)布管理等方面,合理有效的綜合技術(shù)應用,能夠提高系統(tǒng)可用性、安全性以及性能。

      猜你喜歡
      高可用性應用服務雙機
      分布式數(shù)據(jù)庫提升醫(yī)院信息系統(tǒng)高可用性的應用研究
      基于雙機并車推進型式的接排特性研究
      全球衛(wèi)星互聯(lián)網(wǎng)應用服務及我國的發(fā)展策略
      雙機、雙槳軸系下水前的安裝工藝
      國家不動產(chǎn)統(tǒng)一登記信息平臺構(gòu)建與應用服務
      超長公路隧橋高可用性監(jiān)控平臺方案分析
      雙機牽引ZDJ9道岔不同步問題的處理
      Loader軸在雙機桁架機械手上的應用
      校園一卡通服務端高可用性改造實施方案
      OpenStack云計算平臺高可用性的研究
      安塞县| 遂溪县| 长岭县| 辽阳县| 晴隆县| 霍山县| 中方县| 明星| 江山市| 沙田区| 施秉县| 广平县| 宜昌市| 红河县| 宁夏| 新宁县| 海原县| 闵行区| 开封市| 中方县| 图片| 隆尧县| 平阳县| 鲁山县| 衡阳县| 浦县| 天全县| 南岸区| 安康市| 三明市| 长葛市| 开远市| 雅安市| 女性| 郸城县| 普兰店市| 长汀县| 依安县| 海兴县| 高陵县| 浦城县|