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

        ?

        多機(jī)制優(yōu)化的模擬試驗臺數(shù)據(jù)流實時遷移研究

        2023-11-08 01:54:44周啟凡郭迎清趙萬里陶欣昕
        測控技術(shù) 2023年10期
        關(guān)鍵詞:可視化數(shù)據(jù)庫信息

        周啟凡,郭迎清,趙萬里,王 昆,孫 浩,陶欣昕

        (1.西北工業(yè)大學(xué) 動力與能源學(xué)院,陜西 西安 710129; 2.西安現(xiàn)代控制技術(shù)研究所,陜西 西安 710065)

        高空臺是國家戰(zhàn)略性資源,高空模擬是自主研制先進(jìn)航空發(fā)動機(jī)必不可少的重要手段和工具,一個國家的高空模擬能力和技術(shù)水平已成為該國自主研制先進(jìn)航空發(fā)動機(jī)能力和水平的一個重要標(biāo)志[1]。高空模擬試驗過程中,會利用各類傳感器測量試驗設(shè)備參數(shù)數(shù)據(jù)信息,這些參數(shù)信息最終會存儲于歷史數(shù)據(jù)庫中(Oracle數(shù)據(jù)庫)[2]。為了供試驗人員查看分析數(shù)據(jù)所蘊含的內(nèi)在聯(lián)系和價值,需要將存儲于底層數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘與可視化展示,將各類傳感器測量參數(shù)直觀地呈現(xiàn)于前端界面中,供試驗人員進(jìn)行對應(yīng)的技術(shù)操作;且為了不破壞歷史數(shù)據(jù)庫的封裝性和完整性,需要將后續(xù)用于各類算法的數(shù)據(jù)源從歷史數(shù)據(jù)庫中遷移至本地數(shù)據(jù)庫中進(jìn)行數(shù)據(jù)處理,因此數(shù)據(jù)的可視化展示和數(shù)據(jù)流遷移技術(shù)的研究具有重要意義。

        目前,我國某型高空臺能夠?qū)Χ喾N型號的發(fā)動機(jī)進(jìn)行試驗驗證,但高空臺各個試驗設(shè)備采集的原始數(shù)據(jù)僅存儲于歷史數(shù)據(jù)庫中,在需要用到的時候?qū)?shù)據(jù)庫進(jìn)行檢索,查詢相應(yīng)的數(shù)據(jù)信息,可視化、智能化水平不高[3],其深層利用價值并未得到開發(fā)。具體來說其數(shù)據(jù)價值利用的瓶頸主要體現(xiàn)在以下兩個方面:① 對數(shù)據(jù)的挖掘研究不夠深入,未對數(shù)據(jù)本身或各類數(shù)據(jù)關(guān)聯(lián)集之間所隱藏的各類信息進(jìn)行充分挖掘[4],發(fā)現(xiàn)其所包含的深層聯(lián)系和規(guī)律;② 數(shù)據(jù)在綜合管控平臺中的顯性化表達(dá)處于初級階段,在人機(jī)交互界面中只簡單地展現(xiàn)了系統(tǒng)測得的有限原始數(shù)據(jù),操作人員獲取的數(shù)據(jù)價值有限且形式簡單,在數(shù)據(jù)價值與數(shù)據(jù)展示直觀性上有待改進(jìn)。

        在數(shù)據(jù)流遷移技術(shù)中,目前航空發(fā)動機(jī)領(lǐng)域采用的數(shù)據(jù)流遷移技術(shù)主要包括3種:① 創(chuàng)建一個中間數(shù)據(jù)存儲單元[5],將本地所需數(shù)據(jù)源從歷史數(shù)據(jù)庫中取出并存入中間存儲單元中,再通過本地數(shù)據(jù)庫讀取中間單元的數(shù)據(jù),實現(xiàn)數(shù)據(jù)源獲取;② 采用Oracle原生的觸發(fā)器模式[6],給定觸發(fā)條件,將歷史數(shù)據(jù)庫數(shù)據(jù)信息在觸發(fā)條件的作用下同步至本地數(shù)據(jù)庫中;③ 通過TCP協(xié)議或動態(tài)鏈接庫接口獲取歷史數(shù)據(jù)庫中的數(shù)據(jù)源信息[7]。在學(xué)術(shù)界與產(chǎn)業(yè)界中,數(shù)據(jù)流遷移技術(shù)處于平穩(wěn)發(fā)展階段,Delakis等[8]研究了段特征,進(jìn)而提出了一種可以解決異構(gòu)數(shù)據(jù)庫同步問題的段模型。針對異構(gòu)數(shù)據(jù)庫系統(tǒng)的hooking問題,Lehman等[9]提出了TSpaces,TSpaces是一種數(shù)據(jù)庫中間件,它通過研究和整合異構(gòu)數(shù)據(jù)庫系統(tǒng)的事務(wù)、數(shù)據(jù)訪問等特征解決異構(gòu)數(shù)據(jù)庫系統(tǒng)之間同步的通信問題;Yadav等[10]基于事務(wù)復(fù)制提出了一種分布式數(shù)據(jù)同步架構(gòu);Vassev[11]基于微軟消息隊列提出了一種解決企業(yè)多分支系統(tǒng)之間數(shù)據(jù)庫同步解決方案。

        IBM公司提出了一種支持異構(gòu)數(shù)據(jù)庫之間透明訪問的連接方法,并研發(fā)了名為DB2 Data Joiner的數(shù)據(jù)庫同步中間件產(chǎn)品[12];SyBase通過在數(shù)據(jù)源節(jié)點運行一個檢測數(shù)據(jù)庫日志的進(jìn)程,實現(xiàn)了數(shù)據(jù)的復(fù)制,研發(fā)了名為Enterprise Connect的數(shù)據(jù)庫同步中間件產(chǎn)品[9];為了實現(xiàn)異構(gòu)數(shù)據(jù)庫之間數(shù)據(jù)通信,Oracle 提出數(shù)據(jù)庫轉(zhuǎn)換器的概念,并直接收購了Golden Gate數(shù)據(jù)庫同步產(chǎn)品[13];DB2通過建立CCD表實現(xiàn)異構(gòu)復(fù)制,SQLSever提出了發(fā)布者訂閱者模式[14]。但是對于航空發(fā)動機(jī)模擬試驗臺采集的各傳感器測點數(shù)據(jù),因為其具有軍工行業(yè)性質(zhì),追求的是數(shù)據(jù)的保密性、安全性和數(shù)據(jù)同步的實時性,目前在航空發(fā)動機(jī)領(lǐng)域所采用的技術(shù),限制性較多,無法保證數(shù)據(jù)流遷移的實時性和封裝性。而利用產(chǎn)業(yè)領(lǐng)域的第三方開源軟件無法保證數(shù)據(jù)流遷移的保密性與安全性。

        基于上述關(guān)于高空模擬試驗臺數(shù)據(jù)可視化及數(shù)據(jù)流遷移所存在的不足,本文提出了基于多框架集成的航空發(fā)動機(jī)高空模擬試驗臺數(shù)據(jù)流實時遷移及可視化技術(shù),在高空模擬試驗臺數(shù)據(jù)可視化部分采用基于MyBatis-Plus框架的自動視圖層構(gòu)建技術(shù),將試驗設(shè)備各傳感器參數(shù)信息清晰直觀地展示于Vue框架的瀏覽器端表結(jié)構(gòu)空間中,供試驗人員查看和分析,在數(shù)據(jù)流遷移部分,采用了基于GateWay限流機(jī)制的JDBC接口模式及負(fù)載均衡機(jī)制的MyBatis框架模式,在保證數(shù)據(jù)流遷移的保密性和安全性的前提下,極大程度地縮短數(shù)據(jù)同步時間,滿足實時性要求。最終通過Vue框架的前端界面監(jiān)控數(shù)據(jù)流同步的過程,并給出對應(yīng)的結(jié)論。

        1 多框架前后端交互技術(shù)

        1.1 實時同步數(shù)據(jù)庫選型

        在高空模擬試驗設(shè)備試驗過程中,需要采集數(shù)百個字段名參數(shù)和數(shù)萬個測量點數(shù)據(jù),這些數(shù)據(jù)極其重要,為方便后續(xù)進(jìn)行數(shù)據(jù)分析、發(fā)動機(jī)性能評估、智能化管理和控制,需要將采集的數(shù)據(jù)存儲起來,但是使用Excel或其他非關(guān)系型數(shù)據(jù)庫可能會導(dǎo)致數(shù)據(jù)覆蓋和丟失等問題,因此本文采用Oracle數(shù)據(jù)庫作為歷史數(shù)據(jù)庫和本地數(shù)據(jù)庫的源數(shù)據(jù)庫,這是由于Oracle數(shù)據(jù)庫對于歷史數(shù)據(jù)的存儲、持久性和熱備份都有很好的優(yōu)勢[15]。Oracle的結(jié)構(gòu)主要包括兩部分,即實例結(jié)構(gòu)和數(shù)據(jù)庫系統(tǒng)。實例部分包括擴(kuò)展的JAVA操作池、共享池、日志緩沖池等,真正實現(xiàn)數(shù)據(jù)存儲的是Oracle數(shù)據(jù)庫系統(tǒng),Oracle的整體結(jié)構(gòu)和后續(xù)的數(shù)據(jù)流遷移流程如圖1所示。

        1.2 高空模擬試驗臺測量參數(shù)采集技術(shù)

        在高空模擬試驗設(shè)施運行過程中,進(jìn)排氣系統(tǒng)、冷卻系統(tǒng)、發(fā)動機(jī)參數(shù)等數(shù)據(jù)通過TCP采集,集中存儲在歷史數(shù)據(jù)庫(Oracle數(shù)據(jù)庫)中,如圖2所示。

        圖2 測量參數(shù)采集原理圖

        為了保持歷史數(shù)據(jù)庫的封裝性和完整性,后續(xù)基于數(shù)據(jù)的發(fā)動機(jī)性能評估、異常數(shù)據(jù)處理和故障診斷分析都將在本地數(shù)據(jù)庫中完成。該過程中涉及數(shù)據(jù)流的可視化展示與數(shù)據(jù)流遷移的技術(shù)點包括:數(shù)據(jù)流的可視化展示可以方便試驗員對數(shù)據(jù)進(jìn)行查看分析,直觀地展示給相關(guān)人員;數(shù)據(jù)流的遷移功能可以在極大程度地保持歷史數(shù)據(jù)庫完整性的情況下,充分挖掘所需數(shù)據(jù)信息,作為后續(xù)各類算法研究的數(shù)據(jù)源,因此數(shù)據(jù)的可視化功能和遷移功能成為整個實驗流程的關(guān)鍵。

        1.3 多框架組成結(jié)構(gòu)

        針對航空發(fā)動機(jī)高空模擬試驗臺數(shù)據(jù)流遷移及可視化功能,本文主要闡述兩部分技術(shù)要點:首先是數(shù)據(jù)流的可視化功能,該部分主要是將高空模擬試驗臺設(shè)備的各類傳感器所測量的參數(shù),包括閥門開度數(shù)據(jù)、進(jìn)出口壓力及進(jìn)出口溫度等信息可視化地展現(xiàn)于瀏覽器端。主要涉及的技術(shù)組成包括后端的MyBatis-Plus框架模式、Spring MVC設(shè)計模式、跨域數(shù)據(jù)傳輸模式及前端的Vue框架模式、Element UI技術(shù)。數(shù)據(jù)流可視化流程如圖3所示。

        其次是數(shù)據(jù)流的實時同步遷移功能,該部分的實現(xiàn)理念是將匯集于Oracle數(shù)據(jù)庫中的集合數(shù)據(jù)進(jìn)行數(shù)據(jù)提煉,因為Oracle數(shù)據(jù)庫中的數(shù)據(jù)未全部用于后續(xù)的故障診斷算法或為其他實現(xiàn)提供數(shù)據(jù)源支持,且歷史數(shù)據(jù)庫一般不能進(jìn)行改變,直接操作歷史數(shù)據(jù)庫會破壞其封裝性,造成表結(jié)構(gòu)空間的改變、破壞數(shù)據(jù)的原子性。因此需要將部分需要利用的數(shù)據(jù)同步到本地數(shù)據(jù)庫中。在同步的過程中,依據(jù)高空模擬試驗臺測點參數(shù)數(shù)量級、測點參數(shù)字段名個數(shù)和同步時間的要求,主要采用3種方式:基于觸發(fā)條件的原生觸發(fā)器模式、基于GateWay限流機(jī)制的JDBC接口融合全量/增量模式和基于負(fù)載均衡機(jī)制的MyBatis框架融合多線程并行處理流模式,來針對不同的情況完成數(shù)據(jù)的遷移功能。該部分主要涉及的技術(shù)組成包括后端的MyBatis框架模式、JDBC接口模式、觸發(fā)器模式、負(fù)載均衡權(quán)選擇器模式、GateWay限流模式、Spring MVC設(shè)計模式、Spring Boot框架模式及前端的Vue框架模式、Element UI技術(shù)。數(shù)據(jù)流遷移整體流程如圖4所示。

        圖4 數(shù)據(jù)流遷移整體流程

        2 數(shù)據(jù)流可視化及遷移技術(shù)

        2.1 基于Vue的高空臺試驗數(shù)據(jù)可視化技術(shù)研究

        為了在航空發(fā)動機(jī)高空模擬試驗過程中,數(shù)據(jù)流可以可視化地呈現(xiàn)于瀏覽器端供試驗人員查看和分析,而無須再從數(shù)據(jù)庫中查詢相關(guān)的數(shù)據(jù),則需要利用基于MyBatis-Plus 框架的自動視圖層構(gòu)建可視化技術(shù)的支持,這個過程中涉及到多個框架的交互和數(shù)據(jù)流跨域傳輸?shù)年P(guān)鍵點,首先介紹此技術(shù)中涉及的幾大類框架結(jié)構(gòu)及其功能。

        (1) MyBatis-Plus框架。

        MyBatis-Plus框架是用于Java與底層數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)交互與映射的高級框架模式,根據(jù)底層數(shù)據(jù)庫中所存在的數(shù)據(jù)類型及字段名名稱,構(gòu)建航空發(fā)動機(jī)高空模擬試驗臺實體類對象,實現(xiàn)BaseMapper接口后,完成自動視圖層構(gòu)建程序,即可實現(xiàn)Spring MVC的三層遞進(jìn)結(jié)構(gòu)模式,自動生成高空模擬試驗臺實體類對象中的字段名屬性,這些字段名屬性與數(shù)據(jù)庫中對應(yīng)數(shù)據(jù)表的字段名名稱一一映射,操作程序即可修改或重新為字段名信息進(jìn)行賦值,利用MyBatis-Plus框架即可實現(xiàn)自動數(shù)據(jù)查詢、修改和重置等功能,將數(shù)據(jù)表信息讀取到高空模擬實驗臺實體類對象內(nèi)部,便于后續(xù)操作。

        (2) Spring MVC設(shè)計模式。

        Spring MVC設(shè)計模式,即Model(模型),View(視圖),Controller(控制器)三層結(jié)構(gòu)模式[16-17],采用循環(huán)依賴注入的邏輯,將視圖層注入模型中,并將封裝好的模型層注入前端控制器中,便可將數(shù)據(jù)在瀏覽器端展示,MyBatis-Plus的自動視圖層構(gòu)建技術(shù)就用到了Spring MVC的三層遞進(jìn)結(jié)構(gòu)模式[18],分別對應(yīng)Repository層,Service層和Controller層。Repository層中編寫查詢高空模擬試驗臺對應(yīng)表結(jié)構(gòu)空間中的數(shù)據(jù)的功能,將其注入到Service層中,實現(xiàn)對應(yīng)的接口及實現(xiàn)類,最終將Service層注入Controller層中,在瀏覽器中調(diào)用Controller層中的根目錄路徑,即可將數(shù)據(jù)呈現(xiàn)于瀏覽器中。

        (3) 數(shù)據(jù)流跨域傳輸技術(shù)。

        因為最終需要呈現(xiàn)的高空模擬試驗臺測量參數(shù)是在Vue框架對應(yīng)表結(jié)構(gòu)中,而Spring MVC設(shè)計模式中的Controller層是在給定根路徑下的瀏覽器端中呈現(xiàn)最終的數(shù)據(jù),想要將數(shù)據(jù)呈現(xiàn)于Vue框架下設(shè)定的表結(jié)構(gòu)中,則需要數(shù)據(jù)的跨域傳輸,在主程序中加入對于跨域請求GET、POST、DELETE、SELECT支持的屏蔽端口傳輸?shù)某绦蚣纯蓪崿F(xiàn)數(shù)據(jù)的跨域傳輸。

        該過程的實現(xiàn)流程如下。

        ① 首先利用TCP協(xié)議,將傳感器測量的試驗設(shè)備參數(shù)數(shù)據(jù)存儲于歷史數(shù)據(jù)庫中,試驗參數(shù)主要包括閥門開度,進(jìn)出口壓力測量值,進(jìn)出口溫度測量值及時間戳等數(shù)據(jù)信息。

        ② 利用Java作為第三方語言操作數(shù)據(jù)庫,配置連接信息,給定驅(qū)動及數(shù)據(jù)庫連接池信息,使得程序與歷史數(shù)據(jù)庫之間建立連接關(guān)系。

        ③ 創(chuàng)建航空發(fā)動機(jī)高空模擬試驗臺實體類對象,實現(xiàn)BaseMapper接口,自動生成實體類對象內(nèi)部屬性值,與數(shù)據(jù)表字段名一一映射。自動生成視圖層層遞進(jìn)邏輯關(guān)系,自動生成數(shù)據(jù)表數(shù)據(jù)檢索功能,并將最終所獲取的數(shù)據(jù)表信息封裝于高空模擬試驗臺實體類對象內(nèi)部,用于后續(xù)前端界面的展示。

        ④ 利用Vue框架,編寫屏蔽端口的跨域數(shù)據(jù)流傳輸程序,使得封裝于高空模擬試驗臺內(nèi)部的數(shù)據(jù)信息可視化地呈現(xiàn)于Vue框架的瀏覽器端表結(jié)構(gòu)中,至此整個執(zhí)行流程完成。

        最終呈現(xiàn)于Vue框架瀏覽器端表結(jié)構(gòu)中的數(shù)據(jù)信息如圖5所示。

        圖5 高空模擬試驗臺參數(shù)測量信息展示

        2.2 基于GateWay限流機(jī)制的JDBC接口模式

        因高空模擬試驗臺在試驗過程中所測量參數(shù)的保密性及重要性,利用基于觸發(fā)條件的原生觸發(fā)器模式和開源的數(shù)據(jù)流遷移技術(shù)無法保證數(shù)據(jù)的實時性及安全性,所以本文采用了基于GateWay限流機(jī)制下的JDBC接口融合全量/增量數(shù)據(jù)流遷移模式來實現(xiàn)數(shù)據(jù)實時同步的功能。

        JDBC接口模式主要包括以下6部分:配置數(shù)據(jù)庫連接信息層、Druid數(shù)據(jù)源連接層、動態(tài)SQL語句切換層、定時器任務(wù)層、GateWay限流機(jī)制層和最終的主程序。所有的功能最終集成于主程序中,以定時任務(wù)的形式不斷地將數(shù)據(jù)流進(jìn)行遷移,從而完成數(shù)據(jù)的同步功能,程序的執(zhí)行流程如圖6所示。

        圖6 基于GateWay限流機(jī)制的JDBC接口模式程序執(zhí)行流程圖

        首先配置.yml文件,包含歷史數(shù)據(jù)庫和本地數(shù)據(jù)庫的所有配置信息;給定Druid數(shù)據(jù)源,初始化數(shù)據(jù)庫常量池的配置參數(shù),通過數(shù)據(jù)庫連接函數(shù)將配置文件內(nèi)的信息解析到定時程序中;設(shè)置定時器,使程序一直處于啟動狀態(tài),給定刷新率。在定時程序執(zhí)行過程中,通過Map集合的鍵值對存儲高空臺試驗編號和其對應(yīng)的數(shù)據(jù)表信息,通過動態(tài)SQL指令,實現(xiàn)不同數(shù)據(jù)表的數(shù)據(jù)同步操作,最終將定時任務(wù)程序注入主程序邏輯中。當(dāng)有新的數(shù)據(jù)增添到歷史數(shù)據(jù)庫并提交時,主程序可以實時監(jiān)測到數(shù)據(jù)量的改變并將數(shù)據(jù)刷新插入到本地數(shù)據(jù)庫中。在數(shù)據(jù)流遷移過程中,每次數(shù)據(jù)同步的數(shù)據(jù)量不同,數(shù)據(jù)量過大時會造成數(shù)據(jù)同步的堵塞,前一次同步的數(shù)據(jù)發(fā)生的堵塞會使得后續(xù)的同步無法進(jìn)行,這樣急劇地增加了數(shù)據(jù)同步的時間。當(dāng)數(shù)據(jù)堵塞嚴(yán)重時,會造成數(shù)據(jù)庫發(fā)生死鎖的情況,數(shù)據(jù)處于堵塞狀態(tài),后續(xù)的同步請求持續(xù)等待,處于僵持狀態(tài),當(dāng)死鎖狀態(tài)過長時,會增加服務(wù)器雪崩的可能,在這種情況下,利用GateWay限流機(jī)制,控制每一次的同步量處于設(shè)定的數(shù)量集范圍內(nèi),這種設(shè)定可以控制每一次的數(shù)據(jù)同步量都可處于最優(yōu)的數(shù)量級,且依據(jù)觸發(fā)條件可以動態(tài)切換全量及增量同步方式,即可實現(xiàn)數(shù)據(jù)的有效遷移,避免死鎖的發(fā)生。

        其中配置數(shù)據(jù)庫連接信息層主要包括數(shù)據(jù)庫連接時所需要的用戶名信息、密碼信息、驅(qū)動配置信息和URL信息。還包括數(shù)據(jù)庫池數(shù)量及初始化參數(shù)、試驗編號的存儲路徑和定時任務(wù)執(zhí)行時間等內(nèi)容。

        Druid數(shù)據(jù)源配置層將連接好的數(shù)據(jù)庫信息以Druid數(shù)據(jù)連接源形式進(jìn)行封裝,給定池化參數(shù)的初始化信息,完成數(shù)據(jù)庫的連接操作。并將最終配置完成的數(shù)據(jù)庫放入定時任務(wù)中。

        動態(tài)SQL語句切換層主要是將SQL語句進(jìn)行編譯,實現(xiàn)其所需達(dá)到的目標(biāo),該層主要包括兩個部分,第一部分是反射解析歷史數(shù)據(jù)表的表結(jié)構(gòu)信息,解析源表的字段名信息、數(shù)據(jù)結(jié)構(gòu)、注釋等內(nèi)容,從而構(gòu)建與歷史數(shù)據(jù)表表結(jié)構(gòu)空間完全一致的本地數(shù)據(jù)表,為數(shù)據(jù)同步提供表結(jié)構(gòu)空間支持。第二部分主要是全量/增量數(shù)據(jù)同步切換模式,如圖7所示。

        圖7 數(shù)據(jù)同步模式切換邏輯

        當(dāng)數(shù)據(jù)同步主程序啟動時,歷史數(shù)據(jù)庫中已存在數(shù)據(jù),若此時本地數(shù)據(jù)庫表中存在不需要的數(shù)據(jù)時,則執(zhí)行全量同步方式。該方式主要包含以下3部分。

        ① 獲取歷史表數(shù)據(jù),將本地表清空,將數(shù)據(jù)同步至本地表,之后再執(zhí)行增量同步方式,將歷史數(shù)據(jù)表后續(xù)不斷增加的數(shù)據(jù)同步到本地表中。當(dāng)本地數(shù)據(jù)庫的目標(biāo)表中不存在數(shù)據(jù)時,則直接執(zhí)行增量同步方式,將歷史數(shù)據(jù)庫中的數(shù)據(jù)不斷同步到本地數(shù)據(jù)庫中。

        ② 定時任務(wù)層。將連接配置完成后的Druid連接池利用Connection關(guān)鍵字進(jìn)行數(shù)據(jù)通道連接,并將動態(tài)SQL語句與定時任務(wù)進(jìn)行關(guān)聯(lián),解析并獲取定時任務(wù)執(zhí)行時間,開啟定時任務(wù),不斷獲取歷史數(shù)據(jù)庫表結(jié)構(gòu)空間中的數(shù)據(jù),并將數(shù)據(jù)同步到本地數(shù)據(jù)庫的表結(jié)構(gòu)空間中。

        ③ 主函數(shù)層。將定時任務(wù)層所執(zhí)行的所有邏輯的外部設(shè)置監(jiān)控系統(tǒng),實時監(jiān)測數(shù)據(jù)流的執(zhí)行進(jìn)度,統(tǒng)計數(shù)據(jù)執(zhí)行的時間和數(shù)據(jù)同步量。

        2.3 基于負(fù)載均衡機(jī)制的MyBatis框架模式

        MyBatis框架模式主要以注入層的形式實現(xiàn),主要包括Repository層、Service層,以及Controller層外部設(shè)置數(shù)據(jù)監(jiān)控邏輯,用以監(jiān)控數(shù)據(jù)同步的狀態(tài)?;谪?fù)載均衡機(jī)制的MyBatis框架模式如圖8所示,核心研究對象為數(shù)據(jù)流遷移從歷史數(shù)據(jù)庫到本地數(shù)據(jù)庫的執(zhí)行進(jìn)程,因此采用一主一從的多數(shù)據(jù)源方式。

        圖8 基于負(fù)載均衡機(jī)制的MyBatis框架模式

        引入多線程的概念,該多線程并行傳輸流與傳統(tǒng)的多線程方式不同,該方式采用分治并行處理,將數(shù)據(jù)進(jìn)行分割,分割塊選為100,則每個線程處理幾百行數(shù)據(jù),多個線程同時并行執(zhí)行數(shù)據(jù)的索引和插入功能,將極大程度地提高數(shù)據(jù)同步的效率,滿足實時性要求。

        創(chuàng)建航空發(fā)動機(jī)高空臺字段名參數(shù)實體類對象,構(gòu)建Repository層的數(shù)據(jù)獲取和插入功能接口,將其注入Dao層來完成數(shù)據(jù)源配置。最終將連接好的Dao層注入Service層,加入多線程并行傳輸流邏輯,分配表結(jié)構(gòu),獲取試驗臺編號信息,自動檢索同步表名稱。

        Repository層主要是實現(xiàn)數(shù)據(jù)庫的配置信息,采用主從數(shù)據(jù)源配置歷史數(shù)據(jù)庫信息及本地數(shù)據(jù)庫信息,連接歷史數(shù)據(jù)庫,獲取歷史數(shù)據(jù)表字段名及數(shù)據(jù)信息;連接本地數(shù)據(jù)庫,構(gòu)建與需要同步的歷史數(shù)據(jù)表表結(jié)構(gòu)空間相同的本地數(shù)據(jù)表,將數(shù)據(jù)執(zhí)行插入操作。

        將連接好的Repository層注入Dao層,Dao層主要是從Mapper文件中利用元注解解析出SQL語句和需要執(zhí)行的函數(shù)功能,將高空模擬試驗臺數(shù)據(jù)表字段名信息與高空模擬試驗臺實體類屬性對象進(jìn)行對應(yīng)關(guān)聯(lián),整體連接好的結(jié)構(gòu)定義為Service層。

        將Service層注入Controller層中,利用定時程序解析獲得定時時長和外部監(jiān)控邏輯,實時監(jiān)控數(shù)據(jù)流的傳輸過程,最終得到所需的執(zhí)行結(jié)果。負(fù)載均衡作用于主程序的邏輯中,負(fù)載均衡的引入是為了解決某一線程處理數(shù)據(jù)同步過程中,因數(shù)據(jù)量較大造成的同步堵塞的問題。當(dāng)某一個線程所需要同步的數(shù)據(jù)量過大時,此時觸發(fā)負(fù)載均衡權(quán)重選擇器的邏輯,該線程的負(fù)載均衡權(quán)重值較大,此時,系統(tǒng)會將其任務(wù)量分配給其他線程同時來完成,極大程度地解決了單一線程超負(fù)荷工作的情況,避免了線程堵塞和數(shù)據(jù)庫死鎖現(xiàn)象的發(fā)生。

        3 數(shù)據(jù)流遷移實時性驗證

        因為高空模擬試驗臺試驗流程中采集的數(shù)據(jù)量巨大,分布于不同的表結(jié)構(gòu)空間中,每次需要同步多個表的數(shù)據(jù),每個表的同步時間是統(tǒng)計開始同步時刻的時間戳節(jié)點到同步完成時的時間戳節(jié)點之間差值,本文采用基于Vue框架的前端框架實時監(jiān)控數(shù)據(jù)流傳輸過程中各個表的同步信息,其中前端界面包含3部分主要功能。

        ① 用戶登錄界面:采用基于Nacos服務(wù)注冊與發(fā)現(xiàn)的設(shè)計原則,匹配正確的用戶名及密碼,支持多用戶登錄模式。

        ② JDBC接口數(shù)據(jù)同步監(jiān)控:主要是監(jiān)控JDBC接口模式的數(shù)據(jù)流遷移的同步時長,包含不同數(shù)據(jù)表的切換功能、同步表名稱、同步數(shù)據(jù)量、同步時長、同步狀態(tài)等信息。

        ③MyBatis框架數(shù)據(jù)同步監(jiān)控:主要是監(jiān)控MyBatis框架模式的數(shù)據(jù)流遷移的同步時長,包含不同數(shù)據(jù)表的切換功能、同步表名稱、同步數(shù)據(jù)量、同步時長、同步狀態(tài)等信息。

        3.1 基于Nacos服務(wù)注冊與發(fā)現(xiàn)的用戶登錄界面

        登陸界面主要包括用戶名及用戶密碼信息,用戶名及密碼一一對應(yīng)存儲于Oracle數(shù)據(jù)庫中,以鍵值對的形式取出,這樣可以滿足多用戶登錄整個系統(tǒng)的模式。當(dāng)用戶名與密碼匹配成功,即可進(jìn)入首頁,Nacos服務(wù)的注冊與發(fā)現(xiàn)設(shè)計原則可以解決在同一時間有多用戶登錄服務(wù)的情況,其邏輯校驗功能可以排除非法登錄信息的情況。在登錄頁面中,首先會根據(jù)用戶輸入的用戶名密碼校驗數(shù)據(jù)的準(zhǔn)確性,當(dāng)用戶名和密碼組成的鍵值對形式處于完全正確的情況下才會登錄整個平臺內(nèi)部數(shù)據(jù)流監(jiān)控的頁面。同時Nacos服務(wù)也會在該過程中監(jiān)控整個登錄用戶名的合法性。當(dāng)多用戶同時進(jìn)行登錄時,Nacos服務(wù)會識別登錄的順序,利用JUC并發(fā)包下的semphore機(jī)制來排序登錄的用戶信息,從而完成整個登錄流程。用戶登陸界面如圖9所示。

        圖9 用戶登錄界面

        3.2 GateWay限流機(jī)制的JDBC接口監(jiān)控界面

        JDBC接口融合全量/增量的數(shù)據(jù)實時同步技術(shù),具體選擇增量還是全量的方式則需要利用GateWay的限流機(jī)制來進(jìn)行判斷。當(dāng)每次新增的數(shù)據(jù)量不大時,為防止同步數(shù)據(jù)的缺失及因網(wǎng)絡(luò)延遲等造成的數(shù)據(jù)丟失問題,選擇執(zhí)行全量同步將需要的數(shù)據(jù)再全部同步一次。當(dāng)數(shù)據(jù)量很大時,則需要利用GateWay機(jī)制調(diào)用增量式的同步方法來完成,且每一次同步限定其同步數(shù)據(jù)量處于機(jī)制調(diào)控允許的范圍內(nèi),防止同步堵塞產(chǎn)生死鎖的可能。該方式的數(shù)據(jù)同步量為平均每秒200+行數(shù)據(jù),滿足實時性要求,對應(yīng)數(shù)據(jù)如表1所示。同步時長與同步數(shù)據(jù)量關(guān)系如圖10所示,監(jiān)控界面如圖11所示。并且圖11所示界面中可以增加同步模式,同步表試驗編號等額外組件按鈕,擴(kuò)展性和泛化能力好,當(dāng)需要改變同步模式及不同表的同步過程時,只需自定義切換即可更改前后端交互的接口。

        表1 JDBC接口方式數(shù)據(jù)同步式數(shù)據(jù)展示

        圖10 JDBC接口模式數(shù)據(jù)同步量與同步時間關(guān)系表示圖

        圖11 JDBC接口模式數(shù)據(jù)同步監(jiān)控界面

        3.3 負(fù)載均衡機(jī)制的MyBatis框架監(jiān)控界面

        負(fù)載均衡的提出正是為解決在多任務(wù)情況下,數(shù)據(jù)讀取量大、數(shù)據(jù)多、情況較為復(fù)雜的場景中出現(xiàn)的問題。而基于MyBatis框架融合多線程并行處理流的數(shù)據(jù)實時同步這一模式,正是針對大數(shù)據(jù)量、多字段名情況而設(shè)計的方法,利用負(fù)載均衡機(jī)制對其進(jìn)行相應(yīng)優(yōu)化,優(yōu)化每一塊線程并行處理流的執(zhí)行速度,讓每一部分疊加起來,使整個系統(tǒng)執(zhí)行的速度顯著提升,在該流程中,主要是監(jiān)控數(shù)據(jù)流同步的數(shù)據(jù)量,數(shù)據(jù)同步時間及日期等相關(guān)信息內(nèi)容。

        其中有切換數(shù)據(jù)同步模式的雙選功能,并且預(yù)留了增配接口,當(dāng)有新的方式需要加入時,可以動態(tài)進(jìn)行選擇加入,最終向試驗員展示的是數(shù)據(jù)同步總量、數(shù)據(jù)同步時間和同步狀態(tài)。在整個平臺中,選擇需要試驗的編號,即可完成對應(yīng)試驗編號數(shù)據(jù)的同步,且試驗可進(jìn)行擴(kuò)展,可增加試驗編號與其對應(yīng)的數(shù)據(jù)表。數(shù)據(jù)流遷移過程也可同步或分步進(jìn)行,該方式的數(shù)據(jù)同步量為平均每秒300+行數(shù)據(jù),滿足實時性的要求,對應(yīng)數(shù)據(jù)如表2所示。同步時長與同步數(shù)據(jù)量關(guān)系如圖12所示,監(jiān)控界面如圖13所示。并且圖13所示界面中可以增加同步模式,同步表試驗編號等額外組件按鈕、擴(kuò)展性和泛化能力好,當(dāng)需要改變同步模式與不同表的同步過程時,只需自定義切換即可更改前后端交互的接口。

        表2 MyBatis框架數(shù)據(jù)同步模式數(shù)據(jù)展示

        圖12 MyBatis框架模式數(shù)據(jù)同步量與同步時間關(guān)系表示圖

        圖13 Mybatis框架模式數(shù)據(jù)同步監(jiān)控界面

        4 結(jié)束語

        本文提出了采用多框架集成的方式來實現(xiàn)高空模擬試驗臺數(shù)據(jù)流可視化及遷移的技術(shù):通過基于MyBatis-Plus的自動視圖層構(gòu)建模式將存儲于底層數(shù)據(jù)庫中的各傳感器測量參數(shù)信息跨域呈現(xiàn)于Vue框架的瀏覽器端,可供試驗員查看分析;利用基于GateWay限流機(jī)制的JDBC接口融合全量/增量數(shù)據(jù)實時同步模式及基于負(fù)載均衡機(jī)制的MyBatis框架融合多線程并行處理流模式可實現(xiàn)數(shù)據(jù)的實時遷移功能,前端采用Vue框架監(jiān)控數(shù)據(jù)流傳輸過程,可實時監(jiān)測數(shù)據(jù)同步的流程。通過對這兩部分功能的驗證,得到以下結(jié)論。

        ① 航空發(fā)動機(jī)高空模擬試驗臺各測點數(shù)據(jù)可以通過基于MyBatis-Plus的自動視圖層構(gòu)建技術(shù)通過檢索底層數(shù)據(jù)庫表結(jié)構(gòu)中的信息,清晰地呈現(xiàn)于瀏覽器端界面,數(shù)據(jù)展示過程中,完整性對應(yīng)性好,試驗員可以直觀地查看分析數(shù)據(jù)所蘊含的內(nèi)在信息,數(shù)據(jù)可視化分析具有參考價值。

        ② 數(shù)據(jù)同步的實時性極大地提高。兩種數(shù)據(jù)流遷移技術(shù)均可保證在每秒內(nèi)實現(xiàn)200以上的數(shù)據(jù)同步量,能在短時間內(nèi)高效地完成數(shù)據(jù)庫之間的數(shù)據(jù)傳輸,保證了實時性。能夠?qū)崿F(xiàn)數(shù)據(jù)的完全遷移,在傳輸過程中不丟失數(shù)據(jù)和保證準(zhǔn)確性,能夠?qū)崿F(xiàn)完全的數(shù)據(jù)同步。

        ③ 自動檢索同步表功能齊全。同步表名稱可根據(jù)試驗編號自動選擇,完成不同字段表的實時數(shù)據(jù)同步功能,擴(kuò)展能力強。當(dāng)需要添加其他試驗表同步業(yè)務(wù)時,只需給定試驗編號。該試驗編號對應(yīng)的同步表可以完成數(shù)據(jù)的實時同步任務(wù)。

        猜你喜歡
        可視化數(shù)據(jù)庫信息
        基于CiteSpace的足三里穴研究可視化分析
        基于Power BI的油田注水運行動態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        基于CGAL和OpenGL的海底地形三維可視化
        “融評”:黨媒評論的可視化創(chuàng)新
        傳媒評論(2019年4期)2019-07-13 05:49:14
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        丰满人妻一区二区三区视频53| 大香蕉久久精品一区二区字幕| 青青草成人免费播放视频| 熟女人妻中文字幕av| 国产精品18久久久| 青草福利在线| 精品少妇后入一区二区三区| 久久综合久久综合久久| 亚洲精品乱码久久久久久中文字幕 | 亚洲成av人无码免费观看| 宅男视频一区二区三区在线观看 | 亚洲精品国产一二三区| 亚洲av无码精品色午夜在线观看| 久久久亚洲欧洲日产国产成人无码| 国产伦精品一区二区三区在线| 青青草大香蕉视频在线观看| 亚洲熟女乱色综合亚洲av| 无码人妻视频一区二区三区99久久 | 亚洲高清三区二区一区| 国产精品毛片一区二区| 久久精品国产91久久性色tv| 日本成年少妇人妻中文字幕| 最新国产精品拍自在线观看| 人妻在线日韩免费视频| 精品久久综合一区二区| 国产一区二区白浆在线观看| 草色噜噜噜av在线观看香蕉| 亚洲综合色丁香婷婷六月图片| 青青青草国产熟女大香蕉| 视频在线观看国产自拍 | 无码人妻一区二区三区免费| 中文字幕亚洲精品码专区| 精品亚洲第一区二区三区| 日本三级欧美三级人妇视频黑白配 | 欧美精品久久久久久久久| 一区二区三区日本在线| 99精品欧美一区二区三区美图| 人人妻人人玩人人澡人人爽| 狠狠躁夜夜躁人人爽天天不卡软件| 天码人妻一区二区三区| 女的把腿张开男的猛戳出浆|