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

?

一種分布式數(shù)據(jù)管理中心軟件架構(gòu)設(shè)計(jì)

2022-07-18 00:08孟景濤王濤蔣浩孫婧徐朽輝
關(guān)鍵詞:數(shù)據(jù)管理分布式

孟景濤 王濤 蔣浩 孫婧 徐朽輝

摘要:隨著國產(chǎn)化新研航天地面測控?cái)?shù)傳裝備需求的爆發(fā)式增長,帶來了更復(fù)雜多樣的數(shù)據(jù),傳統(tǒng)單體數(shù)據(jù)庫在此類數(shù)據(jù)面前明顯吃力。為滿足各型裝備用戶對高效、綜合運(yùn)維管理的客觀需求,提出了一種基于國產(chǎn)化面向服務(wù)軟件架構(gòu)的多維數(shù)據(jù)管理平臺,對吞吐數(shù)據(jù)進(jìn)行統(tǒng)一管理,來完成測控?cái)?shù)傳設(shè)備的數(shù)據(jù)積累,形成良性循環(huán),逐步提高測控?cái)?shù)傳設(shè)備可用度與可靠性。后續(xù)其他類似的項(xiàng)目數(shù)據(jù)中心部分建設(shè),只需要對數(shù)據(jù)中心進(jìn)行參數(shù)配置,即可實(shí)現(xiàn)數(shù)據(jù)管理功能。同時(shí)為項(xiàng)目的微服務(wù)化提供技術(shù)棧架構(gòu)支撐。

關(guān)鍵詞:分布式;數(shù)據(jù)管理;Linux;Zookeeper;

中圖分類號:TP319文獻(xiàn)標(biāo)志碼:A文章編號:1008-1739(2022)10-49-5

分布式數(shù)據(jù)管理中心軟件[1]是航天地面測控?cái)?shù)傳裝備的組成部分,作為整個(gè)系統(tǒng)的數(shù)據(jù)管理中心,擔(dān)負(fù)著整個(gè)系統(tǒng)設(shè)備的數(shù)據(jù)存儲和管理等功能[2]。現(xiàn)有系統(tǒng)中數(shù)據(jù)存儲的形式主要有XML數(shù)據(jù)文件[3]、自定義格式數(shù)據(jù)文件和SQL Lite等,在數(shù)據(jù)安全性、擴(kuò)展性和維護(hù)性上與現(xiàn)有應(yīng)用場景和技術(shù)已不再匹配,并且現(xiàn)有系統(tǒng)架構(gòu)不支持高并發(fā)和大批量的數(shù)據(jù)存儲和數(shù)據(jù)檢索,所以提出將系統(tǒng)中的業(yè)務(wù)數(shù)據(jù)、基礎(chǔ)配置及其日志信息數(shù)據(jù)剝離出來,以數(shù)據(jù)庫為支撐,建立數(shù)據(jù)中心,實(shí)現(xiàn)對數(shù)據(jù)存儲和訪問的集中化管理[4]。

對測控軟件從整體架構(gòu)上進(jìn)行了全新的設(shè)計(jì),實(shí)現(xiàn)對數(shù)據(jù)存儲以數(shù)據(jù)庫為基礎(chǔ),通過模塊化將系統(tǒng)中的業(yè)務(wù)數(shù)據(jù)、配置數(shù)據(jù)和日志信息數(shù)據(jù)由之前的分散性和數(shù)據(jù)格式的多樣性進(jìn)行了數(shù)據(jù)存儲的統(tǒng)一化、訪問的規(guī)范化和數(shù)據(jù)的獨(dú)立性。以此建立數(shù)據(jù)中心,實(shí)現(xiàn)數(shù)據(jù)和業(yè)務(wù)的隔離,在數(shù)據(jù)的管理和操作上方便、快捷、高效;在數(shù)據(jù)維護(hù)上簡單、安全[5];實(shí)現(xiàn)數(shù)據(jù)的集中控制、數(shù)據(jù)一致性和可維護(hù)性、數(shù)據(jù)共享、減少數(shù)據(jù)的冗余度、數(shù)據(jù)安全和數(shù)據(jù)的備份[6]。建立數(shù)據(jù)中心后,系統(tǒng)模塊劃分更加合理,降低了系統(tǒng)的耦合性,增強(qiáng)了系統(tǒng)訪問的高效性、可維護(hù)性和可擴(kuò)展性。

目標(biāo)的項(xiàng)目架構(gòu)在具有關(guān)系數(shù)據(jù)接口插件和ES(elasticsearch)數(shù)據(jù)接口插件上使用了Zookeeper,Kafka,Mycat等開源服務(wù),通過對MySQL數(shù)據(jù)庫、神通數(shù)據(jù)庫、redis數(shù)據(jù)庫和ES數(shù)據(jù)存儲的使用,實(shí)現(xiàn)在不同場景下對于數(shù)據(jù)存儲和檢索的支持,項(xiàng)目架構(gòu)如圖1所示。

項(xiàng)目架構(gòu)對于系統(tǒng)性能、可用性和數(shù)據(jù)安全性均有優(yōu)化作用,能夠支持當(dāng)前的業(yè)務(wù)需求,對系統(tǒng)的易維護(hù)性也有很好的支持。經(jīng)過實(shí)驗(yàn)驗(yàn)證,數(shù)據(jù)存儲服務(wù)在國產(chǎn)環(huán)境中的效率評估也有不凡表現(xiàn)。

2.1服務(wù)之間接口訪問設(shè)計(jì)

創(chuàng)建Dbserver插件處理關(guān)系數(shù)據(jù)[7],訂閱消息cti/dbserver/ request/*(cti/dbserver/receive/接口命令字/交易流水號),返回消息發(fā)送cti/dbserver/response/*(cti/dbserver/response/請求時(shí)命令字/請求時(shí)交易流水號)。

Dbserver插件通過thrift提供的RPC接口通信方式作為與數(shù)據(jù)庫服務(wù)間調(diào)用方式,調(diào)用方和服務(wù)提供方通過Thrift方式生成統(tǒng)一的方法string invoke(1:string para),入?yún)⒑头祷刂稻鶠閖son傳輸,這樣保持具體接口方法增加和修改的穩(wěn)定性。

出入?yún)⒔y(tǒng)一格式:

入?yún)ⅲ簕“reqtype”:“請求接口名”,“param”: “{param1”:“param2value”,“param1”:“param2value”}}

出參:{“restype”:“返回?cái)?shù)據(jù)類型”,“param”:{“param1”:“param2value”,“param1”:“param2value”}}

ES插件部分與服務(wù)通信采用同樣方式處理。

2.2關(guān)系數(shù)據(jù)服務(wù)插件

關(guān)系數(shù)據(jù)服務(wù)插件與系統(tǒng)其他模塊間通過異步消息方式交互[8],上節(jié)描述了交互的方式及報(bào)文格式,插件在加載時(shí)向zk讀取可用關(guān)系數(shù)據(jù)服務(wù)列表,根據(jù)配置文件配置,可以采用主備方式優(yōu)先調(diào)用主數(shù)據(jù)服務(wù),當(dāng)主數(shù)據(jù)服務(wù)異常時(shí)切換到備用服務(wù);或者采用無主混合模式隨機(jī)選用可用服務(wù)進(jìn)行接口調(diào)用,當(dāng)某一臺數(shù)據(jù)服務(wù)異常后插件主動剔除異常服務(wù)的鏈接。

關(guān)系數(shù)據(jù)服務(wù)插件架構(gòu)如圖2所示,插件采用zk提供的對于節(jié)點(diǎn)觀察的方式,通過zk的機(jī)制來進(jìn)行及時(shí)的關(guān)系數(shù)據(jù)服務(wù)的主動斷開或者加入;關(guān)系數(shù)據(jù)插件與關(guān)系數(shù)據(jù)服務(wù)之間通過Thrift框架進(jìn)行接口調(diào)用,連接的維持方法調(diào)用細(xì)節(jié)通過框架透明,只需要關(guān)注業(yè)務(wù)即可。

2.3關(guān)系數(shù)據(jù)服務(wù)

關(guān)系數(shù)據(jù)服務(wù)模塊由接口層、邏輯層和數(shù)據(jù)庫操作層組成[4],向上通過Thrift的RPC通信框架承接測控邏輯層的業(yè)務(wù)接口需求向下與Mycat交互,Mycat經(jīng)過數(shù)據(jù)庫代理對數(shù)據(jù)庫的分布式進(jìn)行透明化處理,關(guān)系數(shù)據(jù)服務(wù)模塊如圖3所示。

業(yè)務(wù)數(shù)據(jù)服務(wù)負(fù)責(zé)業(yè)務(wù)相關(guān)的配置報(bào)表等持久化數(shù)據(jù),在邏輯劃分上分為接口層、邏輯層和數(shù)據(jù)庫連接層。各個(gè)層直接通過虛基類的方式向上提供功能,接口層承接上層對于功能的需求向外釋放功能接口,邏輯層根據(jù)業(yè)務(wù)需要和數(shù)據(jù)庫的設(shè)計(jì)進(jìn)行數(shù)據(jù)加工,數(shù)據(jù)庫操作層負(fù)責(zé)數(shù)據(jù)庫的基礎(chǔ)操作功能和數(shù)據(jù)庫連接池的保持。

在數(shù)據(jù)庫連接層可根據(jù)配置方式選擇采用“讀寫都是MySQL”“寫MySQL+神通讀MySQL”“讀寫都是神通”的模式控制。

在數(shù)據(jù)連接層可根據(jù)配置文件配置主備2個(gè)Mycat組,連接層自檢測鏈接的可用性,當(dāng)主Mycat可用性異常時(shí)自動切換到備用Mycat連接,上層業(yè)務(wù)層無感知。

2.4 ES日志數(shù)據(jù)插件

ES日志數(shù)據(jù)服務(wù)插件與系統(tǒng)其他模塊間通過異步消息方式交互,上文描述了交互的方式及報(bào)文格式,插件在加載時(shí)向zk讀取可用ES日志數(shù)據(jù)服務(wù)列表,根據(jù)配置文件配置可以采用主備方式優(yōu)先調(diào)用主ES服務(wù),當(dāng)主ES服務(wù)異常時(shí)切換到備用服務(wù);或者采用無主混合模式隨機(jī)選用可用服務(wù)進(jìn)行接口調(diào)用,當(dāng)某一臺ES服務(wù)異常后插件主動剔除異常服務(wù)的鏈接,日志數(shù)據(jù)插件架構(gòu)如圖4所示。

ES日志數(shù)據(jù)服務(wù)插件采用zk提供的對于節(jié)點(diǎn)觀察的方式,通過zk的機(jī)制來進(jìn)行及時(shí)的ES數(shù)據(jù)服務(wù)的主動斷開或者加入。ES數(shù)據(jù)插件與ES數(shù)據(jù)服務(wù)之間通過Thrift框架進(jìn)行接口調(diào)用,連接的維持方法調(diào)用細(xì)節(jié)通過框架透明,只需要關(guān)注業(yè)務(wù)即可。

2.5日志模塊服務(wù)

由于項(xiàng)目中日志的數(shù)據(jù)輸出量比較大,所以不能不考慮對整個(gè)系統(tǒng)性能的影響。從另外一方面來看,大量的日志數(shù)據(jù)需要方便檢索,增強(qiáng)日志的可閱讀性和檢索效率。模塊基于使用方便,包括開發(fā)和信息檢索;組織合理,日志內(nèi)容被有效地組織起來。有助于基于日志內(nèi)容的分析;過程重現(xiàn),基于日志的分析,最重要的是重現(xiàn)當(dāng)時(shí)運(yùn)行的過程,日志模塊服務(wù)架構(gòu)如圖5所示。

模塊向上通過Thrift的RPC通信框架承接測控邏輯層的日志持久化需求,向下與消息中間件做對接將需要持久化的數(shù)據(jù)寫入文件數(shù)據(jù)庫ES。

項(xiàng)目對于消息中間件的引入在保證日志的完整性的同時(shí),采用異步寫入的方式降低了日志寫入對業(yè)務(wù)系統(tǒng)性能的影響;另外,此部分增加日志異步寫入服務(wù),讀取消息隊(duì)列中的日志數(shù)據(jù)進(jìn)行必要的數(shù)據(jù)加工,可以根據(jù)需要增加邏輯處理對日志進(jìn)行格式化匹配業(yè)務(wù)日志場景,然后再寫入ES進(jìn)行持久化存儲。功能劃分上,日志模塊只負(fù)責(zé)接收上層日志寫入消息中間件,日志加工寫入模塊對日志數(shù)據(jù)進(jìn)行格式化,或者根據(jù)業(yè)務(wù)場景進(jìn)行日志數(shù)據(jù)的加工寫入ES。

通過對項(xiàng)目目標(biāo)的分析,結(jié)合以往成熟的項(xiàng)目經(jīng)驗(yàn),針對當(dāng)前流行的相關(guān)技術(shù)和框架進(jìn)行分析,系統(tǒng)采用如下技術(shù)棧進(jìn)行架構(gòu)實(shí)現(xiàn):通過MySQL進(jìn)行業(yè)務(wù)數(shù)據(jù)的存儲;Mycat進(jìn)行數(shù)據(jù)庫和項(xiàng)目的隔離到達(dá)數(shù)據(jù)庫的分布式部署和容災(zāi)自動切換;Redis作為緩存數(shù)據(jù)的存儲提高系統(tǒng)的響應(yīng)效率;ES作為日志存儲,達(dá)到大數(shù)據(jù)的檢索;Kafka作為消息中間件支持大并發(fā)數(shù)據(jù)的通信,通過異步方式降低系統(tǒng)調(diào)用延遲,對于后端數(shù)據(jù)持久化提供多服務(wù)支持;ZooKeeper[9]來實(shí)現(xiàn)微服務(wù)治理,保障系統(tǒng)的穩(wěn)定性[10],為系統(tǒng)的低耦合高內(nèi)聚做穩(wěn)定性支持[11];Thrift+Json來完成服務(wù)間調(diào)用,并方便地達(dá)到對于語言的透明,在業(yè)務(wù)設(shè)計(jì)上采用業(yè)務(wù)提取屬性的方式到達(dá)對業(yè)務(wù)配置化的支持。

運(yùn)行環(huán)境采用銀河麒麟Kylin V10 Liunx操作系統(tǒng)、 Phytium FT-2000/4(64位,4核)處理器、8 GB內(nèi)存和銀河麒麟飛騰PC機(jī),開發(fā)環(huán)境為Qt集成開發(fā)環(huán)境[12]。針對目標(biāo)架構(gòu)中MySQL和ES在國產(chǎn)化機(jī)器設(shè)備中的存取效率測試評估如下:MySQL基礎(chǔ)數(shù)據(jù)為102萬條現(xiàn)有數(shù)據(jù)的基礎(chǔ)上插入10萬條數(shù)據(jù)做平均插入耗時(shí)計(jì)算;在銀河麒麟飛騰PC機(jī)中,帶有2個(gè)索引字段的MySQL表中以102萬數(shù)據(jù)為原始數(shù)據(jù),再增加10萬條數(shù)據(jù)為計(jì)算依據(jù),每秒可插入1 886條記錄;數(shù)據(jù)查詢單條查詢耗時(shí)均在1 ms以下;以一億數(shù)據(jù)為基準(zhǔn)根據(jù)時(shí)間范圍條件查詢,每條查詢用時(shí)4 ms,效率評估結(jié)果如圖6所示。

在銀河麒麟飛騰PC機(jī)中,ES以1億數(shù)據(jù)為原始數(shù)據(jù),再增加10萬條數(shù)據(jù)為計(jì)算依據(jù),每秒可插入1.4萬條記錄;以普通字段為條件查詢耗時(shí)為每次4 ms。實(shí)驗(yàn)結(jié)果表明,采用本架構(gòu),在國產(chǎn)操作系統(tǒng)下存取效率高,遠(yuǎn)超系統(tǒng)使用要求[13],效率評估結(jié)果如圖7所示。

本軟件架構(gòu)的設(shè)計(jì)除了完成需求目標(biāo)外,在系統(tǒng)的業(yè)務(wù)邏輯上達(dá)到流程可配置化;后續(xù)其他類似航天測控系統(tǒng)中涉及數(shù)據(jù)中心部分的建設(shè),只需要根據(jù)新的系統(tǒng)需求對數(shù)據(jù)中心的參數(shù)進(jìn)行配置,即可實(shí)現(xiàn)新項(xiàng)目的業(yè)務(wù)需求。同時(shí)為后續(xù)項(xiàng)目的微服務(wù)化和多語言的混合編程,提前實(shí)施技術(shù)棧的架構(gòu)方案保障。

[1]王文龍.分布式軟件開發(fā)平臺的設(shè)計(jì)與實(shí)施[D].北京:北京郵電大學(xué),2011.

[2]崔方園.支持分布式協(xié)同開發(fā)的軟件配置管理系統(tǒng)研究[D].大連:大連海事大學(xué),2009.

[3]孫婧,劉瑩,孟景濤,等.基于XML的軟件通用程序框架[J].無線電工程,2015,45(6):25-27.

[4]史俊.分布式軟件技術(shù)及其應(yīng)用研究[J].無線互聯(lián)科技, 2012(12):68.

[5]文姍,周壽章.一個(gè)實(shí)現(xiàn)軟件項(xiàng)目管理的統(tǒng)一軟件數(shù)據(jù)管理方法[J].云南大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,29(S2):186-189.

[6]陸琴.計(jì)算機(jī)軟件開發(fā)與數(shù)據(jù)管理[J].計(jì)算機(jī)產(chǎn)品與流通, 2018(7):26.

[7]王玉文.總控與管理子系統(tǒng)數(shù)據(jù)管理軟件的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2014.

[8]黃成剛.監(jiān)控組態(tài)軟件中數(shù)據(jù)管理子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2008.

[9]周國興.基于ZooKeeper的服務(wù)集成框架研究[D].南京:東南大學(xué),2019.

[10]董龍成.基于ZooKeeper的配置中心系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2018.

[11]黃毅斐.基于ZooKeeper的分布式同步框架設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2012.

[12]許生模,余敏.嵌入式QT的內(nèi)核分析與優(yōu)化[J].微計(jì)算機(jī)信息,2007(29):59-61.

[13]林旭新,陳文吉,鄭大鵬.一種面向服務(wù)的跨平臺實(shí)時(shí)信息發(fā)布及交流軟件架構(gòu)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2014(8): 77-80.

猜你喜歡
數(shù)據(jù)管理分布式
企業(yè)級BOM數(shù)據(jù)管理概要
定制化汽車制造的數(shù)據(jù)管理分析
居民分布式儲能系統(tǒng)對電網(wǎng)削峰填谷效果分析
基于Paxos的分布式一致性算法的實(shí)現(xiàn)與優(yōu)化
數(shù)據(jù)挖掘在學(xué)生成績數(shù)據(jù)管理中的應(yīng)用研究
數(shù)據(jù)挖掘在學(xué)生成績數(shù)據(jù)管理中的應(yīng)用研究