• 
    

    
    

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

      Redis內(nèi)存數(shù)據(jù)庫在長江上游水資源管理決策支持系統(tǒng)中的應(yīng)用研究

      2021-10-19 08:00:42方豪文周建中賈本軍湯正陽紀傳波
      水力發(fā)電 2021年7期
      關(guān)鍵詞:決策支持系統(tǒng)內(nèi)存框架

      方豪文,周建中,賈本軍,湯正陽,紀傳波

      (1.華中科技大學(xué)土木與水利工程學(xué)院數(shù)字流域科學(xué)與技術(shù)湖北省重點實驗室,湖北 武漢 430074;2.中國長江電力股份公司智慧長江與水電科學(xué)湖北省重點實驗室,湖北 宜昌 443000)

      0 引 言

      近年來,信息化技術(shù)的快速發(fā)展促進了水利行業(yè)由傳統(tǒng)管理模式向信息化方向的轉(zhuǎn)變[1]。作為國民經(jīng)濟和社會發(fā)展的基礎(chǔ)產(chǎn)業(yè),水利行業(yè)必須充分利用先進的信息化技術(shù),加快水利信息化建設(shè),實現(xiàn)水利現(xiàn)代化發(fā)展[2]。水資源管理決策支持系統(tǒng)構(gòu)建是水利信息化建設(shè)的重要環(huán)節(jié),深化信息化技術(shù)在水資源管理決策支持系統(tǒng)的應(yīng)用,對水利信息化建設(shè)具有巨大的推進作用[3]。

      隨著流域巨型水庫群的建成投運和流域水文監(jiān)測站網(wǎng)體系的逐步完善,水文水資源數(shù)據(jù)的規(guī)模呈現(xiàn)顯著的增長趨勢[4]。傳統(tǒng)的水資源管理決策支持系統(tǒng)直接通過操作磁盤數(shù)據(jù)庫對大規(guī)模水文水資源數(shù)據(jù)進行存取,需要進行頻繁的磁盤I/O操作,制約了系統(tǒng)的響應(yīng)速度,系統(tǒng)服務(wù)壓力劇增,難以有效滿足水資源管理系統(tǒng)信息化建設(shè)的功能多樣化、數(shù)據(jù)多元化、業(yè)務(wù)復(fù)雜化的需求[5],亟需設(shè)計一種新型數(shù)據(jù)存儲交互框架,進一步提高決策支持系統(tǒng)的整體性能。

      為此,研究設(shè)計了一種基于Redis的新型數(shù)據(jù)存儲交互框架,利用Redis內(nèi)存數(shù)據(jù)庫對系統(tǒng)業(yè)務(wù)常用的水庫調(diào)度數(shù)據(jù)、斷面水文數(shù)據(jù)、電站特征數(shù)據(jù)、水文預(yù)報數(shù)據(jù)以及模型實時計算結(jié)果等多元化數(shù)據(jù)進行緩存,以規(guī)避頻繁的磁盤數(shù)據(jù)讀寫操作和模型重復(fù)計算,進而提高系統(tǒng)響應(yīng)速度,緩解系統(tǒng)服務(wù)壓力,最終解決傳統(tǒng)水資源管理決策支持系統(tǒng)存在的數(shù)據(jù)交互低效的問題。

      1 Web緩存與Redis技術(shù)簡介

      為便于決策者隨時隨地獲取決策支持信息,水資源管理決策支持系統(tǒng)通常被設(shè)計為基于分布式架構(gòu)的Web系統(tǒng)。傳統(tǒng)的Web水資源管理決策支持系統(tǒng)通過數(shù)據(jù)服務(wù)頻繁執(zhí)行數(shù)據(jù)庫查詢實現(xiàn)數(shù)據(jù)交互。在水資源數(shù)據(jù)量呈指數(shù)增長的壓力下,極易導(dǎo)致數(shù)據(jù)請求過慢、響應(yīng)超時等問題。為解決此問題,研究將Web緩存技術(shù)應(yīng)用到系統(tǒng)開發(fā)中。

      Web緩存是用于臨時存儲數(shù)據(jù)文檔信息、降低服務(wù)請求延時的一種信息技術(shù)[6]。使用Web緩存可以有效減少網(wǎng)絡(luò)帶寬消耗、降低服務(wù)器壓力、提高頁面訪問速度。根據(jù)緩存所處位置的不同,可以將Web緩存分為數(shù)據(jù)庫緩存、CDN緩存、代理服務(wù)器緩存、瀏覽器緩存和應(yīng)用層緩存等[7]。其中,數(shù)據(jù)庫緩存適用于短時間內(nèi)存在高并發(fā)數(shù)據(jù)查詢請求的系統(tǒng),如水資源管理決策支持系統(tǒng)。

      在水資源管理決策支持系統(tǒng)中,不同用戶調(diào)用相同的數(shù)據(jù)訪問接口重復(fù)查詢相同數(shù)據(jù)、獲取計算方案的情況頻繁發(fā)生,易導(dǎo)致時間和空間資源的浪費。通過使用內(nèi)存數(shù)據(jù)庫對熱點數(shù)據(jù)進行緩存可以有效解決此類資源浪費問題。內(nèi)存數(shù)據(jù)庫是區(qū)別于傳統(tǒng)磁盤數(shù)據(jù)管理方式、將全部數(shù)據(jù)存儲于內(nèi)存的一種數(shù)據(jù)存儲體系[8]。內(nèi)存數(shù)據(jù)庫基于內(nèi)存對數(shù)據(jù)進行操作,相較于傳統(tǒng)數(shù)據(jù)庫,數(shù)據(jù)處理速度提升10~103倍;此外,其通過重新設(shè)計數(shù)據(jù)存儲體系,取消緩沖區(qū)管理器,消除了磁盤和內(nèi)存之間的數(shù)據(jù)拷貝開銷,簡化了內(nèi)存管理,從而降低了空間開銷。

      Redis和Memcached數(shù)據(jù)庫是最常用的兩種內(nèi)存數(shù)據(jù)庫。其中,Redis(Remote Dictionary Server)內(nèi)存數(shù)據(jù)庫是一種可持久化的Key-Value型存儲系統(tǒng)[9]。相較于Memcached數(shù)據(jù)庫而言,其在水資源管理決策支持系統(tǒng)開發(fā)中具有如下獨特的優(yōu)點:①支持多類型編程語言,如Java、Python、C/C++,能夠有效降低系統(tǒng)的開發(fā)集成復(fù)雜度[10];②具備更多的數(shù)據(jù)類型(列表,集合,有序集合等)和數(shù)據(jù)操作(交集、并集、排序),能夠提升系統(tǒng)的敏捷開發(fā)速度[11];③增加數(shù)據(jù)持久化功能以及主從復(fù)制功能,能夠提升系統(tǒng)的穩(wěn)定性和可用性。

      2 基于Redis的水資源管理決策支持系統(tǒng)數(shù)據(jù)交互框架

      2.1 模式設(shè)計

      在傳統(tǒng)水資源管理決策支持系統(tǒng)中,水文水資源數(shù)據(jù)都存儲于結(jié)構(gòu)化數(shù)據(jù)庫中。數(shù)據(jù)服務(wù)模塊在收到各業(yè)務(wù)模塊的數(shù)據(jù)請求后,通過執(zhí)行SQL語句在結(jié)構(gòu)化數(shù)據(jù)庫中獲取相應(yīng)數(shù)據(jù)并傳遞給相應(yīng)業(yè)務(wù)模塊,在此基礎(chǔ)上,業(yè)務(wù)模塊進行模型計算,并將計算結(jié)果返回給客戶端,具體流程見圖1。

      圖1 傳統(tǒng)的數(shù)據(jù)交互模式

      傳統(tǒng)的數(shù)據(jù)交互模式邏輯簡單、易于實現(xiàn),在數(shù)據(jù)規(guī)模較小、業(yè)務(wù)邏輯簡單的系統(tǒng)中運用效果良好;但在具有海量水資源數(shù)據(jù)、業(yè)務(wù)邏輯錯綜復(fù)雜的現(xiàn)代水資源管理決策支持系統(tǒng)中,極易導(dǎo)致大量時間和空間資源的浪費,不足以滿足水利信息化的業(yè)務(wù)需求。為克服傳統(tǒng)數(shù)據(jù)交互模式存在的問題,設(shè)計了一種新型水資源管理決策支持系統(tǒng)數(shù)據(jù)交互模式。在新型數(shù)據(jù)交互模式中,通過充分利用緩存的讀寫速度優(yōu)勢,將耗時較長的數(shù)據(jù)庫查詢結(jié)果和模型計算結(jié)果進行緩存,顯著減小外部數(shù)據(jù)請求的響應(yīng)時間,極大提升系統(tǒng)整體數(shù)據(jù)的交互效率,改進后的數(shù)據(jù)交互過程如圖2所示。

      圖2 優(yōu)化后數(shù)據(jù)交互模式

      在圖2所示的改進數(shù)據(jù)交互模式中,針對客戶端發(fā)送的服務(wù)請求,業(yè)務(wù)模塊首先判斷是否涉及緩存操作,對于不需要緩存的部分業(yè)務(wù),其數(shù)據(jù)交互流程與傳統(tǒng)數(shù)據(jù)交互流程相同,而對于涉及緩存的相關(guān)業(yè)務(wù),具體的數(shù)據(jù)交互過程為:

      步驟1,根據(jù)請求的內(nèi)容生成鍵值(Key),在Redis內(nèi)存數(shù)據(jù)庫中根據(jù)Key進行查找。

      步驟2,如果Redis緩存中存在與此鍵值相對應(yīng)的內(nèi)容,則取出,執(zhí)行步驟6。

      步驟3,如果在Redis緩存中未查詢到相應(yīng)結(jié)果,則在原始數(shù)據(jù)服務(wù)器中查詢所需數(shù)據(jù),并判斷是否需要進行模型計算,如果需要則執(zhí)行步驟4;否則,直接執(zhí)行步驟5。

      步驟4,進行模型計算。

      步驟5,將結(jié)果緩存到Redis數(shù)據(jù)庫,并設(shè)置加入隨機值的過期時間。

      步驟6,返回結(jié)果。

      特別地,在將查詢或模型計算結(jié)果緩存進Redis內(nèi)存數(shù)據(jù)庫前,會對結(jié)果進行非空檢驗。若結(jié)果不為空,將其寫入Redis內(nèi)存數(shù)據(jù)庫,并設(shè)置一個加入隨機值的緩存過期時間,避免大量緩存同時過期造成的緩存雪崩;若結(jié)果為空,則將空值緩存進Redis內(nèi)存數(shù)據(jù)庫,并設(shè)計一個較短的過期時間,防止系統(tǒng)遭受惡意攻擊時,大量查詢?yōu)榭盏恼埱笤斐傻木彺娲┩竼栴}。新型數(shù)據(jù)交互模式相較于傳統(tǒng)數(shù)據(jù)交互模式具有以下優(yōu)點:①減少數(shù)據(jù)查詢時間,對于重復(fù)查詢的數(shù)據(jù)可以直接從Redis內(nèi)存數(shù)據(jù)庫中查詢,節(jié)省從海量數(shù)據(jù)中篩選數(shù)據(jù)的時間;②降低服務(wù)器壓力,減少磁盤數(shù)據(jù)庫訪問次數(shù)可以減輕數(shù)據(jù)庫服務(wù)器壓力,避免模型服務(wù)重復(fù)計算,緩解Web服務(wù)器壓力;③提高水資源管理決策支持系統(tǒng)穩(wěn)定性,多用戶同時向服務(wù)端發(fā)送請求,對于相同請求可以直接響應(yīng),避免高并發(fā)引起的系統(tǒng)崩潰。

      2.2 設(shè)計與實現(xiàn)

      2.2.1 數(shù)據(jù)交互框架設(shè)計

      基于新型數(shù)據(jù)交互模式(見圖2),設(shè)計了一種新型的水資源管理決策支持系統(tǒng)數(shù)據(jù)交互框架(見圖3),通過在系統(tǒng)中加入緩存模塊,優(yōu)化對用戶數(shù)據(jù)請求的響應(yīng)方式,顯著提高了系統(tǒng)的數(shù)據(jù)交互效率,有效釋放了原始數(shù)據(jù)庫服務(wù)器的壓力。

      將Redis內(nèi)存數(shù)據(jù)庫部署于服務(wù)器集群,并配置哨兵模式(Sentinel)以及主從機制(Master-Slave),對各Redis服務(wù)的任務(wù)進行明確分工,進而保證在部分服務(wù)器宕機的情況下數(shù)據(jù)交互機制的正常使用;此外,對Redis數(shù)據(jù)庫中的數(shù)據(jù)進行持久化存儲備份,降低服務(wù)器重啟導(dǎo)致的數(shù)據(jù)丟失風險,確保水資源管理決策支持系統(tǒng)安全穩(wěn)定運行。具體的數(shù)據(jù)交互框架如圖3所示。

      圖3 基于Redis的數(shù)據(jù)交互框架

      2.2.2 數(shù)據(jù)交互框架技術(shù)實現(xiàn)

      根據(jù)圖3所示的框架,對其進行技術(shù)實現(xiàn)。雖然將Redis應(yīng)用于單機時,部署簡單且通信資源占用少,但單機數(shù)據(jù)庫的性能受軟硬件性能的影響較大,增大了數(shù)據(jù)庫節(jié)點故障導(dǎo)致的系統(tǒng)無法使用的風險。因此,在基于Redis的水資源管理決策支持系統(tǒng)數(shù)據(jù)交互框架的技術(shù)實現(xiàn)中,使用主從機制和哨兵機制對Redis數(shù)據(jù)庫進行集群化部署,可有效減輕單個數(shù)據(jù)庫節(jié)點故障對系統(tǒng)正常使用的影響,提高系統(tǒng)的可用性和穩(wěn)定性。此外,Redis內(nèi)存數(shù)據(jù)庫的操作都是基于內(nèi)存進行的,為避免因服務(wù)器宕機或重啟導(dǎo)致的水資源數(shù)據(jù)丟失風險,數(shù)據(jù)交互框架的技術(shù)實現(xiàn)使用持久化機制對Redis中的緩存數(shù)據(jù)進行持久化存儲。Redis常用的持久化機制有快照持久化(RDB)和文件追加持久化(AOF)兩種。在水資源管理決策支持系統(tǒng)數(shù)據(jù)交互框架中,為保證數(shù)據(jù)的安全性與穩(wěn)定性,同時使用了這兩種持久化方式。水資源管理決策支持系統(tǒng)中,Redis集群化部署與持久化方式的技術(shù)關(guān)鍵如下所述。

      Redis內(nèi)存數(shù)據(jù)庫的集群化部署依賴于主從機制和哨兵機制的實現(xiàn)。Redis主從機制部署多臺Redis數(shù)據(jù)庫在不同服務(wù)器上,并區(qū)分主庫(Master)和從庫(Slave)。在水資源管理決策支持系統(tǒng)中,對主庫和從庫的任務(wù)進行明確分工,選取一個主庫主要負責數(shù)據(jù)的寫操作,其他數(shù)據(jù)庫作為從庫負責讀操作,且主庫與從庫之間會進行同步備份,保證主從庫之間數(shù)據(jù)的一致性。哨兵機制可實時監(jiān)控所有Redis數(shù)據(jù)庫的運行狀態(tài),哨兵系統(tǒng)中的每一個監(jiān)控節(jié)點都會與所監(jiān)控的數(shù)據(jù)庫節(jié)點保持通信,通過監(jiān)控節(jié)點與數(shù)據(jù)節(jié)點的實時信息交換,可以在主庫出現(xiàn)故障時,立即選擇其他的從庫成為新的主庫,保證數(shù)據(jù)庫集群讀寫功能的正常使用。主從機制與哨兵機制的部署如圖4所示。

      圖4 主從機制與哨兵機制

      主庫與從庫之間的數(shù)據(jù)同步依賴于持久化機制。主庫接收到從庫發(fā)來的同步請求后,會進行一次RDB持久化操作生成一個dump.rdb文件,并將此文件發(fā)送至從庫,從庫對其進行解析存儲,進而完成一次全量備份。在完成全量備份后,如果主庫接收到新的寫入命令,則會在全量同步之后將命令發(fā)送給Slave,完成增量同步,最終完成一次完全同步過程。為保證系統(tǒng)性能、降低數(shù)據(jù)傳輸開銷,主從庫數(shù)據(jù)持久化方式的具體配置為:主庫完全關(guān)閉持久化配置,以此來保證主庫數(shù)據(jù)寫入性能達到最優(yōu);從庫開啟數(shù)據(jù)快照持久化方式及文件追加持久化方式,并對不同的從庫設(shè)置不同的數(shù)據(jù)同步時間,避免數(shù)據(jù)同時同步影響系統(tǒng)使用。

      3 應(yīng)用案例與性能測試

      3.1 應(yīng)用案例

      以三峽水利樞紐工程為核心的金沙江下游~三峽梯級水庫群,包括烏東德、白鶴灘、溪洛渡、向家壩、三峽和葛洲壩6座巨型水電站,總防洪庫容約376.43億m3,占長江中上游總防洪庫容的2/3;總裝機容量超過7 000萬kW,年均發(fā)電量超過 3 000億kW·h,裝機容量和年發(fā)電量均居世界水電行業(yè)首位[12]。為滿足長江上游干支流控制性水庫群聯(lián)合優(yōu)化運行工程應(yīng)用及長江經(jīng)濟帶重大戰(zhàn)略需求,研究建立了一整套適合流域梯級水庫群優(yōu)化運行的核心技術(shù)與方法體系,研發(fā)了擁有自主知識產(chǎn)權(quán)和核心技術(shù)、能夠滿足金沙江下游~三峽梯級水庫群綜合運行管理工程需求的流域梯級水庫群聯(lián)合優(yōu)化調(diào)度管理應(yīng)用系統(tǒng)。金沙江下游~三峽梯級水資源管理決策支持系統(tǒng)涉及水文預(yù)報、庫群調(diào)度、流域仿真和運行評估等多個方面的內(nèi)容,各個模塊都需要以大量的水文數(shù)據(jù)作為支撐來完成相應(yīng)的功能。

      本文設(shè)計的基于Redis的數(shù)據(jù)交互框架已成功應(yīng)用于金沙江下游~三峽梯級水資源管理決策支持系統(tǒng)中,解決了系統(tǒng)開發(fā)過程中遇到的系統(tǒng)訪問慢、易崩潰等問題,顯著提升了系統(tǒng)的響應(yīng)速度,保障了系統(tǒng)的穩(wěn)定性和可用性。系統(tǒng)應(yīng)用效果如圖5所示。

      圖5 金沙江下游~三峽梯級水資源管理決策支持系統(tǒng)應(yīng)用效果

      3.2 性能測試

      性能測試旨在檢驗基于Redis的數(shù)據(jù)交互框架在金沙江下游~三峽梯級水資源管理決策支持系統(tǒng)中的功能與作用。選取系統(tǒng)服務(wù)中典型的服務(wù)接口,使用JMeter進行服務(wù)請求,分別記錄系統(tǒng)服務(wù)在使用新型數(shù)據(jù)交互框架前后的性能變化。

      (1)典型緩存接口測試。選擇系統(tǒng)中典型的常用服務(wù)接口,使用JMeter分別發(fā)送一百次請求,記錄每次請求的時間,計算每次請求時間的平均值,結(jié)果如見表1。由表1可以看出,系統(tǒng)服務(wù)在使用基于Redis的新型數(shù)據(jù)交互框架后,對數(shù)據(jù)請求的響應(yīng)速度得到了數(shù)量級的提升,顯著提高了數(shù)據(jù)交互的效率。

      表1 典型緩存接口測試結(jié)果 ms

      (2)不同數(shù)據(jù)量查詢測試。選擇常用典型接口daydb/getBetweenData,進行多次請求,每次數(shù)據(jù)請求量逐漸增大,同一量級數(shù)據(jù)請求執(zhí)行10次,計算響應(yīng)時間的平均值,獲得數(shù)據(jù)請求量與服務(wù)響應(yīng)時間的關(guān)系,如圖6所示。

      圖6 有無緩存時查詢記錄數(shù)與查詢時間關(guān)系對比

      由圖6可以看出,使用設(shè)計的Redis新型數(shù)據(jù)交互框架之后,隨著數(shù)據(jù)請求查詢數(shù)據(jù)量的增加,服務(wù)響應(yīng)時間的變化較小,在查詢記錄數(shù)達到30 000條左右時,響應(yīng)時間仍然維持在500 ms以內(nèi),而在傳統(tǒng)的無緩存數(shù)據(jù)交互模式中,隨著請求數(shù)據(jù)量的增加,服務(wù)響應(yīng)時間逐漸增加,且在相同查詢記錄數(shù)時,服務(wù)響應(yīng)時間顯著大于有緩存模式的響應(yīng)時間,此外,隨著查詢數(shù)據(jù)量的增大,二者響應(yīng)時間的差異也不斷增大。

      綜上所述,集成Redis內(nèi)存數(shù)據(jù)庫后,金沙江下游~三峽梯級水資源管理決策支持系統(tǒng)數(shù)據(jù)交互的響應(yīng)性能有了數(shù)量級的提升,顯著降低了服務(wù)響應(yīng)時間,減小了系統(tǒng)服務(wù)器的壓力,提高了系統(tǒng)的可用性及穩(wěn)定性。

      4 總結(jié)與展望

      研究以提高水資源管理決策支持系統(tǒng)的數(shù)據(jù)交互效率為目標,從原理上分析了傳統(tǒng)水資源系統(tǒng)數(shù)據(jù)交互模式的不足,詳細剖析了頻繁的磁盤I/O操作給系統(tǒng)帶來的巨大時間開銷和資源浪費,構(gòu)建了基于Redis的水資源管理決策支持系統(tǒng)數(shù)據(jù)交互框架。實踐應(yīng)用效果表明,基于Redis的水資源管理決策支持系統(tǒng)數(shù)據(jù)交互框架顯著提高了系統(tǒng)數(shù)據(jù)交互速度,能夠有效保障系統(tǒng)的可用性和穩(wěn)定性。

      猜你喜歡
      決策支持系統(tǒng)內(nèi)存框架
      護理臨床決策支持系統(tǒng)的理論基礎(chǔ)
      框架
      廣義框架的不相交性
      “春夏秋冬”的內(nèi)存
      當代陜西(2019年13期)2019-08-20 03:54:22
      臨床決策支持系統(tǒng)應(yīng)用于呼吸疾病的現(xiàn)狀概述
      電務(wù)維修決策支持系統(tǒng)研究
      WTO框架下
      法大研究生(2017年1期)2017-04-10 08:55:06
      縣級防汛輔助決策支持系統(tǒng)的設(shè)計與實現(xiàn)
      水利信息化(2015年5期)2015-12-21 12:54:40
      一種基于OpenStack的云應(yīng)用開發(fā)框架
      基于內(nèi)存的地理信息訪問技術(shù)
      海丰县| 磐安县| 正蓝旗| 崇礼县| 潞城市| 乌鲁木齐市| 永康市| 定西市| 新民市| 肃宁县| 鹿邑县| 车险| 六安市| 都匀市| 长兴县| 卓资县| 大余县| 东明县| 二手房| 天峻县| 雷州市| 左权县| 沐川县| 洛川县| 安福县| 寻甸| 资兴市| 铜鼓县| 翁牛特旗| 偏关县| 广安市| 化隆| 静安区| 长葛市| 罗江县| 孝感市| 汪清县| 军事| 仲巴县| 胶州市| 孙吴县|