• 
    

    
    

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

      ?

      基于微服務(wù)的太陽活動指數(shù)預(yù)報系統(tǒng)的設(shè)計與實現(xiàn)

      2021-07-15 08:24:18李浩涌
      電視技術(shù) 2021年5期
      關(guān)鍵詞:太陽活動架構(gòu)界面

      李浩涌

      (昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明 650500)

      關(guān)鍵字:太陽活動指數(shù);預(yù)報系統(tǒng);Spring Boot;微服務(wù)

      0 引 言

      太陽活動是指發(fā)生在太陽大氣層中的各種太陽活動現(xiàn)象,其具體表現(xiàn)形式包括太陽黑子浮現(xiàn)和太陽耀斑爆發(fā)等現(xiàn)象。太陽活動發(fā)生時,會影響地球的通信設(shè)備以及基礎(chǔ)設(shè)施,同時還會增強空間環(huán)境中的太陽輻射,從而影響人類的航海和天氣等國防和國民經(jīng)濟的眾多領(lǐng)域[1]。太陽活動指數(shù)是對太陽活動的一種量化描述,常用的太陽活動指數(shù)包括太陽黑子數(shù)和F10.7射電流量等。太陽活動指數(shù)的預(yù)報是一種重要的預(yù)報類型,同時也是一種復(fù)雜的綜合系統(tǒng)。建立一個性能穩(wěn)定、可擴展的預(yù)報系統(tǒng),對于太陽活動的預(yù)報尤為重要。

      目前對于太陽活動的預(yù)報系統(tǒng)大多采用傳統(tǒng)的單體服務(wù)[2-3]。傳統(tǒng)的單體架構(gòu)可以在小型系統(tǒng)中運行良好,但是系統(tǒng)的復(fù)雜度會隨著業(yè)務(wù)功能的增多而急劇上升。業(yè)務(wù)代碼之間的耦合度會增多,從而對系統(tǒng)的穩(wěn)定性造成影響。另外,系統(tǒng)無法靈活地對業(yè)務(wù)功能進行擴展。針對這一問題,提出使用微服務(wù)架構(gòu)的思想來構(gòu)建太陽活動指數(shù)預(yù)報系統(tǒng)。從預(yù)報系統(tǒng)的實際業(yè)務(wù)功能出發(fā),將預(yù)報系統(tǒng)中不同的功能劃分為不同的服務(wù),服務(wù)之間互不影響,且各個微服務(wù)可以同步開發(fā)[4],提高了系統(tǒng)的可用性與可擴展性。

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

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

      微服務(wù)是一種基于面向服務(wù)架構(gòu)(Service-Oriented Architecture,SOA)的軟件開發(fā)思想與技術(shù)。傳統(tǒng)的單體軟件架構(gòu)習(xí)慣將所有的功能集合在一個系統(tǒng)中,之后將其打包為jar包或者war包部署在服務(wù)器中。系統(tǒng)中各功能的耦合度較高,而且不方便測試與部署。在系統(tǒng)出現(xiàn)故障時,單體架構(gòu)的系統(tǒng)需要將整個項目進行調(diào)試分析后重新部署。微服務(wù)架構(gòu)將不同的業(yè)務(wù)功能分解為不同的服務(wù),每個服務(wù)獨立運行,服務(wù)之間使用遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)進行相互調(diào)用。相對于傳統(tǒng)的單體架構(gòu),微服務(wù)架構(gòu)具有以下優(yōu)點[5]。

      (1)降低了系統(tǒng)耦合性與復(fù)雜性。微服務(wù)通過對單體架構(gòu)系統(tǒng)的細(xì)粒度拆分,降低了服務(wù)之間的耦合性;每個服務(wù)只關(guān)注特定業(yè)務(wù)的功能,降低了系統(tǒng)的復(fù)雜性。

      (2)靈活性更高。不同的服務(wù)可以使用不同的開發(fā)語言來實現(xiàn),可以結(jié)合具體的業(yè)務(wù)功能來選擇最優(yōu)的技術(shù)路線。

      (3)獨立部署。在微服務(wù)架構(gòu)中,每個服務(wù)都是一個獨立的系統(tǒng),可以獨立部署在服務(wù)器中。當(dāng)某個服務(wù)需要迭代更新時,只需對當(dāng)前服務(wù)進行重新部署即可。

      (4)容錯性更強。每個服務(wù)可以部署多個備用服務(wù),當(dāng)一個服務(wù)出現(xiàn)故障時,可以利用注冊中心的健康監(jiān)控機制將其下線,將服務(wù)請求發(fā)送到備用服務(wù)中。

      1.2 相關(guān)組件

      微服務(wù)架構(gòu)包含Spring Boot、Nacos及Spring Cloud Gateway這3個主要組件。

      (1)Spring Boot。Spring Boot是Spring Cloud微服務(wù)架構(gòu)體系的基石。Spring Boot繼承了Spring框架的控制反轉(zhuǎn)(Inversion of Control,IoC)與面向切面編程(Aspect Oriented Programming,AOP)的思想,同時提出“約定優(yōu)于配置”的思想,優(yōu)化了Spring應(yīng)用復(fù)雜的配置。

      (2)Nacos。在微服務(wù)系統(tǒng)中,一個服務(wù)會被拆分為多個微服務(wù)。服務(wù)可以分為服務(wù)消費者和服務(wù)提供者,當(dāng)服務(wù)消費者請求服務(wù)提供者的功能時,為了防止服務(wù)消費者將請求發(fā)送到出現(xiàn)故障的消費提供者節(jié)點,需要服務(wù)注冊中心來判斷節(jié)點是否正常。Alibaba Nacos可以解決此類問題。Nacos可以統(tǒng)一管理系統(tǒng)的服務(wù)消費者與提供者,對服務(wù)進行統(tǒng)一配置管理,同時實時檢查服務(wù)的健康情況,阻止服務(wù)消費者向出現(xiàn)故障的節(jié)點發(fā)送請求。

      (3)Spring Cloud Gateway。在服務(wù)進行請求操作時,存在權(quán)限以及請求協(xié)議的區(qū)別。不同的請求擁有不同的權(quán)限,在每次的請求調(diào)用中,服務(wù)提供者都需要對該請求進行判斷,增加了通信的成本。為了解決這一問題,采用Spring Cloud Gateway對請求進行統(tǒng)一的認(rèn)證鑒權(quán)。

      2 系統(tǒng)分析設(shè)計

      2.1 系統(tǒng)需求分析

      太陽活動指數(shù)預(yù)報系統(tǒng)功能需求包括用戶管理模塊、可視化模塊、太陽活動預(yù)報模塊、數(shù)據(jù)預(yù)處理模塊以及模型管理模塊。每個功能模塊在系統(tǒng)中作為一個單獨的微服務(wù)應(yīng)用進行開發(fā)設(shè)計。系統(tǒng)功能模塊如圖1所示。

      圖1 系統(tǒng)功能模塊圖

      用戶管理模塊包括用戶管理、角色管理以及菜單管理等功能,可以為不同的用戶分配不同的角色,不同角色擁有不同的菜單權(quán)限。可視化模塊支持對歷史數(shù)據(jù)進行查詢,包括對太陽黑子、耀斑指數(shù)以及F10.7射電流量等太陽活動指數(shù)的歷史數(shù)據(jù)查詢,同時支持根據(jù)不同的時間查詢不同的太陽活動指數(shù),并基于Echarts框架將其可視化。預(yù)報模塊是系統(tǒng)的核心功能,用戶在界面選擇要顯示的太陽活動指數(shù)預(yù)報值后,系統(tǒng)通過調(diào)用數(shù)據(jù)庫保存好的預(yù)測模型,在界面中顯示對太陽黑子和耀斑指數(shù)等太陽活動指數(shù)的預(yù)報值。數(shù)據(jù)預(yù)處理模塊可以對太陽黑子等序列數(shù)據(jù)進行平滑和去噪等預(yù)處理操作。模型管理模塊的主要功能是負(fù)責(zé)管理系統(tǒng)的預(yù)報模型。預(yù)報模型是指經(jīng)過神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的后綴為h5的模型文件。當(dāng)預(yù)報模型是傳統(tǒng)的差分整合移動平均自回歸模型(Autoregressive Integrated Moving Average model,ARIMA)等模型時,則使用Java中的Runtime類來調(diào)用python接口,得到預(yù)測值后將其保存到MySQL數(shù)據(jù)庫。系統(tǒng)管理員可以在模型管理模塊更換不同的預(yù)測模型。

      2.2 系統(tǒng)設(shè)計

      本文提出的太陽活動預(yù)報系統(tǒng)設(shè)計架構(gòu)如圖2所示。系統(tǒng)依次分為訪問層、展示層、網(wǎng)關(guān)層、微服務(wù)層以及持久層。預(yù)報系統(tǒng)主體框架采用Java語言開發(fā);預(yù)報模型的構(gòu)建則使用python語言編寫,通過前臺界面顯示;選擇MySQL作為系統(tǒng)數(shù)據(jù)庫,IDEA作為開發(fā)編輯器;選用Nacos作為系統(tǒng)的注冊中心,Spring Cloud Gateway作為系統(tǒng)的網(wǎng)關(guān)服務(wù)。

      圖2 系統(tǒng)架構(gòu)圖

      訪問層代表系統(tǒng)所支持的訪問設(shè)備,包括個人電腦、移動設(shè)備以及其他終端設(shè)備。展示層負(fù)責(zé)系統(tǒng)與用戶之間的交互。本系統(tǒng)使用網(wǎng)頁界面進行系統(tǒng)展示,使用Bootstrap框架對頁面進行優(yōu)化,利用Echarts開源庫對系統(tǒng)中的圖表進行前端渲染展現(xiàn),展示層與后臺交互使用JQuery和Ajax技術(shù)。網(wǎng)關(guān)層選用Spring Cloud Gateway框架,負(fù)責(zé)對系統(tǒng)的請求進行統(tǒng)一的權(quán)限校驗。微服務(wù)層是系統(tǒng)的業(yè)務(wù)功能層,根據(jù)系統(tǒng)的業(yè)務(wù)功能將其拆分為不同的微服務(wù),服務(wù)之間通過RESTful風(fēng)格的請求來進行相互調(diào)用。使用Nacos注冊中心對系統(tǒng)中所有的微服務(wù)進行統(tǒng)一配置,統(tǒng)一管理服務(wù)之間的相互訪問請求。持久層代表對數(shù)據(jù)的持久化,具體包括使用MySQL數(shù)據(jù)庫對系統(tǒng)用戶的相關(guān)信息、太陽活動指數(shù)數(shù)據(jù)以及系統(tǒng)預(yù)報模型等進行存儲。采用redis數(shù)據(jù)庫作為系統(tǒng)的緩存數(shù)據(jù)庫,提高系統(tǒng)的訪問速度。同時,系統(tǒng)支持將太陽活動指數(shù)數(shù)據(jù)保存為csv格式,方便用戶下載使用。

      3 系統(tǒng)實現(xiàn)

      3.1 系統(tǒng)環(huán)境

      本系統(tǒng)的整體框架選用Spring Cloud微服務(wù)架構(gòu)體系,其中,注冊中心選用Nacos,網(wǎng)關(guān)選用Spring Cloud Gateway。預(yù)測模型使用python 3.0進行訓(xùn)練,前臺顯示界面選用Bootstrap框架優(yōu)化,使用Echarts框架對數(shù)據(jù)進行可視化展示。數(shù)據(jù)庫存儲使用MySQL數(shù)據(jù)庫,緩存使用redis數(shù)據(jù)庫。系統(tǒng)整體軟硬件如表1所示。

      表1 系統(tǒng)環(huán)境清單

      3.2 注冊中心實現(xiàn)

      選用Nacos注冊中心作為預(yù)報系統(tǒng)的注冊中心,將不同的預(yù)測服務(wù)注冊到同一個服務(wù)中心。具體實現(xiàn)如圖3所示。其中,forecast-history代表數(shù)據(jù)可視化服務(wù),forecast-user代表用戶管理服務(wù),forecast-prediction代表太陽活動預(yù)報服務(wù),forecsatpretreatment代表數(shù)據(jù)預(yù)處理服務(wù),forecast-model代表預(yù)報模型管理服務(wù)。通過Nacos服務(wù)臺中的實例數(shù)與健康實例數(shù),可以實時監(jiān)測服務(wù)是否健康。

      圖3 Nacos注冊中心

      3.3 網(wǎng)關(guān)實現(xiàn)

      網(wǎng)關(guān)選用Spring Cloud Gateway框架實現(xiàn)。具體實現(xiàn)需要在服務(wù)項目的pom.xml文件中添加對Spring Cloud Gateway的依賴項,依賴代碼如下所示:

      將Spring Cloud Gateway依賴加入到項目中后,需要在項目的配置文件中對Gateway的網(wǎng)關(guān)路由規(guī)則進行配置。配置文件規(guī)范遵循yml語法規(guī)范,具體配置規(guī)則如圖4所示。

      圖4 Gateway配置文件

      3.4 界面展示

      系統(tǒng)界面左側(cè)為預(yù)報系統(tǒng)的菜單欄,右側(cè)區(qū)域為系統(tǒng)頁面區(qū)域。注冊用戶登錄系統(tǒng)后,系統(tǒng)根據(jù)用戶角色所擁有的權(quán)限來展示不同的菜單。歷史數(shù)據(jù)可視化界面如圖5所示,用戶選擇展示時間和太陽活動指數(shù)類型后,系統(tǒng)基于Echarts框架將數(shù)據(jù)庫中的太陽活動指數(shù)以折線圖的形式動態(tài)顯示到頁面中。圖6為預(yù)報系統(tǒng)的模型管理界面,在這個界面可以增加和刪除預(yù)測模型、選擇啟用的預(yù)測模型。圖7為系統(tǒng)預(yù)報界面,用戶需要首先選擇查看的預(yù)報類型,選擇完預(yù)報的太陽活動指數(shù)后,系統(tǒng)可以根據(jù)訓(xùn)練好的模型,對未來一段時間的太陽活動指數(shù)進行預(yù)報并顯示在頁面中,同時標(biāo)記出預(yù)報的最大值和最小值。

      圖5 歷史數(shù)據(jù)可視化界面

      圖6 模型管理界面

      圖7 系統(tǒng)預(yù)報界面

      4 結(jié) 語

      太陽活動的預(yù)測是一種復(fù)雜的業(yè)務(wù)功能。本文針對傳統(tǒng)單體架構(gòu)的太陽活動預(yù)報系統(tǒng)的不足,提出了一種基于微服務(wù)的太陽活動指數(shù)預(yù)報系統(tǒng)。利用微服務(wù)的思想,將系統(tǒng)的各個功能分成不同的服務(wù)。各服務(wù)之間耦合度低,從而降低了預(yù)報系統(tǒng)的復(fù)雜性,提高了系統(tǒng)的穩(wěn)定性與靈活性,方便后續(xù)對系統(tǒng)功能進行擴展和升級改進。后續(xù)考慮支持對太陽活動圖像的處理、預(yù)報以及使用爬蟲技術(shù)來獲取最新的太陽活動指數(shù)數(shù)據(jù)并加入到數(shù)據(jù)庫中,提高系統(tǒng)的自動化程度。

      猜你喜歡
      太陽活動架構(gòu)界面
      基于FPGA的RNN硬件加速架構(gòu)
      第24太陽活動周中國地區(qū)電離層閃爍統(tǒng)計特性研究
      第23和24太陽活動周高緯地磁感應(yīng)電流分布特性
      功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
      汽車工程(2021年12期)2021-03-08 02:34:30
      國企黨委前置研究的“四個界面”
      基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
      LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
      人機交互界面發(fā)展趨勢研究
      手機界面中圖形符號的發(fā)展趨向
      新聞傳播(2015年11期)2015-07-18 11:15:04
      一種基于FPGA+ARM架構(gòu)的μPMU實現(xiàn)
      衢州市| 云阳县| 健康| 海南省| 浑源县| 广汉市| 新竹市| 鹰潭市| 宁波市| 永和县| 青海省| 合山市| 龙南县| 梅河口市| 沙洋县| 稻城县| 庄河市| 广河县| 榆社县| 迁西县| 通江县| 怀宁县| 开鲁县| 石狮市| 思茅市| 华坪县| 天峻县| 平安县| 乐昌市| 徐州市| 锡林浩特市| 江门市| 上林县| 舒兰市| 宁蒗| 宁阳县| 原阳县| 沾益县| 南康市| 丰台区| 马公市|