• 
    

    
    

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

      ?

      基于分布式和微服務(wù)架構(gòu)的華信氣象服務(wù)云平臺(tái)

      2019-01-07 07:37:34崔宏吳恩平熊安元王尊鵬趙筆鋒龔偉偉鄧鑫
      關(guān)鍵詞:華信數(shù)據(jù)服務(wù)氣象

      ■ 崔宏 吳恩平 熊安元 王尊鵬 趙筆鋒 龔偉偉 鄧鑫

      華信氣象服務(wù)云平臺(tái)應(yīng)用數(shù)據(jù)庫(kù)、通信、并行計(jì)算等傳統(tǒng)技術(shù)結(jié)合新興的云計(jì)算、大數(shù)據(jù)技術(shù)進(jìn)行建設(shè)。基于Hadoop分布式處理框架與應(yīng)用Spring Cloud框架搭建、Docker容器封裝、RESTful API作為服務(wù)接口的微服務(wù)架構(gòu),平臺(tái)實(shí)現(xiàn)了各服務(wù)模塊的高內(nèi)聚、低耦合、靈活可擴(kuò)展,為氣象服務(wù)產(chǎn)品開(kāi)發(fā)和實(shí)時(shí)服務(wù)提供數(shù)據(jù)環(huán)境和基礎(chǔ)資源支撐,以實(shí)現(xiàn)面向航空、電力、保險(xiǎn)等不同行業(yè)提供定制化的氣象信息服務(wù)。

      近年來(lái),隨著我國(guó)經(jīng)濟(jì)的迅速發(fā)展,各行各業(yè)對(duì)氣象服務(wù)的需求也日益凸顯。《氣象信息服務(wù)管理辦法》于2015年6月1日起開(kāi)始施行,促進(jìn)了我國(guó)氣象信息服務(wù)發(fā)展、氣象信息服務(wù)市場(chǎng)的培育與氣象信息服務(wù)活動(dòng)的規(guī)范化,氣象服務(wù)進(jìn)入快速發(fā)展階段。華信氣象服務(wù)云平臺(tái)即為開(kāi)展B2B定位的氣象服務(wù)業(yè)務(wù)而建設(shè),基于云平臺(tái)提供的數(shù)據(jù)環(huán)境以及基礎(chǔ)資源支撐,通過(guò)將氣象行業(yè)數(shù)據(jù)與不同領(lǐng)域的需求結(jié)合進(jìn)行信息再加工,提供實(shí)時(shí)更新的有針對(duì)性的氣象服務(wù),為相關(guān)行業(yè)生產(chǎn)經(jīng)營(yíng)規(guī)劃與決策提供信息支撐,為防災(zāi)減災(zāi)服務(wù)。

      作為氣象服務(wù)云平臺(tái)的核心內(nèi)容,氣象數(shù)據(jù)具有時(shí)空尺度跨度大、數(shù)據(jù)體量大(但可控)等特點(diǎn),符合大數(shù)據(jù)體量大、數(shù)據(jù)種類繁多、數(shù)據(jù)需求處理速度快、數(shù)據(jù)價(jià)值高的基本特征,海量氣象數(shù)據(jù)“密集型科學(xué)發(fā)現(xiàn)”以及“與其他相關(guān)行業(yè)或領(lǐng)域數(shù)據(jù)的深度融合以獲得跨領(lǐng)域、跨學(xué)科的新知識(shí)”成為未來(lái)氣象科學(xué)發(fā)展和進(jìn)步的新途徑和模式。因此,可以應(yīng)用大數(shù)據(jù)相關(guān)技術(shù)解決海量氣象數(shù)據(jù)的規(guī)范化存儲(chǔ)管理、高時(shí)效應(yīng)用等技術(shù)問(wèn)題。由于氣象服務(wù)具有業(yè)務(wù)不斷豐富擴(kuò)展與氣象服務(wù)產(chǎn)品個(gè)性化定制需求不斷增加的特點(diǎn),因此需要建設(shè)一個(gè)基礎(chǔ)資源與業(yè)務(wù)邏輯可靈活擴(kuò)展的服務(wù)平臺(tái),分布式與微服務(wù)結(jié)合的架構(gòu)可以滿足氣象服務(wù)平臺(tái)可擴(kuò)展性要求。其中,云平臺(tái)的彈性計(jì)算、虛擬化、按需服務(wù)、異地災(zāi)備、分布式存儲(chǔ)與處理等技術(shù)特性可以滿足氣象服務(wù)平臺(tái)基礎(chǔ)資源擴(kuò)展的需求;專注于具體業(yè)務(wù)功能實(shí)現(xiàn)、模塊邊界明確、細(xì)分功能為獨(dú)立服務(wù)的微服務(wù)架構(gòu)具有技術(shù)選型靈活、獨(dú)立按需擴(kuò)展、可用性高等優(yōu)點(diǎn),能較好地滿足快速迭代開(kāi)發(fā)、業(yè)務(wù)靈活擴(kuò)展的需求,將高度耦合的功能分解到各個(gè)離散的微服務(wù)中,可以實(shí)現(xiàn)對(duì)應(yīng)用系統(tǒng)的解耦,解決傳統(tǒng)的單塊式系統(tǒng)架構(gòu)隨著業(yè)務(wù)需求增長(zhǎng)出現(xiàn)的交付周期長(zhǎng)、靈活性降低、可伸縮性差、維護(hù)成本高等問(wèn)題。

      本文主要介紹基于分布式和微服務(wù)架構(gòu)建設(shè)的華信氣象服務(wù)云平臺(tái),其應(yīng)用了傳統(tǒng)的數(shù)據(jù)庫(kù)、通信、并行計(jì)算等技術(shù),并結(jié)合新興的云計(jì)算、大數(shù)據(jù)技術(shù),以實(shí)現(xiàn)面向不同行業(yè)的實(shí)時(shí)氣象服務(wù)可定制、可擴(kuò)展,為氣象服務(wù)產(chǎn)品開(kāi)發(fā)和實(shí)時(shí)服務(wù)提供數(shù)據(jù)環(huán)境和平臺(tái)支撐。

      1 平臺(tái)簡(jiǎn)介

      華信氣象服務(wù)云平臺(tái)的主要功能包括各種氣象數(shù)據(jù)的收集、傳輸、存儲(chǔ)管理,服務(wù)產(chǎn)品加工處理,以及數(shù)據(jù)服務(wù)與監(jiān)控管理相關(guān)功能,在統(tǒng)一氣象數(shù)據(jù)環(huán)境基礎(chǔ)上實(shí)現(xiàn)面向不同行業(yè)應(yīng)用的氣象服務(wù),其主要功能包括:

      1)數(shù)據(jù)收集、傳輸:負(fù)責(zé)定時(shí)或根據(jù)請(qǐng)求從數(shù)據(jù)源收集業(yè)務(wù)所需的各類數(shù)據(jù),并傳輸?shù)焦性破脚_(tái)上。數(shù)據(jù)收集方式支持基于數(shù)據(jù)庫(kù)API接口、文件共享、FTP共享、Web Service 等多種數(shù)據(jù)收集方式。

      2)數(shù)據(jù)存儲(chǔ)管理:負(fù)責(zé)對(duì)收集到的各種數(shù)據(jù)進(jìn)行入庫(kù)存儲(chǔ),并提供數(shù)據(jù)備份、數(shù)據(jù)恢復(fù)、數(shù)據(jù)清除等功能。各種觀測(cè)數(shù)據(jù)、產(chǎn)品數(shù)據(jù)采用關(guān)系型數(shù)據(jù)庫(kù)和文件庫(kù)相結(jié)合的形式進(jìn)行存儲(chǔ)。

      3)服務(wù)產(chǎn)品加工處理:根據(jù)不同領(lǐng)域氣象服務(wù)用戶的需求,對(duì)地面、高空、農(nóng)氣、雷達(dá)、衛(wèi)星、數(shù)值預(yù)報(bào)產(chǎn)品、氣象服務(wù)產(chǎn)品等各種氣象基礎(chǔ)數(shù)據(jù)結(jié)合行業(yè)信息進(jìn)行加工處理,生成不同服務(wù)用戶所需的定制氣象服務(wù)產(chǎn)品。

      4)數(shù)據(jù)服務(wù)發(fā)布:以門戶網(wǎng)站的形式提供服務(wù)數(shù)據(jù)發(fā)現(xiàn)導(dǎo)航、數(shù)據(jù)查詢檢索、數(shù)據(jù)下載功能,并提供數(shù)據(jù)和產(chǎn)品實(shí)時(shí)服務(wù)API接口以及數(shù)據(jù)FTP下載服務(wù)。

      5)平臺(tái)監(jiān)控管理:實(shí)現(xiàn)平臺(tái)業(yè)務(wù)和數(shù)據(jù)監(jiān)控、用戶管理等功能。

      1.1 平臺(tái)數(shù)據(jù)環(huán)境

      平臺(tái)通過(guò)建設(shè)統(tǒng)一氣象數(shù)據(jù)環(huán)境支撐面向不同行業(yè)應(yīng)用的氣象產(chǎn)品定制服務(wù),主要業(yè)務(wù)數(shù)據(jù)包括地面、高空、農(nóng)氣、雷達(dá)、衛(wèi)星等基礎(chǔ)觀測(cè)資料,多種數(shù)值預(yù)報(bào)模式產(chǎn)品、融合分析產(chǎn)品、天氣預(yù)報(bào)產(chǎn)品,以及平臺(tái)加工制作的各種氣象服務(wù)產(chǎn)品,日增數(shù)據(jù)量約2.2 T。表1給出了平臺(tái)數(shù)據(jù)環(huán)境中包含的數(shù)據(jù)類型、名稱、更新頻次、空間范圍以及日增量。

      表1 華信氣象服務(wù)云平臺(tái)數(shù)據(jù)環(huán)境說(shuō)明

      1.2 公有云環(huán)境

      隨著氣象服務(wù)業(yè)務(wù)的不斷發(fā)展,氣象服務(wù)平臺(tái)需要隨時(shí)擴(kuò)充服務(wù)器、存儲(chǔ)等基礎(chǔ)設(shè)施支撐資源,而技術(shù)成熟的公有云具有按需服務(wù)、彈性計(jì)算、異地災(zāi)備等特性,可以滿足氣象服務(wù)平臺(tái)基礎(chǔ)資源擴(kuò)展的需求。因此,華信氣象服務(wù)云平臺(tái)部署在公有云上,由公有云提供計(jì)算、存儲(chǔ)與網(wǎng)絡(luò)資源支撐。

      公有云環(huán)境現(xiàn)有資源配置及用途說(shuō)明見(jiàn)表2,未來(lái)可能隨著服務(wù)業(yè)務(wù)量增加補(bǔ)充公有云資源。

      2 平臺(tái)架構(gòu)設(shè)計(jì)

      華信氣象服務(wù)云平臺(tái)基于公有云提供的IaaS資源進(jìn)行建設(shè),采用B/S架構(gòu)進(jìn)行設(shè)計(jì),其總體技術(shù)架構(gòu)見(jiàn)圖1。

      圖1 華信氣象服務(wù)云平臺(tái)總體技術(shù)架構(gòu)圖

      華信氣象服務(wù)云平臺(tái)采用的主要技術(shù)路線如下:

      1)基于公有云平臺(tái)提供的虛擬化基礎(chǔ)設(shè)施資源部署氣象服務(wù)平臺(tái),采用基于Spring Cloud的微服務(wù)架構(gòu),結(jié)合Docker容器技術(shù),按服務(wù)數(shù)據(jù)類型與服務(wù)對(duì)象開(kāi)發(fā)集成面向不同應(yīng)用領(lǐng)域的氣象服務(wù)功能,實(shí)現(xiàn)服務(wù)業(yè)務(wù)的可伸縮、可靈活擴(kuò)展。

      2)平臺(tái)采用J2EE技術(shù)框架進(jìn)行服務(wù)平臺(tái)構(gòu)建,以層次化、組件化的方式進(jìn)行平臺(tái)總體架構(gòu)設(shè)計(jì),集成元數(shù)據(jù)技術(shù)、中間件技術(shù)(包括Web中間件、消息中間件等)等多種技術(shù),遵循統(tǒng)一的技術(shù)標(biāo)準(zhǔn)進(jìn)行服務(wù)平臺(tái)開(kāi)發(fā)。

      3)采用Hadoop分布式處理框架進(jìn)行云上的分布式平臺(tái)構(gòu)建,采用分布式MySQL數(shù)據(jù)庫(kù)集群、HBASE(Hadoop Database)分布式存儲(chǔ)系統(tǒng)集群以及HDFS分布式存儲(chǔ)文件系統(tǒng)結(jié)合分布式對(duì)象存儲(chǔ)系統(tǒng)OSS存儲(chǔ)管理各種結(jié)構(gòu)化與非結(jié)構(gòu)化氣象服務(wù)數(shù)據(jù)與產(chǎn)品,實(shí)現(xiàn)分布式的高容錯(cuò)數(shù)據(jù)存儲(chǔ);采用Map Reduce并行處理技術(shù)以及Spark內(nèi)存計(jì)算技術(shù)實(shí)現(xiàn)多種并發(fā)數(shù)據(jù)的分布式處理。

      4)采用基于Lucene作為內(nèi)部引擎的Elastic Search分布式全文檢索系統(tǒng)實(shí)現(xiàn)大規(guī)模氣象數(shù)據(jù)的快速檢索,采用Impala提供的基于HDFS和OSS的分布式快速查詢引擎,為整個(gè)系統(tǒng)提供基于分布式存儲(chǔ)的快速數(shù)據(jù)訪問(wèn)服務(wù)。

      5)采用REDIS數(shù)據(jù)緩存技術(shù),將高頻訪問(wèn)的實(shí)時(shí)服務(wù)數(shù)據(jù)以一定的數(shù)據(jù)結(jié)構(gòu)保存在REDIS內(nèi)存數(shù)據(jù)庫(kù)中,提高實(shí)時(shí)更新數(shù)據(jù)的查詢、頁(yè)面響應(yīng)、顯示及應(yīng)用效率,滿足實(shí)時(shí)數(shù)據(jù)服務(wù)的時(shí)效性要求。

      6)采用RabbitMQ高性能消息隊(duì)列,對(duì)多任務(wù)并發(fā)調(diào)度信息進(jìn)行有序管理,實(shí)現(xiàn)高可用的多并發(fā)任務(wù)高效調(diào)度管理。

      與采用傳統(tǒng)單體結(jié)構(gòu)的普通服務(wù)平臺(tái)相比,采用分布式和微服務(wù)架構(gòu)建設(shè)的服務(wù)平臺(tái)具有的優(yōu)勢(shì)見(jiàn)表3。

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

      為滿足平臺(tái)資源按需使用、氣象服務(wù)業(yè)務(wù)不斷擴(kuò)展且新增業(yè)務(wù)不影響已有服務(wù)等靈活、可擴(kuò)展性要求,華信氣象數(shù)據(jù)服務(wù)云平臺(tái)采用分布式技術(shù)與微服務(wù)架構(gòu)結(jié)合進(jìn)行設(shè)計(jì)和開(kāi)發(fā),以滿足為不同服務(wù)對(duì)象提供可伸縮、可擴(kuò)展、靈活定制的個(gè)性化氣象數(shù)據(jù)服務(wù)的需求。

      3.1 分布式技術(shù)

      圖2 華信氣象服務(wù)云平臺(tái)分布式架構(gòu)圖

      華信氣象數(shù)據(jù)服務(wù)云平臺(tái)分布式架構(gòu)設(shè)計(jì)如圖2。平臺(tái)采用Hadoop分布式處理框架以可靠、高效、可伸縮的方式提供平臺(tái)分布式支撐,采用分布式存儲(chǔ)技術(shù)管理氣象服務(wù)數(shù)據(jù)與產(chǎn)品——地面、高空等結(jié)構(gòu)化數(shù)據(jù)采用分布式MySQL數(shù)據(jù)庫(kù)集群、HBASE集群進(jìn)行存儲(chǔ)管理,雷達(dá)、衛(wèi)星、數(shù)值預(yù)報(bào)模式產(chǎn)品等非結(jié)構(gòu)化數(shù)據(jù)采用HDFS分布式存儲(chǔ)文件系統(tǒng)結(jié)合分布式對(duì)象存儲(chǔ)系統(tǒng)OSS實(shí)現(xiàn)分布式的高容錯(cuò)數(shù)據(jù)存儲(chǔ),基于Elastic Search的分布式索引系統(tǒng)提供對(duì)各類數(shù)據(jù)文件的索引和高效檢索,在此基礎(chǔ)上采用Map Reduce并行處理技術(shù)以及Spark內(nèi)存計(jì)算技術(shù)實(shí)現(xiàn)多種并發(fā)數(shù)據(jù)的分布式處理,生成的服務(wù)產(chǎn)品在保存到專題產(chǎn)品庫(kù)的同時(shí)通過(guò)API接口、FTP、推送服務(wù)等提供給不同的用戶或?qū)佑脩舻臉I(yè)務(wù)應(yīng)用系統(tǒng),滿足海量氣象數(shù)據(jù)存儲(chǔ)、檢索服務(wù)、產(chǎn)品加工處理的高效、可靠、靈活等各種性能要求。

      3.1.1 分布式存儲(chǔ)

      圖3 華信氣象服務(wù)云平臺(tái)分布式存儲(chǔ)架構(gòu)圖

      平臺(tái)采用文件系統(tǒng)與關(guān)系型數(shù)據(jù)庫(kù)相結(jié)合的分布式存儲(chǔ)技術(shù),針對(duì)不同數(shù)據(jù)特點(diǎn),分別將不同類型的氣象數(shù)據(jù)存儲(chǔ)于文件系統(tǒng)或關(guān)系型數(shù)據(jù)庫(kù)中。如圖3所示,平臺(tái)將分布式對(duì)象存儲(chǔ)規(guī)劃為若干個(gè)存儲(chǔ)空間,按基礎(chǔ)數(shù)據(jù)庫(kù)、專題產(chǎn)品庫(kù)、監(jiān)控管理庫(kù)及歸檔庫(kù)對(duì)海量氣象數(shù)據(jù)和產(chǎn)品進(jìn)行分布式存儲(chǔ),每個(gè)存儲(chǔ)空間可以根據(jù)業(yè)務(wù)需要定義權(quán)限、生命周期等。其中,采用分布式存儲(chǔ)系統(tǒng)HBASE與MySQL數(shù)據(jù)庫(kù)集群結(jié)合存儲(chǔ)各種關(guān)系型數(shù)據(jù),采用分布式對(duì)象存儲(chǔ)系統(tǒng)OSS存儲(chǔ)各種非結(jié)構(gòu)化數(shù)據(jù),基于Elastic Search的分布式索引系統(tǒng)和Impala快速查詢引擎提供對(duì)各類數(shù)據(jù)文件的索引和高效檢索。

      結(jié)構(gòu)化數(shù)據(jù)分布式存儲(chǔ):為提高海量結(jié)構(gòu)化氣象數(shù)據(jù)實(shí)時(shí)服務(wù)的時(shí)效性,需要根據(jù)不同類型氣象數(shù)據(jù)的特點(diǎn)和應(yīng)用瓶頸,進(jìn)行適當(dāng)?shù)臄?shù)據(jù)分片與集群化部署。對(duì)于結(jié)構(gòu)化數(shù)據(jù)中服務(wù)時(shí)效要求高的分鐘級(jí)實(shí)況與預(yù)報(bào)預(yù)警數(shù)據(jù)(表4),平臺(tái)采用高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng)HBase進(jìn)行存儲(chǔ),而采用MySQL數(shù)據(jù)庫(kù)集群存儲(chǔ)地面、高空、農(nóng)氣、臺(tái)風(fēng)路徑監(jiān)測(cè)預(yù)報(bào)以及精細(xì)化預(yù)報(bào)產(chǎn)品等結(jié)構(gòu)化數(shù)據(jù)。MySQL集群分布式存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù)訪問(wèn)通過(guò)分布式集群中間件(圖4)實(shí)現(xiàn),中間件將SQL語(yǔ)句轉(zhuǎn)換成對(duì)應(yīng)的語(yǔ)法解析樹(shù),再結(jié)合預(yù)定義的分片及路由配置通過(guò)SQL 路由/計(jì)劃組件將其轉(zhuǎn)換成執(zhí)行計(jì)劃,分發(fā)到相應(yīng)的MySQL數(shù)據(jù)節(jié)點(diǎn),MySQL節(jié)點(diǎn)執(zhí)行后的結(jié)果通過(guò)中間件合并計(jì)算生成最后結(jié)果返回給應(yīng)用。

      表4 HBase分布式存儲(chǔ)數(shù)據(jù)說(shuō)明

      圖4 結(jié)構(gòu)化數(shù)據(jù)分布式存儲(chǔ)MySQL集群邏輯拓?fù)鋱D

      圖5出示了非結(jié)構(gòu)化數(shù)據(jù)分布式存儲(chǔ)及處理邏輯拓?fù)洹F脚_(tái)中的雷達(dá)、衛(wèi)星、數(shù)值模式預(yù)報(bào)產(chǎn)品、天氣分析圖等各種文件類、圖形類、文檔類非結(jié)構(gòu)化數(shù)據(jù),采用基于Swift技術(shù)的分布式對(duì)象存儲(chǔ)系統(tǒng)OSS進(jìn)行存儲(chǔ)管理,檢索查詢采用分布式全文檢索系統(tǒng)Elastic Search,所有非結(jié)構(gòu)化數(shù)據(jù)入庫(kù)前提取的特征索引數(shù)據(jù)均存儲(chǔ)于分布式全文檢索系統(tǒng)。系統(tǒng)提供Impala快速查詢引擎以實(shí)現(xiàn)對(duì)數(shù)據(jù)的分析和快速查詢。用戶的檢索請(qǐng)求會(huì)被分解為多個(gè)并行檢索任務(wù),下發(fā)到多個(gè)節(jié)點(diǎn)并行執(zhí)行,系統(tǒng)會(huì)將多個(gè)并行檢索的結(jié)果進(jìn)行合并、返回給用戶,實(shí)現(xiàn)對(duì)各類數(shù)據(jù)文件的高效檢索和服務(wù)。

      圖5 非結(jié)構(gòu)化數(shù)據(jù)分布式存儲(chǔ)及處理邏輯拓?fù)鋱D

      3.1.2 分布式處理

      由于氣象數(shù)據(jù)具有數(shù)據(jù)類型多、時(shí)空尺度跨度大等特點(diǎn),華信氣象數(shù)據(jù)服務(wù)云平臺(tái)常常需要同時(shí)加工處理雷達(dá)、地面、衛(wèi)星、模式等不同類型的氣象數(shù)據(jù),將其加工制作成符合不同行業(yè)需求的服務(wù)產(chǎn)品,因此需要平臺(tái)具有多任務(wù)并發(fā)處理能力,避免任務(wù)堆積。平臺(tái)采用開(kāi)源云平臺(tái)Hadoop架構(gòu)的分布式計(jì)算平臺(tái)開(kāi)發(fā)和運(yùn)行處理海量氣象數(shù)據(jù)的應(yīng)用程序,采用分布式并行處理模型Map Reduce以及Spark內(nèi)存計(jì)算技術(shù)實(shí)現(xiàn)海量氣象數(shù)據(jù)并發(fā)的分布式處理,保證各種氣象產(chǎn)品加工處理與服務(wù)的時(shí)效性。

      Map Reduce作為面向大數(shù)據(jù)并行處理的計(jì)算模型、框架和平臺(tái),可以充分利用集群資源,自動(dòng)完成計(jì)算任務(wù)的并行化處理,自動(dòng)劃分計(jì)算數(shù)據(jù)和計(jì)算任務(wù),在集群節(jié)點(diǎn)上自動(dòng)分配和執(zhí)行任務(wù)以及收集計(jì)算結(jié)果,將數(shù)據(jù)分布存儲(chǔ)、數(shù)據(jù)通信、容錯(cuò)處理等并行計(jì)算涉及的很多系統(tǒng)底層的復(fù)雜細(xì)節(jié)交由系統(tǒng)負(fù)責(zé)處理。Map Reduce提供了一種簡(jiǎn)便的并行程序設(shè)計(jì)方法,用Map和Reduce兩個(gè)函數(shù)編程實(shí)現(xiàn)基本的并行處理任務(wù),提供了抽象的操作和并行編程接口,以簡(jiǎn)單方便地完成大規(guī)模數(shù)據(jù)的編程和計(jì)算處理。

      Spark是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎,其優(yōu)點(diǎn)除了和Hadoop Map Reduce一樣高效、高可靠、容錯(cuò)和可擴(kuò)展之外,還可以通過(guò)啟用彈性分布數(shù)據(jù)集RDD(Resilient Distributed Dataset)將中間輸出結(jié)果保存在內(nèi)存中,從而不再需要讀寫(xiě)HDFS就可以實(shí)現(xiàn)交互式查詢,優(yōu)化迭代工作負(fù)載,提高計(jì)算效率。

      下面以保存在HBase分布式存儲(chǔ)系統(tǒng)中的地面分鐘級(jí)觀測(cè)降水?dāng)?shù)據(jù)分時(shí)段統(tǒng)計(jì)分析為例,說(shuō)明采用Spark如何實(shí)現(xiàn)氣象數(shù)據(jù)的分布式加工處理。Spark的運(yùn)行架構(gòu)由Driver(控制器)和Executor(執(zhí)行端)組成,Driver負(fù)責(zé)把用戶代碼進(jìn)行切分,劃分為不同的任務(wù)階段Stage,然后把每個(gè)Stage對(duì)應(yīng)的任務(wù)調(diào)度提交到多個(gè)Executor進(jìn)行計(jì)算,這樣Executor就并行執(zhí)行同一個(gè)Stage的任務(wù)。如圖6所示,地面分鐘級(jí)觀測(cè)降水?dāng)?shù)據(jù)分時(shí)段統(tǒng)計(jì)分析可以分為數(shù)據(jù)讀取、處理與結(jié)果存儲(chǔ)兩個(gè)Stage,每個(gè)Executor負(fù)責(zé)根據(jù)Driver劃分的階段按流程執(zhí)行相應(yīng)的任務(wù):首先從HBase分布式數(shù)據(jù)庫(kù)中讀取各個(gè)測(cè)站分鐘級(jí)降水觀測(cè)數(shù)據(jù),進(jìn)行質(zhì)量控制、均一化處理,然后進(jìn)行從1 min、5 min、10 min、15 min、20 min、30 min、45 min、1 h……到1 d的不同時(shí)間窗的降水?dāng)?shù)據(jù)處理,并分不同時(shí)段進(jìn)行排序,最后生成每個(gè)站不同時(shí)段的最大降水量排序產(chǎn)品,返回給Driver進(jìn)行結(jié)果組合并保存到HDFS分布式數(shù)據(jù)系統(tǒng)中。數(shù)據(jù)處理過(guò)程的中間數(shù)據(jù)通過(guò)分布式數(shù)據(jù)的邏輯抽象RDD進(jìn)行緩存和流轉(zhuǎn),通過(guò)減少數(shù)據(jù)IO次數(shù)提高數(shù)據(jù)處理效率。

      圖6 基于Spark降水?dāng)?shù)據(jù)統(tǒng)計(jì)分析邏輯流程圖

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

      微服務(wù)架構(gòu)是一種去中心化的系統(tǒng)架構(gòu),本質(zhì)上也是一種分布式架構(gòu)。微服務(wù)的核心思想是將應(yīng)用功能盡可能細(xì)地劃分成獨(dú)立的服務(wù),每個(gè)服務(wù)都專注于單一具體的業(yè)務(wù)功能實(shí)現(xiàn),服務(wù)之間采用輕量級(jí)的通信機(jī)制(通常是基于HTTP的RESTful API)互相協(xié)調(diào)、互相配合,最終為用戶提供符合不同需求的功能服務(wù)。微服務(wù)架構(gòu)的目的是將大型的、復(fù)雜的、長(zhǎng)期運(yùn)行的系統(tǒng)構(gòu)建為一組相互配合的服務(wù),一個(gè)大型復(fù)雜軟件每個(gè)應(yīng)用都可以由一個(gè)或多個(gè)微服務(wù)組成。系統(tǒng)中的每個(gè)微服務(wù)都可被獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的,每個(gè)微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù),在所有情況下,每個(gè)任務(wù)代表著一個(gè)小的業(yè)務(wù)能力。與傳統(tǒng)的面向服務(wù)的架構(gòu)(SOA)架構(gòu)相比,微服務(wù)架構(gòu)降低了系統(tǒng)的耦合性,提高了系統(tǒng)容錯(cuò)性、伸縮性、可擴(kuò)展性,易于迭代開(kāi)發(fā)、業(yè)務(wù)擴(kuò)展與持續(xù)交付。

      在實(shí)際應(yīng)用中,微服務(wù)架構(gòu)的服務(wù)拆分粒度在盡量細(xì)化的同時(shí)還要與具體業(yè)務(wù)相結(jié)合,總的原則是服務(wù)內(nèi)部高內(nèi)聚,服務(wù)之間低耦合。如圖7所示,華信氣象服務(wù)云平臺(tái)的微服務(wù)主要按照產(chǎn)品服務(wù)類型或服務(wù)對(duì)象進(jìn)行劃分,將基礎(chǔ)氣象數(shù)據(jù)地面、高空、輻射、海洋、農(nóng)業(yè)氣象、雷達(dá)、衛(wèi)星、數(shù)值預(yù)報(bào)產(chǎn)品、氣象服務(wù)產(chǎn)品等數(shù)據(jù)加工處理分別劃分成微服務(wù),或根據(jù)氣象數(shù)據(jù)服務(wù)對(duì)象的需求將不同類型的服務(wù)產(chǎn)品加工制作劃分成相應(yīng)的微服務(wù),各服務(wù)之間彼此獨(dú)立,也可以根據(jù)業(yè)務(wù)需求進(jìn)行服務(wù)調(diào)用。

      圖7 華信氣象服務(wù)云平臺(tái)微服務(wù)架構(gòu)圖

      華信氣象服務(wù)云平臺(tái)的微服務(wù)由分布式MySQL數(shù)據(jù)庫(kù)集群、HBase集群、HDFS分布式存儲(chǔ)文件系統(tǒng)、分布式對(duì)象存儲(chǔ)系統(tǒng)OSS結(jié)合Elastic Search的分布式索引系統(tǒng)提供基礎(chǔ)數(shù)據(jù)支撐,將面向不同服務(wù)應(yīng)用的氣象產(chǎn)品微服務(wù)功能封裝到可虛擬化部署的Docker容器中,通過(guò)Spring Cloud實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)注冊(cè)、配置管理、服務(wù)調(diào)用、服務(wù)網(wǎng)關(guān)、負(fù)載均衡、熔斷、數(shù)據(jù)監(jiān)控等功能,構(gòu)建生產(chǎn)級(jí)的靈活擴(kuò)展微服務(wù)應(yīng)用,方便地進(jìn)行氣象服務(wù)的持續(xù)開(kāi)發(fā)和集成。

      3.2.1 Docker容器

      Docker是一種新興的輕量級(jí)虛擬化容器技術(shù),在復(fù)雜的集群系統(tǒng)搭建方面,具有可移植、易使用、跨平臺(tái)等優(yōu)勢(shì)。所以,在復(fù)雜的分布式應(yīng)用集群的部署中,Docker能夠快速、準(zhǔn)確、標(biāo)準(zhǔn)化封裝應(yīng)用程序并自動(dòng)化部署整個(gè)運(yùn)行環(huán)境。采用Docker容器在云平臺(tái)上進(jìn)行微服務(wù)的部署,可以實(shí)現(xiàn)系統(tǒng)從開(kāi)發(fā)、部署到運(yùn)維整個(gè)過(guò)程的微服務(wù)化,充分利用服務(wù)器的資源,構(gòu)建高伸縮性的數(shù)據(jù)服務(wù),實(shí)現(xiàn)擴(kuò)展業(yè)務(wù)功能的快速部署、測(cè)試及上線業(yè)務(wù)運(yùn)行。

      平臺(tái)采用Docker容器分別封裝地面、高空、輻射、海洋、農(nóng)業(yè)氣象、雷達(dá)、衛(wèi)星、數(shù)值預(yù)報(bào)產(chǎn)品等基礎(chǔ)氣象數(shù)據(jù)解析、轉(zhuǎn)換、統(tǒng)計(jì)加工、繪圖等服務(wù)功能,以及面向航空的積冰、顛簸、機(jī)場(chǎng)危險(xiǎn)天氣短臨預(yù)報(bào)、對(duì)流指數(shù)預(yù)報(bào)等航空氣象服務(wù)產(chǎn)品加工處理功能,面向環(huán)保的大氣穩(wěn)定度產(chǎn)品加工處理功能,以及面向電力的臺(tái)風(fēng)災(zāi)害監(jiān)測(cè)預(yù)警服務(wù)功能等等微服務(wù),這些服務(wù)功能應(yīng)用C、Fortran、Java、python等不同編程語(yǔ)言開(kāi)發(fā),或應(yīng)用到NCL等繪圖工具包,業(yè)務(wù)部署時(shí)可以將應(yīng)用及相關(guān)開(kāi)發(fā)環(huán)境一起封裝到可移植且相互獨(dú)立的Docker容器中,實(shí)現(xiàn)在虛擬化公有云環(huán)境中快速簡(jiǎn)單的服務(wù)部署。

      3.2.2 Spring Cloud

      Spring Cloud 是從成熟的Spring framework上發(fā)展起來(lái)的,是基于Spring Boot實(shí)現(xiàn)的服務(wù)治理工具包,是一系列框架的有序集合,可以為微服務(wù)構(gòu)建提供標(biāo)準(zhǔn)化的、全站式的技術(shù)方案。它利用Spring Boot的開(kāi)發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)基礎(chǔ)功能的開(kāi)發(fā),如服務(wù)發(fā)現(xiàn)注冊(cè)、配置中心、消息總線、負(fù)載均衡、熔斷器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開(kāi)發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。Spring將目前各家公司開(kāi)發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來(lái),通過(guò)Spring Boot風(fēng)格進(jìn)行再封裝,屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,給開(kāi)發(fā)者留出了一套簡(jiǎn)單易懂、易部署和易維護(hù)的分布式系統(tǒng)開(kāi)發(fā)工具包。

      華信氣象服務(wù)云平臺(tái)的微服務(wù)構(gòu)建主要應(yīng)用到Spring Cloud的核心功能組件包括:分布式/版本化配置管理(Spring Cloud Config)、服務(wù)注冊(cè)和發(fā)現(xiàn)(Eureka)、服務(wù)調(diào)用(Feign)、熔斷器(Hystrix)、API網(wǎng)關(guān)(Zuul)、負(fù)載均衡(Keepalived)、數(shù)據(jù)監(jiān)控(Actuator)。Spring Cloud各個(gè)組件可以插拔形式集成,各組件相互配合,合作支持了一套完整的微服務(wù)架構(gòu):Spring Cloud Config提供統(tǒng)一的配置中心服務(wù),實(shí)現(xiàn)分布式系統(tǒng)的配置文件的統(tǒng)一管理;Eureka負(fù)責(zé)服務(wù)的注冊(cè)與發(fā)現(xiàn),避免服務(wù)之間的直接調(diào)用,方便服務(wù)后續(xù)的水平擴(kuò)展、故障轉(zhuǎn)移,將各服務(wù)連接起來(lái)并保持服務(wù)高可用;Feign負(fù)責(zé)服務(wù)之間通過(guò)RESTful API方式進(jìn)行聲明式的調(diào)用,網(wǎng)關(guān)使用Feign做數(shù)據(jù)驗(yàn)證;Hystrix負(fù)責(zé)監(jiān)控服務(wù)之間的調(diào)用情況,連續(xù)多次失敗進(jìn)行熔斷保護(hù),并按一定間隔時(shí)間檢查調(diào)用失敗的服務(wù),如果服務(wù)恢復(fù)將繼續(xù)提供服務(wù);輕量級(jí)網(wǎng)關(guān)Zuul負(fù)責(zé)服務(wù)轉(zhuǎn)發(fā),接收并轉(zhuǎn)發(fā)所有內(nèi)外部的客戶端調(diào)用,實(shí)現(xiàn)相關(guān)的認(rèn)證邏輯從而簡(jiǎn)化內(nèi)部服務(wù)之間相互調(diào)用的復(fù)雜度;Keepalived負(fù)責(zé)在高并發(fā)訪問(wèn)時(shí)進(jìn)行服務(wù)負(fù)載均衡,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性;Actuator負(fù)責(zé)監(jiān)控服務(wù)間的調(diào)用和熔斷相關(guān)指標(biāo),保證數(shù)據(jù)服務(wù)業(yè)務(wù)的連續(xù)性、可靠性。

      3.2.3 RESTful API

      RESTful API 是滿足REST(REpresentational State Transfer)架構(gòu)約束條件和原則的API,RESTful可以通過(guò)一套統(tǒng)一協(xié)議規(guī)范為不同形式的應(yīng)用客戶端提供統(tǒng)一的服務(wù)接口,不同的應(yīng)用終端可以通過(guò)一個(gè)標(biāo)準(zhǔn)的Restful API 來(lái)訪問(wèn)數(shù)據(jù)庫(kù)從而獲取相同的數(shù)據(jù)。

      平臺(tái)中部分業(yè)務(wù)應(yīng)用功能是通過(guò)多個(gè)微服務(wù)協(xié)調(diào)配合實(shí)現(xiàn)的,每個(gè)微服務(wù)都提供相應(yīng)的輕量級(jí)RESTful API,服務(wù)之間通過(guò)調(diào)用API實(shí)現(xiàn)業(yè)務(wù)協(xié)同。例如,環(huán)保大氣穩(wěn)定度產(chǎn)品加工處理服務(wù)需要應(yīng)用風(fēng)云靜止衛(wèi)星的云量反演產(chǎn)品結(jié)合太陽(yáng)高度角計(jì)算太陽(yáng)輻射等級(jí),再結(jié)合地面風(fēng)觀測(cè)數(shù)據(jù)進(jìn)行大氣穩(wěn)定度判斷。因此,大氣穩(wěn)定度產(chǎn)品加工處理微服務(wù)需要調(diào)用風(fēng)云靜止衛(wèi)星的云量反演產(chǎn)品服務(wù)API獲取云量數(shù)據(jù)、調(diào)用地面逐小時(shí)觀測(cè)數(shù)據(jù)服務(wù)API獲取地面風(fēng)觀測(cè)數(shù)據(jù),再根據(jù)算法計(jì)算得到大氣穩(wěn)定度判斷結(jié)果,最終產(chǎn)品也通過(guò)RESTful API為用戶提供服務(wù)。

      3.2.4 微服務(wù)封裝與構(gòu)建

      華信氣象服務(wù)云平臺(tái)中,微服務(wù)封裝主要根據(jù)具體的業(yè)務(wù)場(chǎng)景將服務(wù)流程細(xì)化拆分成一系列的微服務(wù)進(jìn)行封裝,各個(gè)微服務(wù)之間通過(guò)消息總線、負(fù)載均衡、配置中心等微服務(wù)框架協(xié)調(diào)計(jì)算資源進(jìn)行處理并實(shí)現(xiàn)業(yè)務(wù)所需的服務(wù)。具體到技術(shù)層面,一個(gè)微服務(wù)的表現(xiàn)形式就是同一類型數(shù)據(jù)(產(chǎn)品)的一組RESTful Web Service 的組合。因此,構(gòu)建一個(gè)微服務(wù)時(shí),首先基于劃分好的服務(wù)類型或服務(wù)對(duì)象做API層面的定義,然后在業(yè)務(wù)層實(shí)現(xiàn)本地Repository和對(duì)其他服務(wù)的聚合,數(shù)據(jù)訪問(wèn)層根據(jù)存儲(chǔ)系統(tǒng)類型實(shí)現(xiàn)各自的Data Access Object,從而以Web Service形式提供數(shù)據(jù)或產(chǎn)品服務(wù)。其中,業(yè)務(wù)層聚合微服務(wù)可以借助Spring Cloud的Feign組件實(shí)現(xiàn),如果調(diào)用服務(wù)不可用,則借助Hystrix組件結(jié)合業(yè)務(wù)要求實(shí)現(xiàn)熔斷或服務(wù)降級(jí),防止長(zhǎng)時(shí)間等待導(dǎo)致故障漫延、服務(wù)雪崩。此外,微服務(wù)需要開(kāi)啟服務(wù)發(fā)現(xiàn)客戶端即Enable Discovery Client,并配置Eureka Server集群地址,實(shí)現(xiàn)自動(dòng)化的服務(wù)注冊(cè)與發(fā)現(xiàn)。

      以環(huán)保大氣穩(wěn)定度產(chǎn)品加工處理服務(wù)為例,該服務(wù)由太陽(yáng)輻射等級(jí)計(jì)算服務(wù)、大氣穩(wěn)定度判斷服務(wù)以及大氣穩(wěn)定度接口服務(wù)三個(gè)微服務(wù)組成,服務(wù)構(gòu)建與執(zhí)行流程如下:

      1)太陽(yáng)輻射等級(jí)計(jì)算微服務(wù)啟動(dòng)后通過(guò)Eureka注冊(cè)服務(wù),并從配置中心Spring Cloud Config獲取配置,通過(guò)Feign組件由網(wǎng)關(guān)Zuul調(diào)用風(fēng)云靜止衛(wèi)星的云量反演產(chǎn)品服務(wù)API獲取云量數(shù)據(jù),計(jì)算得到太陽(yáng)輻射等級(jí)結(jié)果,以MQ消息方式發(fā)送到消息總線。

      2)大氣穩(wěn)定度判斷微服務(wù)啟動(dòng)后通過(guò)Eureka注冊(cè)服務(wù),從配置中心獲取配置后通過(guò)Feign組件聚合太陽(yáng)輻射等級(jí)計(jì)算服務(wù),從而不斷獲取輻射等級(jí)結(jié)果并通過(guò)網(wǎng)關(guān)Zuul調(diào)用地面逐小時(shí)觀測(cè)數(shù)據(jù)服務(wù)API獲取地面風(fēng)觀測(cè)數(shù)據(jù),進(jìn)行大氣穩(wěn)定度判斷后將判斷結(jié)果入庫(kù)存儲(chǔ)。

      3)大氣穩(wěn)定度判斷結(jié)果通過(guò)啟動(dòng)大氣穩(wěn)定度接口微服務(wù),以API接口方式提供給用戶。

      其中,太陽(yáng)輻射等級(jí)計(jì)算、大氣穩(wěn)定度判斷微服務(wù)根據(jù)任務(wù)量可以動(dòng)態(tài)啟動(dòng)多個(gè)服務(wù)實(shí)例,通過(guò)Hystrix組件對(duì)每個(gè)服務(wù)實(shí)例設(shè)置熔斷閾值保證每一個(gè)服務(wù)實(shí)例服務(wù)正常,通過(guò)Keepalived負(fù)載均衡保證整個(gè)計(jì)算流程更加合理地利用計(jì)算資源,兩者結(jié)合使得整個(gè)服務(wù)更加高可用。

      對(duì)于大氣穩(wěn)定度接口微服務(wù),可以根據(jù)產(chǎn)品訪問(wèn)量動(dòng)態(tài)啟動(dòng)不同數(shù)量的接口服務(wù)實(shí)例,通過(guò)負(fù)載均衡使得接口服務(wù)請(qǐng)求均勻轉(zhuǎn)發(fā)到每個(gè)服務(wù),保證快速高效地為用戶提供秒級(jí)產(chǎn)品服務(wù)。

      4 結(jié)語(yǔ)

      本文介紹了應(yīng)用分布式技術(shù)基于微服務(wù)架構(gòu)建設(shè)的華信氣象服務(wù)云平臺(tái)。平臺(tái)采用Hadoop分布式處理框架構(gòu)建云上的分布式平臺(tái),結(jié)合分布式存儲(chǔ)、分布式處理技術(shù)實(shí)現(xiàn)海量氣象數(shù)據(jù)的高效檢索服務(wù)和產(chǎn)品加工處理;基于Spring Cloud 的微服務(wù)架構(gòu)提供靈活可擴(kuò)展的數(shù)據(jù)服務(wù),將面向不同服務(wù)應(yīng)用的氣象產(chǎn)品微服務(wù)功能封裝到可虛擬化快速部署的Docker容器中,構(gòu)建高伸縮性的數(shù)據(jù)服務(wù),方便地進(jìn)行氣象服務(wù)的持續(xù)開(kāi)發(fā)和集成,滿足不斷拓展的多種多樣的氣象數(shù)據(jù)服務(wù)需求。

      深入閱讀

      李春陽(yáng), 劉迪, 崔蔚, 等, 2017. 基于微服務(wù)架構(gòu)的統(tǒng)一應(yīng)用開(kāi)發(fā)平臺(tái). 計(jì)算機(jī)系統(tǒng)應(yīng)用, 26(4): 43-48.

      沈文海, 2014. 氣象數(shù)據(jù)的“大數(shù)據(jù)應(yīng)用”淺析——《大數(shù)據(jù)時(shí)代》思維變革的適用性探討. 中國(guó)信息化, 30(11): 20-31.

      張潔, 薛勝軍, 2016. 云計(jì)算環(huán)境下氣象大數(shù)據(jù)服務(wù)的應(yīng)用研究.安徽農(nóng)業(yè)科學(xué), 44(5): 298-301.

      張晶, 王琰潔, 黃小鋒, 2017. 一種微服務(wù)框架的實(shí)現(xiàn), 計(jì)算機(jī)系統(tǒng)應(yīng)用, 26(4): 82-86.

      趙樂(lè)樂(lè), 黃剛, 馬越, 2016. 基于Docker的Hadoop平臺(tái)架構(gòu)研究. 計(jì)算機(jī)技術(shù)與發(fā)展, 26(9):99-103.

      猜你喜歡
      華信數(shù)據(jù)服務(wù)氣象
      氣象
      西安華信鐵路技術(shù)有限公司
      西安華信鐵路技術(shù)有限公司
      地理空間大數(shù)據(jù)服務(wù)自然資源調(diào)查監(jiān)測(cè)的方向分析
      氣象樹(shù)
      西安華信鐵路技術(shù)有限公司
      《內(nèi)蒙古氣象》征稿簡(jiǎn)則
      華信的三月風(fēng)波
      能源(2018年4期)2018-05-19 01:53:47
      大國(guó)氣象
      如何運(yùn)用稅收大數(shù)據(jù)服務(wù)供給側(cè)結(jié)構(gòu)性改革
      邵武市| 抚远县| 正阳县| 乌兰察布市| 乐东| 通河县| 洛扎县| 金寨县| 边坝县| 东城区| 秦安县| 中西区| 开远市| 庆云县| 定西市| 开鲁县| 遂昌县| 沅江市| 福清市| 镇远县| 大洼县| 吐鲁番市| 临清市| 日土县| 三都| 大埔区| 仪征市| 正蓝旗| 大竹县| 高雄县| 三原县| 梁河县| 阿克苏市| 古蔺县| 阿尔山市| 左贡县| 吕梁市| 神木县| 榆社县| 台江县| 广南县|