国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

微服務(wù)架構(gòu)下安全監(jiān)測智能平臺的開發(fā)及部署

2023-08-26 12:39:22李培聰袁明道徐云乾李田貴
水利信息化 2023年4期
關(guān)鍵詞:部署架構(gòu)水庫

李培聰 ,袁明道 ,徐云乾 ,李田貴

(1.廣東省水利水電科學(xué)研究院,廣東 廣州 510635;2.廣東省大壩安全技術(shù)管理中心,廣東 廣州 510635)

0 引言

智慧水利是新階段水利高質(zhì)量發(fā)展的重要標志,隨著人工智能、大數(shù)據(jù)、云計算、物聯(lián)網(wǎng)與移動互聯(lián)等新一代信息技術(shù)的發(fā)展,智慧水利體系的構(gòu)建,數(shù)字孿生水利工程的建設(shè)成為可能,同時在工程設(shè)計、建設(shè)、運行中,全要素全過程的感知、模擬、分析、預(yù)警的數(shù)字化和智能化需求日益增強,相關(guān)平臺迭代優(yōu)化也逐漸加快。

構(gòu)建安全監(jiān)測智能平臺是實現(xiàn)智慧水利的關(guān)鍵一環(huán),為工程管理提供全過程、全要素信息,是水利工程安全監(jiān)測最基本和最重要的支撐。20 世紀 90 年代,葛洲壩船閘、小浪底大壩等工程開始嘗試應(yīng)用自動化監(jiān)測系統(tǒng)采集監(jiān)測數(shù)據(jù)[1];2000 年以后,由于存儲數(shù)據(jù)容量越來越大,存儲內(nèi)容媒體形式不再只是單一的文本或數(shù)據(jù),涉及到文本、圖形、圖像等媒體,因此,三峽大壩[2]、小浪底大壩[3]等工程逐漸在現(xiàn)有系統(tǒng)基礎(chǔ)上進行數(shù)據(jù)庫優(yōu)化;“十三五”以來,隨著人工智能、識別技術(shù)及軟硬件的快速發(fā)展,水利工程各類平臺系統(tǒng)開始從數(shù)字水利向智慧水利發(fā)展,GIS 綜合展示[4]、BIM 模型構(gòu)建[5]、圖像水位識別[6]等功能開始在各類平臺系統(tǒng)中應(yīng)用。

然而,隨著用戶需求的增加,安全監(jiān)測智能平臺功能日漸增多,應(yīng)用程序日趨龐大復(fù)雜,迭代周期也日益縮短,以往單體式結(jié)構(gòu)平臺已經(jīng)無法滿足智慧水利快速發(fā)展的需求。因此,目前安全監(jiān)測智能平臺的一個發(fā)展趨勢是將整體的系統(tǒng)拆分成獨立的業(yè)務(wù)模塊,每個業(yè)務(wù)模塊獨立運行,共同構(gòu)建整個平臺的微服務(wù)基礎(chǔ)架構(gòu),提高平臺開發(fā)、維護、迭代更新的效率。

本研究將微服務(wù)基礎(chǔ)架構(gòu)應(yīng)用于安全監(jiān)測智能平臺中,通過業(yè)務(wù)拆分和服務(wù)封裝等構(gòu)建一個服務(wù)之間互相協(xié)調(diào)、配合,能獨立地部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境中,具備高可拓展性及快捷部署的安全監(jiān)測智能平臺。

1 基礎(chǔ)架構(gòu)

微服務(wù)基礎(chǔ)架構(gòu)是區(qū)別于單體式架構(gòu)的平臺開發(fā)方法[7],相比單體式架構(gòu),微服務(wù)技術(shù)的松耦合式結(jié)構(gòu)可靠性高,迭代更新快,同時具備更好的可擴展性[8]。安全監(jiān)測智能平臺結(jié)合監(jiān)測、管理、預(yù)警等工作,通過劃分不同業(yè)務(wù)模塊,形成獨立運行的各服務(wù),服務(wù)之間采用基于 TCP/IP 傳輸協(xié)議中應(yīng)用層的 http 通信協(xié)議進行通信[9],各服務(wù)可在不影響整體系統(tǒng)運行的情況下修改,運行,停止[10],實現(xiàn)高內(nèi)聚和低耦合。微服務(wù)架構(gòu)如圖1 所示。

圖1 微服務(wù)架構(gòu)

2 關(guān)鍵技術(shù)

2.1 服務(wù)構(gòu)造

采用微服務(wù)架構(gòu)的主要難點在于顆粒度的最優(yōu)劃分:顆粒度劃分過細,容易導(dǎo)致服務(wù)數(shù)量倍增,加劇相互之間協(xié)調(diào)、配合、通信的復(fù)雜程度;顆粒度劃分過粗,則無法實現(xiàn)系統(tǒng)的解耦,不同服務(wù)會存在較多的重復(fù)功能與代碼。因此,采用領(lǐng)域驅(qū)動設(shè)計(DDD)的方法進行服務(wù)劃分。DDD 是一種處理復(fù)雜系統(tǒng)架構(gòu)的設(shè)計方法,通過業(yè)務(wù)需求構(gòu)建領(lǐng)域模型,控制業(yè)務(wù)的復(fù)雜性,將復(fù)雜業(yè)務(wù)領(lǐng)域簡單化,實現(xiàn)顆粒度劃分[11]。

本研究從大壩安全監(jiān)測及工程運行管理的實際需求出發(fā),控制單個業(yè)務(wù)的復(fù)雜性,合理劃分領(lǐng)域邊界,從業(yè)務(wù)出發(fā)的領(lǐng)域驅(qū)動設(shè)計結(jié)構(gòu)圖如圖2 所示。

圖2 領(lǐng)域驅(qū)動設(shè)計結(jié)構(gòu)圖

2.2 數(shù)據(jù)管理

微服務(wù)架構(gòu)下,各微服務(wù)可部署在不同的服務(wù)器上,也可部署在相同服務(wù)器的不同容器上,因此,數(shù)據(jù)管理也是主要難點,目前通常采用一庫一服或一庫多服 2 種方式:一庫多服是常用的方式,即 1 個數(shù)據(jù)庫可對應(yīng)多個模塊;一庫一服,即每個微服務(wù)準備 1 個單獨的數(shù)據(jù)庫。2種方式的部署模式如圖3 所示。

圖3 數(shù)據(jù)庫部署模式

一庫多服存在以下問題:1) 數(shù)據(jù)庫出現(xiàn)問題,會導(dǎo)致整批服務(wù)全部停止;2) 程序編寫中存在數(shù)據(jù)間的依賴性大、耦合性高的部分,不利于后續(xù)拓展;3) 無法針對某一個服務(wù)進行精準優(yōu)化或擴展。而一庫一服模式在數(shù)據(jù)管理上可保證共享數(shù)據(jù)的全局一致性,解決跨流程服務(wù)組合時數(shù)據(jù)丟失的問題。因此本研究中的微服務(wù)框架采用一庫一服模式。

2.3 服務(wù)組合

微服務(wù)架構(gòu)下,服務(wù)組合通常采用編排和協(xié)同 2 種方式,將相互獨立的各服務(wù)按照需求組合成更為復(fù)雜、完善、滿足使用需要的整體模塊,其中:編排是根據(jù)業(yè)務(wù)流程處理順序,通過中心服務(wù)組織多個服務(wù)的配合;協(xié)同通常是在沒有中心服務(wù)的情況下,所有服務(wù)以需求或某一功能為核心的相互協(xié)作。2 種組合方式具體形式如圖4 所示。

圖4 服務(wù)組合方式

本研究根據(jù)安全監(jiān)測系統(tǒng)中監(jiān)測、預(yù)警等業(yè)務(wù)需要,以本業(yè)務(wù)為中心,同時調(diào)動其他業(yè)務(wù)協(xié)助的需求,以編排的方式,在中心服務(wù)的組織下,按照一定的順序調(diào)用配合的多個微服務(wù),并對配合服務(wù)返回的成果進行組合、轉(zhuǎn)換等加工,最終實現(xiàn)整體功能。中心服務(wù)與每個配合服務(wù)都有自己的緩存和數(shù)據(jù)庫,利用Rabbit 等分布式事件流平臺協(xié)調(diào)組合服務(wù)的調(diào)用,不需要持久化任何數(shù)據(jù)。

3 業(yè)務(wù)服務(wù)

3.1 基本架構(gòu)及模塊化

微服務(wù)架構(gòu)核心是模塊化,通過 DDD 的方法,合理劃分系統(tǒng)顆粒度,將系統(tǒng)拆分成合適的微服務(wù)。

目前,安全監(jiān)測智能平臺主要包括業(yè)務(wù)及基礎(chǔ)兩部分功能,其中業(yè)務(wù)功能主要包括監(jiān)測、預(yù)報、預(yù)警等內(nèi)容,而大壩主要監(jiān)測項目包括環(huán)境量、變形、滲流、應(yīng)力應(yīng)變及溫度等監(jiān)測項目。根據(jù)水利工程安全監(jiān)測需求及用戶使用情況,將安全監(jiān)測、用戶管理等作為單一領(lǐng)域模型,安全監(jiān)測智能平臺的基本架構(gòu)如圖5 所示。

圖5 安全監(jiān)測智能平臺服務(wù)基本架構(gòu)

3.2 數(shù)據(jù)管理

數(shù)據(jù)管理體現(xiàn)為管理某一服務(wù)完成某一功能所需的數(shù)據(jù),在微服務(wù)架構(gòu)中包括數(shù)據(jù)及數(shù)據(jù)庫管理。本研究根據(jù)服務(wù)劃分,采用一服一庫的方式設(shè)計微服務(wù)的數(shù)據(jù)庫,限制對應(yīng)服務(wù)對其他服務(wù)數(shù)據(jù)庫的訪問能力,同時保證數(shù)據(jù)在全局上的一致性,并利用 Rabbit 等分布式事件流平臺協(xié)調(diào)組合服務(wù)的調(diào)用。

本監(jiān)測平臺涉及的獨立數(shù)據(jù)庫主要包括用戶、基礎(chǔ)、安全監(jiān)測、雨水情、運行管理、監(jiān)控數(shù)據(jù)云服務(wù)等數(shù)據(jù)庫,其中:監(jiān)控云服務(wù)器數(shù)據(jù)庫采用對象存儲方式,存儲和檢索非結(jié)構(gòu)化的數(shù)據(jù)和元數(shù)據(jù),通過 URL(Uniform Resource Locator)訪問一個空間及其中的文件,存儲對象包括非結(jié)構(gòu)化的圖像文件、視頻文件、日志、HTML 文件等。

3.3 模塊化開發(fā)

本研究將整體系統(tǒng)拆分成獨立的業(yè)務(wù)模塊,每個模塊獨立運行的微服務(wù)共同構(gòu)建起整個系統(tǒng),微服務(wù)是一種以服務(wù)為中心的架構(gòu),服務(wù)之間通過定義明確的協(xié)議和接口進行通信,因此,可根據(jù)不同水庫的不同需求,針對某一個服務(wù)定制開發(fā),同時共用大部分服務(wù),提高開發(fā)效率。

微服務(wù)架構(gòu)在陽江大河水庫及廣州黃龍帶水庫體現(xiàn)明顯,2 座水庫均部署了安全監(jiān)測智能平臺,需求類似,因此僅需修改部分服務(wù)內(nèi)容即可部署,極大提高了開發(fā)效率。如 2 座水庫的接入數(shù)據(jù)方式不同,可采取以下方式部署:大河水庫通過設(shè)備廠商的物聯(lián)網(wǎng)平臺直接接入數(shù)據(jù),監(jiān)測平臺通過安全監(jiān)測服務(wù)中的數(shù)據(jù)定時抓取,滿足安全監(jiān)測數(shù)據(jù)的需求;黃龍帶水庫建立本地數(shù)據(jù)庫,數(shù)據(jù)由監(jiān)測設(shè)備直接通過部署在本地的采集服務(wù)傳回數(shù)據(jù)庫。

3.4 部署及開發(fā)工具

部署服務(wù)器環(huán)境為:Centos7 + Java+ Docker +MySQL + Redis。考慮平臺具備生產(chǎn)級應(yīng)用的移植性、穩(wěn)定性及跨平臺性等特性,選擇Docker 作為部署的應(yīng)用容器,主要開發(fā)環(huán)境及工具如表1 所示。

表1 開發(fā)工具表

4 部署應(yīng)用

4.1 系統(tǒng)部署

微服務(wù)程序十分適合在 Docker 環(huán)境下部署。Docker 是基于容器的平臺,可以在物理或虛擬機,云服務(wù)上或混合環(huán)境(開發(fā)、測試及實際部署環(huán)境)中部署、應(yīng)用。

Docker 中主要有以下 3 個基本概念:1) 鏡像。鏡像是一個可執(zhí)行的程序包,是創(chuàng)建容器的基礎(chǔ),包括運行應(yīng)用程序所需要的所有內(nèi)容,包含代碼、通用類程序庫、環(huán)境變量和配置文件。2) 容器。容器是從鏡像創(chuàng)建的運行實例,可以被啟動、停止和拆除。3) 倉庫。倉庫是用來集中保存鏡像的存儲位置。

本研究在 Docker 環(huán)境下部署安全監(jiān)測智能平臺,主要部署步驟如圖6 所示。

圖6 主要部署步驟

4.2 服務(wù)編排

4.2.1 監(jiān)測預(yù)警

根據(jù)業(yè)務(wù)流程處理的需要,以編排的方式,將安全預(yù)警服務(wù)作為中心服務(wù),調(diào)用多個微服務(wù),包括通過安全監(jiān)測、雨水情測報等服務(wù)提供數(shù)據(jù),結(jié)合氣象、水文要素對監(jiān)測數(shù)據(jù)進行分析,提供各類監(jiān)測預(yù)警情況,及時發(fā)布報警信息等,黃龍帶水庫相關(guān)業(yè)務(wù)平臺安全預(yù)警界面示例如圖7 所示。

4.2.2 智慧管理

將運行管理服務(wù)作為中心服務(wù),涉及移動端、視頻監(jiān)控等服務(wù),最終實現(xiàn)水庫日常管理所需的功能,包括巡視檢查、維修養(yǎng)護、檔案管理等功能,大河水庫智慧管理具體巡查結(jié)果界面示例如圖8 所示。

圖8 智慧管理

4.3 提升效果

在陽江大河水庫、黃龍帶水庫應(yīng)用微服務(wù)架構(gòu)進行開發(fā)及部署,對比單體式架構(gòu)的平臺,微服務(wù)架構(gòu)部署快捷,可擴展性高,具體提升效果如下:

1) 快捷部署性。黃龍帶水庫在大河水庫安全監(jiān)測系統(tǒng)平臺基礎(chǔ)上,僅重新開發(fā)安全監(jiān)測服務(wù),其他服務(wù)在調(diào)整后優(yōu)先部署,極大縮短了開發(fā)周期。

2) 高可拓展性。微服務(wù)架構(gòu)的核心是模塊化,本次展示的 2 座水庫的服務(wù)部署在不同的服務(wù)器上,其中大河水庫的巡查模塊包括電腦端及手機移動端,具體業(yè)務(wù)需求確定及開發(fā)時間較久,因此是在平臺上線運行后,在保證其他服務(wù)仍可正常工作基礎(chǔ)上的一個拓展。

3)故障獨立處置。在開發(fā)過程中,各服務(wù)同步獨立開發(fā),因此,平臺日常運行中某一服務(wù)出現(xiàn)故障,可單獨處理,其他服務(wù)仍可正常工作。測試環(huán)境中,模擬大批量同時請求運行管理服務(wù)時,會導(dǎo)致運行管理服務(wù)數(shù)據(jù)庫并發(fā)死鎖,但其他服務(wù)仍可正常使用。

4)智能化。前端感知設(shè)備及平臺自動化智能化采集信息,如智能全站儀自動采集表面位移監(jiān)測數(shù)據(jù),極大減輕了水庫管理單位工作人員的負擔(dān),提升了水利管理自動化、智能化水平。

5 結(jié)語

詳細闡述了水庫安全監(jiān)測這一復(fù)雜系統(tǒng)的解耦過程及平臺模塊化的服務(wù)組合的關(guān)鍵技術(shù),并將安全監(jiān)測智能平臺成功部署于陽江大河水庫,后續(xù)通過修改安全監(jiān)測服務(wù)及拓展其他服務(wù),快速應(yīng)用于黃龍帶水庫,與傳統(tǒng)軟件開發(fā)相比具有代碼復(fù)用率高、擴展性好、部署效率高等優(yōu)勢,使平臺可適應(yīng)各水庫大壩的安全監(jiān)測與運行管理需求,也可為其他系統(tǒng)平臺開發(fā)提供簡化開發(fā)流程,提高整體開發(fā)效率。后續(xù)可以根據(jù)監(jiān)測數(shù)據(jù)及實際使用需要融入智能分析服務(wù),實現(xiàn)大壩安全風(fēng)險預(yù)警分析,為管理決策提供依據(jù)。

猜你喜歡
部署架構(gòu)水庫
基于FPGA的RNN硬件加速架構(gòu)
一種基于Kubernetes的Web應(yīng)用部署與配置系統(tǒng)
晉城:安排部署 統(tǒng)防統(tǒng)治
中型水庫的工程建設(shè)與管理探討
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
汽車工程(2021年12期)2021-03-08 02:34:30
部署
出山店水庫
白沙水庫
LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
出山店水庫
靖宇县| 曲阜市| 三明市| 宁陕县| 葵青区| 玉门市| 名山县| 潜山县| 清镇市| 巴林左旗| 临泽县| 孙吴县| 华蓥市| 苗栗县| 团风县| 梅州市| 普宁市| 鄢陵县| 滕州市| 始兴县| 永福县| 厦门市| 天水市| 当雄县| 荆州市| 中牟县| 澎湖县| 昭觉县| 会昌县| 博客| 潮安县| 六安市| 图木舒克市| 兴海县| 中方县| 敦煌市| 突泉县| 本溪市| 多伦县| 浑源县| 健康|