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

        ?

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

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

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

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

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

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

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

        1 平臺簡介

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

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

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

        3)服務(wù)產(chǎn)品加工處理:根據(jù)不同領(lǐng)域氣象服務(wù)用戶的需求,對地面、高空、農(nóng)氣、雷達(dá)、衛(wèi)星、數(shù)值預(yù)報產(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)品實時服務(wù)API接口以及數(shù)據(jù)FTP下載服務(wù)。

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

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

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

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

        1.2 公有云環(huán)境

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

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

        2 平臺架構(gòu)設(shè)計

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

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

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

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

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

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

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

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

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

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

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

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

        3.1 分布式技術(shù)

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

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

        3.1.1 分布式存儲

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

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

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

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

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

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

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

        3.1.2 分布式處理

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

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

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

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

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

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

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

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

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

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

        3.2.1 Docker容器

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

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

        3.2.2 Spring Cloud

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

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

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

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

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

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

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

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

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

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

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

        4 結(jié)語

        本文介紹了應(yīng)用分布式技術(shù)基于微服務(wù)架構(gòu)建設(shè)的華信氣象服務(wù)云平臺。平臺采用Hadoop分布式處理框架構(gòu)建云上的分布式平臺,結(jié)合分布式存儲、分布式處理技術(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ù)開發(fā)和集成,滿足不斷拓展的多種多樣的氣象數(shù)據(jù)服務(wù)需求。

        深入閱讀

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

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

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

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

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

        猜你喜歡
        華信數(shù)據(jù)服務(wù)氣象
        氣象
        西安華信鐵路技術(shù)有限公司
        西安華信鐵路技術(shù)有限公司
        地理空間大數(shù)據(jù)服務(wù)自然資源調(diào)查監(jiān)測的方向分析
        氣象樹
        西安華信鐵路技術(shù)有限公司
        《內(nèi)蒙古氣象》征稿簡則
        華信的三月風(fēng)波
        能源(2018年4期)2018-05-19 01:53:47
        大國氣象
        如何運用稅收大數(shù)據(jù)服務(wù)供給側(cè)結(jié)構(gòu)性改革
        中國商論(2016年34期)2017-01-15 14:24:18
        99久久久精品免费观看国产| 亚洲av综合av国一区二区三区| 国产午夜免费啪视频观看| 精品人妻系列无码人妻漫画| 又粗又黄又猛又爽大片免费| 国产成a人亚洲精v品无码性色| 在线观看日本一区二区 | 亚洲av第一区综合激情久久久| 精品国产一区二区三区a| 曰韩内射六十七十老熟女影视| 欧美成人精品午夜免费影视| 免费无码av片在线观看网址| 粉嫩小泬无遮挡久久久久久| 国产一区二区三区尤物| 成人av片在线观看免费| 日本一卡2卡3卡4卡无卡免费网站 亚洲av无码一区二区三区不卡 | 中文字幕乱码人妻在线| 一个少妇的淫片免费看 | 国产免费av片在线观看麻豆| 中文字幕乱码中文乱码毛片| av在线不卡免费中文网| 吃奶摸下高潮60分钟免费视频| 人妻无码αv中文字幕久久琪琪布 美女视频黄的全免费视频网站 | 日韩精品有码中文字幕| 蜜桃av人妻精品一区二区三区| 欧美人与动性xxxxx杂性| 男男车车的车车网站w98免费| www.91久久| 在线观看一区二区三区视频| 狠狠躁夜夜躁av网站中文字幕| 亚洲欧美综合区自拍另类| 亚洲乱码一区二区三区成人小说| 黄色国产一区在线观看| 媚药丝袜美女高清一二区| 精品区2区3区4区产品乱码9| 国产人妖视频一区二区| 国产三级精品三级在线观看粤语 | 国内精品久久久久久无码不卡 | 精品一区二区三区在线观看| 日本亚洲一级中文字幕| 人妻少妇精品视频专区二区三区|