999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一體化數(shù)據(jù)訪問服務(wù)關(guān)鍵技術(shù)

2021-05-20 06:51:24孫周軍李高潔喬文文何文春
關(guān)鍵詞:服務(wù)系統(tǒng)

孫周軍,郭 捷,李高潔,喬文文,何文春

(1.廣東省氣象探測(cè)數(shù)據(jù)中心 數(shù)據(jù)共享科,廣東 廣州 510080;2.廣東省氣象公共服務(wù)中心,廣東 廣州 510080;3.國(guó)家氣象信息中心 系統(tǒng)工程室,北京 100081)

0 引 言

氣象行業(yè)主要采用傳統(tǒng)關(guān)系型數(shù)據(jù)庫、集中式文件存儲(chǔ)系統(tǒng)和磁帶庫對(duì)數(shù)據(jù)進(jìn)行分級(jí)管理,在對(duì)歷史天氣進(jìn)行研究過程中無法及時(shí)、便捷地使用完整時(shí)間序列的科研資料[1-3];業(yè)務(wù)系統(tǒng)對(duì)數(shù)據(jù)的調(diào)用多為直接訪問數(shù)據(jù)源,與存儲(chǔ)系統(tǒng)高度耦合度,存儲(chǔ)系統(tǒng)的技術(shù)更新給業(yè)務(wù)應(yīng)用的適配造成很大障礙;傳統(tǒng)的存儲(chǔ)策略和供給方式無法最大限度發(fā)揮訪問效率與并發(fā)供給能力;數(shù)據(jù)資源分散存儲(chǔ)和發(fā)布,沒有集中統(tǒng)一的資料發(fā)布途徑,科研人員無法獲悉資料用法,管理與應(yīng)用脫節(jié)嚴(yán)重。對(duì)海量數(shù)據(jù)的集中治理和高效服務(wù)已經(jīng)是制約氣象業(yè)務(wù)高質(zhì)量發(fā)展的關(guān)鍵問題。

本文提出一體化數(shù)據(jù)訪問服務(wù)方法(integrated database for easy access,IDEA),基于數(shù)據(jù)存儲(chǔ)與應(yīng)用系統(tǒng)間的中間層,作為異構(gòu)數(shù)據(jù)系統(tǒng)與應(yīng)用系統(tǒng)之間的適配器,消除數(shù)據(jù)存儲(chǔ)與應(yīng)用間的強(qiáng)依賴關(guān)系;集中多源地球科學(xué)數(shù)據(jù)管理,統(tǒng)一多種異構(gòu)數(shù)據(jù)格式,融合實(shí)時(shí)與歷史數(shù)據(jù)形成數(shù)據(jù)完整序列;利用服務(wù)總線和服務(wù)化技術(shù),向氣象行業(yè)及時(shí)集中發(fā)布數(shù)據(jù)資源,打通地球科學(xué)數(shù)據(jù)管理與科研應(yīng)用的信息通道,提升了科學(xué)數(shù)據(jù)的管理和應(yīng)用效能。

1 業(yè)務(wù)現(xiàn)狀

(1)地域范圍廣:氣象學(xué)研究的是大氣圈內(nèi)各層大氣的運(yùn)動(dòng)規(guī)律,涉及到地球多圈層,且大氣圈與星際太空并無明顯分界。只要是科研需要,且觀測(cè)手段能夠達(dá)到的地方,幾乎均采用立體觀測(cè)平臺(tái),多手段測(cè)量獲取相關(guān)數(shù)據(jù)。我國(guó)除過擁有涵蓋本土的觀測(cè)數(shù)據(jù)外,在WMO組織框架下,也有共享收集到全球部分觀測(cè)、預(yù)報(bào)預(yù)測(cè)產(chǎn)品等數(shù)據(jù)。

(2)時(shí)空密度大:目前,全國(guó)已經(jīng)建成5萬多地面氣象觀測(cè)站,觀測(cè)頻率達(dá)每分鐘每次,160多部多普勒天氣雷達(dá),觀測(cè)頻次達(dá)到6分鐘每次;80多探空觀測(cè)站,觀測(cè)頻率達(dá)秒級(jí)每次;8顆氣象衛(wèi)星,靜止衛(wèi)星觀測(cè)頻率達(dá)到6分鐘每次;閃電定位、GPS/MET、負(fù)氧離子、大氣成分等觀測(cè)已遍布全國(guó),觀測(cè)設(shè)備的布設(shè)密度大,觀測(cè)頻次也大幅提升。

(3)數(shù)據(jù)種類多:氣象業(yè)務(wù)和科研活動(dòng)中涉及到氣象領(lǐng)域本身和社會(huì)多行業(yè)的相關(guān)數(shù)據(jù)。氣象領(lǐng)域以觀測(cè)平臺(tái)分類有天基、空基和地基觀測(cè)資料等,包括衛(wèi)星遙感、雷達(dá)、高空、海洋、輻射、農(nóng)氣、地面常規(guī)觀測(cè)等資料,以及由業(yè)務(wù)系統(tǒng)或科研產(chǎn)生的預(yù)報(bào)、預(yù)警、服務(wù)產(chǎn)品、實(shí)驗(yàn)數(shù)據(jù)等;社會(huì)多行業(yè)的數(shù)據(jù)包括水利、農(nóng)業(yè)、旅游、交通、漁業(yè)、航空、環(huán)保等專業(yè)數(shù)據(jù),以及互聯(lián)網(wǎng)相關(guān)數(shù)據(jù)。按照格式分類,包括文本、圖片、視頻、柵格等。

(4)高時(shí)效性:氣象數(shù)據(jù)在不同的業(yè)務(wù)場(chǎng)景及時(shí)的被獲取和應(yīng)用,才能充分的發(fā)揮其價(jià)值,高時(shí)效性是氣象資料的基本特征之一。天氣預(yù)報(bào)、氣候預(yù)測(cè)、防災(zāi)減災(zāi)和公眾服務(wù)是氣象業(yè)務(wù)活動(dòng)的重要內(nèi)容,臨近預(yù)報(bào)在0-2小時(shí)內(nèi)有效,短時(shí)預(yù)報(bào)在0-12小時(shí)有效,短期預(yù)報(bào)在隨后1-3天有效等;數(shù)值天氣預(yù)報(bào)也一直努力在更短時(shí)間內(nèi)計(jì)算出范圍更廣、時(shí)間更長(zhǎng)的預(yù)報(bào),氣象觀測(cè)數(shù)據(jù)作為其參數(shù)輸入,對(duì)其采集頻次和傳輸時(shí)效要求達(dá)到秒級(jí)。

(5)一致性要求高:氣象部門按照分級(jí)結(jié)構(gòu)劃分為觀測(cè)臺(tái)站、地市、省和國(guó)家氣象局,所從事的業(yè)務(wù)和科研活動(dòng)內(nèi)容非常相似。各級(jí)氣象局在進(jìn)行數(shù)據(jù)質(zhì)量控制、統(tǒng)計(jì)分析、公共信息發(fā)布等采用不同方法和參數(shù)變量,導(dǎo)致部門內(nèi)數(shù)據(jù)存在差異,既造成不良的社會(huì)影響,也給科研工作也帶來諸多不便。氣象數(shù)據(jù)的一致性需要由頂層進(jìn)行統(tǒng)籌規(guī)劃和解決。

因此,氣象部門需要迫切建立具有高擴(kuò)展性、高并發(fā)性、高時(shí)效性的規(guī)范化、集約化的統(tǒng)一氣象科研數(shù)據(jù)治理策略和平臺(tái),為氣象科研與業(yè)務(wù)系統(tǒng)正常運(yùn)行提供強(qiáng)有力的數(shù)據(jù)支撐。

2 系統(tǒng)設(shè)計(jì)

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

圖1給出了平臺(tái)的系統(tǒng)架構(gòu)。平臺(tái)涉及氣象數(shù)據(jù)從生產(chǎn)到業(yè)務(wù)應(yīng)用,涵蓋數(shù)據(jù)探測(cè)感知、存儲(chǔ)管理和數(shù)據(jù)服務(wù)等環(huán)節(jié)的統(tǒng)一規(guī)劃。感知層是數(shù)據(jù)的來源,涵蓋多行業(yè)的各類異構(gòu)地球科學(xué)數(shù)據(jù),通過質(zhì)量控制、編碼解碼、統(tǒng)計(jì)分析、格式轉(zhuǎn)換形成統(tǒng)一數(shù)據(jù)源。數(shù)據(jù)存儲(chǔ)層是數(shù)據(jù)的存儲(chǔ)管理,通過多態(tài)數(shù)據(jù)庫(關(guān)系型數(shù)據(jù)庫、分析型數(shù)據(jù)庫、內(nèi)存數(shù)據(jù)庫、文件/對(duì)象數(shù)據(jù)庫等)、數(shù)據(jù)同步、讀寫分離、分庫分表等進(jìn)行的分類整理和全序列存儲(chǔ)管理。分布式服務(wù)層是數(shù)據(jù)的調(diào)用方法和算法封裝,包括統(tǒng)計(jì)分析、圖像渲染、等值線追蹤、站點(diǎn)數(shù)據(jù)插值等,通過Docker容器進(jìn)行發(fā)布管理,形成分布式的服務(wù)層。平臺(tái)服務(wù)層是面向管理用戶提供數(shù)據(jù)、算法、可視化服務(wù)、眾創(chuàng)服務(wù)發(fā)布管理和性能監(jiān)視等功能,通過RESTful、Web Service、服務(wù)總線、在線調(diào)試、性能監(jiān)視等提供標(biāo)準(zhǔn)化的調(diào)用API接口和使用資源清單。應(yīng)用層則是該平臺(tái)提供數(shù)據(jù)、算法和服務(wù)的最終用戶應(yīng)用系統(tǒng)。

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

2.2 軟件架構(gòu)

圖2給出了平臺(tái)的軟件架構(gòu)。平臺(tái)的應(yīng)用層由多個(gè)等功能Web應(yīng)用服務(wù)器組成,利用硬件負(fù)載均衡服務(wù)器組件集群形成高可用架構(gòu);Web應(yīng)用服務(wù)器采用混合MVC架構(gòu)和Hibernate持久化架構(gòu),系統(tǒng)邏輯清晰、層次分明、松散耦合,使得系統(tǒng)具有較強(qiáng)的擴(kuò)展性和兼容性。緩存層是提升整套業(yè)務(wù)系統(tǒng)并發(fā)能力的核心。采用了雙Redis[4]集群作為氣象數(shù)據(jù)的高速緩存,對(duì)緩存有效時(shí)限內(nèi)的相同數(shù)據(jù)請(qǐng)求,直接通過內(nèi)存提供數(shù)據(jù)服務(wù),避免對(duì)底層數(shù)據(jù)庫和存儲(chǔ)系統(tǒng)發(fā)出IO請(qǐng)求,降低了存儲(chǔ)層的并發(fā)壓力。數(shù)據(jù)層主要包括平臺(tái)字典數(shù)據(jù)和多圈層地球科學(xué)數(shù)據(jù)的存儲(chǔ),與緩存層和應(yīng)用層分布在不同的網(wǎng)絡(luò)區(qū)域。

圖2 軟件架構(gòu)

2.3 部署架構(gòu)

圖3給出了平臺(tái)的部署架構(gòu)。平臺(tái)主要有兩個(gè)集群:①基于Socket的格點(diǎn)服務(wù)集群;②基于HTTP的一體化數(shù)據(jù)服務(wù)集群,包含了格點(diǎn)集群服務(wù)的HTTP協(xié)議實(shí)現(xiàn)。

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

基于Socket的格點(diǎn)集群服務(wù):分別在獨(dú)立的兩臺(tái)服務(wù)器(GIFT-1、GIFT-2)上部署格點(diǎn)數(shù)據(jù)服務(wù)(GridDataServer)軟件,由高可用軟件組建主備集群,主服務(wù)器綁定服務(wù)IP對(duì)外發(fā)布服務(wù),主備間通過心跳私網(wǎng)進(jìn)行數(shù)據(jù)同步和服務(wù)健康性的信息傳遞。由于精細(xì)化格點(diǎn)預(yù)報(bào)訂正平臺(tái)對(duì)數(shù)據(jù)的交互操作時(shí)效性要求非常高,因此采用SOCKET進(jìn)行原生數(shù)據(jù)傳輸交換。

基于HTTP的一體化數(shù)據(jù)服務(wù)集群:分別在5臺(tái)服務(wù)器上部署一體化數(shù)據(jù)訪問服務(wù)總線,由兩臺(tái)硬件負(fù)載均衡將其組件為總線集群;Redis緩存服務(wù)利用格點(diǎn)服務(wù)集群高可用軟件和服務(wù)器,搭建Redis集群提供緩存服務(wù);MySQL、Oracle等利用自身數(shù)據(jù)庫的集群架構(gòu),文件數(shù)據(jù)、衛(wèi)星數(shù)據(jù)、圖形產(chǎn)品和格點(diǎn)數(shù)據(jù)按照類別存儲(chǔ)在不同服務(wù)器上,并對(duì)應(yīng)部署FileDataServer、SateDataServer、ImageDataServer、GridDataServer等微服務(wù),形成數(shù)據(jù)服務(wù)層;一體化數(shù)據(jù)訪問服務(wù)總線根據(jù)訪問路由策略,從目前微服務(wù)中獲取數(shù)據(jù)。平臺(tái)各環(huán)節(jié)均采用了集群、高可用方法從而避免了系統(tǒng)單點(diǎn)故障的發(fā)生。

2.4 功能劃分

圖4給出了平臺(tái)的主要功能劃分。平臺(tái)主要由服務(wù)總線、資源管理和數(shù)據(jù)服務(wù)三大模塊構(gòu)成。

圖4 功能分布

服務(wù)總線是平臺(tái)用戶的統(tǒng)一出入口。提供數(shù)據(jù)、接口和算法等資源的分類瀏覽和檢索服務(wù);通過基于角色權(quán)限控制技術(shù)確保平臺(tái)的訪問安全;通過建立資源訪問黑、白名單確保數(shù)據(jù)、算法和服務(wù)資源安全;系統(tǒng)建立總體訪問量、用戶訪問量等流量信息內(nèi)存模型,新的請(qǐng)求發(fā)起之前進(jìn)行流量限制策略對(duì)比,達(dá)到限制則立即中斷訪問,確保系統(tǒng)在有效負(fù)載下運(yùn)行;平臺(tái)的各類數(shù)據(jù)存放在不同存儲(chǔ)系統(tǒng),算法與服務(wù)也以微服務(wù)方式部署在不同主機(jī),服務(wù)總線收到用戶的資源訪問請(qǐng)求后,根據(jù)訪問接口名稱、數(shù)據(jù)種類與時(shí)間戳進(jìn)行綜合判斷確定提供服務(wù)的訪問鏈路進(jìn)行重新路由定位,它是平臺(tái)的核心內(nèi)容之一;平臺(tái)根據(jù)每次調(diào)用的詳細(xì)日志記錄,分析各個(gè)接口的平均耗時(shí)、最大耗時(shí),以及時(shí)間段內(nèi)的訪問量和緩存命中率,綜合分析平臺(tái)運(yùn)行的性能等;在線調(diào)試是提供給用戶的可視化在線資源調(diào)用模擬環(huán)境。

資源管理是管理員和眾創(chuàng)人員注冊(cè)、發(fā)布和變更各類資源的統(tǒng)一入口。各類資源的需求都會(huì)隨業(yè)務(wù)需求發(fā)生變化,例如新增數(shù)據(jù)種類,新增服務(wù)算法,修改算法具體實(shí)現(xiàn)、變更接口參數(shù)、變更訪問路由策略等,該模塊提供了以上可視化的操作功能。

接口服務(wù)是平臺(tái)部署的各類數(shù)據(jù)訪問、內(nèi)嵌算法服務(wù)和眾創(chuàng)算法服務(wù)微服務(wù)集。主要涵蓋站點(diǎn)、格點(diǎn)、文件、圖形產(chǎn)品、衛(wèi)星數(shù)據(jù)等的寫入、讀取功能;內(nèi)置有統(tǒng)計(jì)分析、圖形渲染與格點(diǎn)數(shù)據(jù)的融合、插值、裁剪等算法,眾創(chuàng)算法服務(wù)主要由第三方公司編寫的具有復(fù)用性的算法或業(yè)務(wù)功能微服務(wù)。

以上三大模塊構(gòu)成平臺(tái)的整體框架,其中平臺(tái)還涉及到多類數(shù)據(jù)的融合、格式轉(zhuǎn)換、日志維護(hù)等,這些功能相互協(xié)調(diào)才能形成完整的平臺(tái)。

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

平臺(tái)的綜合運(yùn)用多種IT技術(shù),其中多源異構(gòu)數(shù)據(jù)融合是利用同步技術(shù)將結(jié)構(gòu)化與格式轉(zhuǎn)換技術(shù)將非結(jié)構(gòu)化的數(shù)據(jù)集中統(tǒng)一存儲(chǔ),解決數(shù)據(jù)格式、存儲(chǔ)策略、存儲(chǔ)技術(shù)和管理系統(tǒng)集中統(tǒng)一化問題,是平臺(tái)數(shù)據(jù)支撐基礎(chǔ);網(wǎng)格數(shù)據(jù)裁剪和插值等技術(shù),主要是面向基于位置氣象應(yīng)用場(chǎng)景提供的微服務(wù)算法,是平臺(tái)算法服務(wù)的部分內(nèi)容;熔斷技術(shù)是平臺(tái)主動(dòng)檢測(cè)微服務(wù)性能、響應(yīng)時(shí)間是否正常,當(dāng)異常發(fā)生時(shí)則主動(dòng)將該服務(wù)進(jìn)行隔離,避免過多請(qǐng)求排隊(duì)等待該服務(wù)響應(yīng),導(dǎo)致平臺(tái)整體性能和容量被擠占無法正常服務(wù),是平臺(tái)正常運(yùn)行的關(guān)鍵;高可用和高并發(fā)是決定平臺(tái)承載容量的關(guān)鍵,緩存、數(shù)據(jù)壓降低平臺(tái)響應(yīng)延時(shí),提升并發(fā)能力;高可用軟件保證核心數(shù)據(jù)的熱備,負(fù)載均衡保證服務(wù)節(jié)點(diǎn)共擔(dān)服務(wù)壓力,提升數(shù)據(jù)與服務(wù)的可靠性。下面詳細(xì)對(duì)關(guān)鍵技術(shù)實(shí)現(xiàn)進(jìn)行詳述。

3.1 結(jié)構(gòu)化數(shù)據(jù)融合

采用同步技術(shù)實(shí)現(xiàn)數(shù)據(jù)的主-備分離存儲(chǔ),主庫提供數(shù)據(jù)的寫入服務(wù),備庫提供檢索服務(wù),讀寫分離策略是提升系統(tǒng)服務(wù)能力的常用手段。平臺(tái)涉及的數(shù)據(jù)庫的同步技術(shù)根據(jù)捕獲數(shù)據(jù)源發(fā)生變更方法分為ETL、觸發(fā)器和歸檔日志同步3種。ETL(extract-transform-load)同步,即將源數(shù)據(jù)抽取出來后,進(jìn)行數(shù)據(jù)字段轉(zhuǎn)換等處理操作,再插入到目標(biāo)存儲(chǔ)系統(tǒng)中的過程,該方法最為簡(jiǎn)單,但同步時(shí)效性最差。觸發(fā)器同步,在源數(shù)據(jù)表上創(chuàng)建觸發(fā)器對(duì)表格數(shù)據(jù)的變更記錄在表中,自行開發(fā)程序讀取變更記錄在目標(biāo)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)變更操作回放,達(dá)到同步目的。歸檔日志同步,數(shù)據(jù)庫在運(yùn)行過程中均會(huì)對(duì)數(shù)據(jù)的變更產(chǎn)生歸檔日志,由第三方軟件產(chǎn)品抽取日志,并對(duì)變更數(shù)據(jù)進(jìn)行可選擇處理后在目標(biāo)庫進(jìn)行數(shù)據(jù)變更操作回放,達(dá)到數(shù)據(jù)同步目的。主流的工具有(oracle goldengate,OGG),可兼容絕大多數(shù)關(guān)系型數(shù)據(jù)庫同步等。

圖5給出了平臺(tái)的數(shù)據(jù)同步業(yè)務(wù)流程。采用3種同步技術(shù)將分散、凌亂、異構(gòu)數(shù)據(jù)整合到緩沖數(shù)據(jù)庫臨時(shí)存儲(chǔ)短時(shí)數(shù)據(jù),利用OGG將數(shù)據(jù)同步到應(yīng)用數(shù)據(jù)庫中的短時(shí)數(shù)據(jù)表,隨時(shí)間推移短時(shí)數(shù)據(jù)轉(zhuǎn)變?yōu)闅v史數(shù)據(jù)被遷移到按年存儲(chǔ)的歷史表中,服務(wù)平臺(tái)根據(jù)用戶請(qǐng)求數(shù)據(jù)的時(shí)間參數(shù)決定訪問對(duì)應(yīng)數(shù)據(jù)表,從而向業(yè)務(wù)提供合適的數(shù)據(jù)和增強(qiáng)系統(tǒng)的并發(fā)承載能力。

圖5 平臺(tái)數(shù)據(jù)同步業(yè)務(wù)流程

3.2 格點(diǎn)數(shù)據(jù)融合

氣象行業(yè)對(duì)于網(wǎng)格數(shù)據(jù)的較多采用GRIB、NetCDF、HDF、AWX和自定義二進(jìn)制格式進(jìn)行存儲(chǔ)。格式不同,但格點(diǎn)數(shù)據(jù)的使用方法非常類似,為此許婧[5]、劉立明[6]、肖華東[7]等利用Mars系統(tǒng)對(duì)氣象模式數(shù)據(jù)管理和業(yè)務(wù)應(yīng)用進(jìn)行研究,但從實(shí)際的使用效果來看,復(fù)雜命令集和自定義功能擴(kuò)展的局限性給氣象業(yè)務(wù)系統(tǒng)開發(fā)提出較高技術(shù)要求。

因此,根據(jù)實(shí)際業(yè)務(wù)需求(例如:裁剪、插值、升降尺度等操作)設(shè)計(jì)符合氣象業(yè)務(wù)需求的統(tǒng)一格點(diǎn)數(shù)據(jù)格式,建立集中存儲(chǔ)的格點(diǎn)數(shù)據(jù)庫和格點(diǎn)數(shù)據(jù)統(tǒng)一化處理模塊,將天氣、氣候、海洋、環(huán)境模式,大氣再分析和天氣實(shí)況等進(jìn)行規(guī)整化處理,為開發(fā)格點(diǎn)產(chǎn)品服務(wù)集提供數(shù)據(jù)基礎(chǔ)。圖6詳細(xì)描述了格點(diǎn)數(shù)據(jù)融合業(yè)務(wù)流程。

圖6 格點(diǎn)數(shù)據(jù)融合業(yè)務(wù)流程

3.3 裁剪技術(shù)

數(shù)值模式產(chǎn)品大多為涵蓋為全球、半球、洲際或局部地區(qū),實(shí)際應(yīng)用中區(qū)域性需求非常普遍,為提高業(yè)務(wù)處理效率需要對(duì)數(shù)據(jù)進(jìn)行按需裁剪。根據(jù)文獻(xiàn)[8]中提出網(wǎng)格裁剪的內(nèi)縮和外擴(kuò)方法,根據(jù)用戶裁剪范圍的始、終點(diǎn)落在網(wǎng)格點(diǎn)的具體方位不同給出對(duì)應(yīng)的處理方法,圖7為具體處理,本文設(shè)計(jì)了內(nèi)縮和外擴(kuò)方法的具體實(shí)現(xiàn)算法。

圖7 內(nèi)縮算法效果

算法1: 內(nèi)縮和外擴(kuò)裁剪算法—左上角定位

輸入:ltP左上坐標(biāo),rbP右下坐標(biāo),xArray是X方向的升序經(jīng)度值數(shù)組,yArray是Y方向的升序緯度值數(shù)組,offsetleft為采用內(nèi)縮或外擴(kuò)標(biāo)識(shí)位。

輸出:ret取值點(diǎn)的下標(biāo)值

(1)functionfindLeftTopP(ltP.x,rbP.y,xArray,yArray,offsetleft)

(2)ret←0

(3)tmpIndex1←0,tmpIndex2←0,i←0;

(4)whilei

(5)ifltP.x-xArray[i]<=0.00001then

(6)tmpIndex1←tmpIndex2←i;

(7)break;

(8)elseifltP.x-xArray[i]>0.00001then

(9)break;

(10)else

(11)tmpIndex1←i;

(12)tmpIndex2←i+1;

(13)i++;

(14)endif

(15)endwhile

(16)ifoffsetleftthen

(17)ret←tmpIndex1

(18)else

(19)ret←tmpIndex2

(20)endif

(21)returnret

(22)endfunction

3.4 插值算法

基于用戶位置的氣象服務(wù)場(chǎng)景中,需要從網(wǎng)格數(shù)據(jù)中提取當(dāng)前位置的氣象要素(天氣實(shí)況和預(yù)報(bào)),因此需要通過插值方法從相鄰網(wǎng)格中計(jì)算當(dāng)前位置的氣象要素值。本系統(tǒng)采用氣象中常用的最近距離法[9]、反距離加權(quán)[10](IDW)和雙線性插值算法(BL)。網(wǎng)格密度小于1 km*1 km 時(shí)采用NN算法較為合理,否則可采用IDW或BL插值算法。本文給出具體的任意位置氣象要素插值算法如下:

算法2: 任意點(diǎn)求值算法

輸入:lon經(jīng)度值,lat緯度值,type插值算法類型

輸出:ret氣象要素值

(1)functioninterpolate(lon,lat,type)

(2)ret←UNDEFINED

(3)xArray←getXPointsFromGridFile()

(4)yArray←getXPointsFromGridFile()

(5)ifisInThePoint(xArray,yArray,lon,lat)then

(6) ret←findVal(findP(lon,xArray,lat,yArray));

(7)else

(8)ltP←findVal(findLeftTopP (lon,lat))

(9)lbP←findVal(findLeftButP (lon,lat))

(10)rtP←findVal(findRighTopP (lon,lat))

(11)rbP←findVal(findRighButP (lon,lat))

(12)switch(type)

(13)caseNN:

(14)ret←NNInterpolate(ltP,lbP,rtP,rbP)

(15)caseIDW:

(16)ret←IDWInterpolate(ltP,lbP,rtP,rbP)

(17)caseBL:

(18) ret←BLInterpolate(ltP,lbP,rtP,rbP)

(19)endswitch

(20)endif

(21)returnret

(22)endfunction

(23)

(24)functionfindP(lon,xArray,lat,yArray)

(25)i←0,j←0;

(26)whilexArray[i++]-lon<0.00001do

(27) break;

(28)endwhile

(29)whileyArray[i++]-lat<0.00001do

(30) break;

(31)endwhile

(32)point.x←i,point.y←j;

(33)returnpoint;

(34)endfunction

(35)

(36)functionfindVal(point)

(37)valArray←getXPointsFromGridFile()

(38)xRowGridLen←xArray.len

(39)yRowGridLen←yArray.len

(40)index←(int)(point.x/xRowGridLen)+point.x%xRowGridLen+(int)(point.y/yRowGridLen)

(41)returnvalArray[index]

(42)endfunction

3.5 熔斷設(shè)計(jì)

平臺(tái)的服務(wù)總線會(huì)根據(jù)用戶調(diào)用的數(shù)據(jù)內(nèi)容將請(qǐng)求路由到后臺(tái)服務(wù),當(dāng)后臺(tái)服務(wù)出現(xiàn)故障、性能下降或超出承載能力時(shí),則需要通知服務(wù)總線限制或暫停對(duì)該類調(diào)用提供服務(wù),避免服務(wù)總線負(fù)載大量的不可達(dá)服務(wù)而使整個(gè)平臺(tái)無法提供其它數(shù)據(jù)服務(wù)的情況。

設(shè)計(jì)鏈路狀態(tài)數(shù)據(jù)結(jié)構(gòu)S={r,s,a,mi,ma,ut}, 其中r為平臺(tái)能唯一標(biāo)識(shí)的服務(wù)鏈路,s為服務(wù)是否可達(dá)狀態(tài),a為服務(wù)平均響應(yīng)時(shí)間,mi為服務(wù)響應(yīng)最小時(shí)間,ma為服務(wù)響應(yīng)最大時(shí)間,ut為鏈路狀態(tài)的更新時(shí)間。設(shè)計(jì)鏈路健康性檢查,定時(shí)探測(cè)更新平臺(tái)中的所有服務(wù)鏈路健康狀態(tài),利用高速緩存持久化保存。服務(wù)總線收到請(qǐng)求首先檢查服務(wù)鏈路狀態(tài),然后依據(jù)表1所示熔斷規(guī)則進(jìn)行處理。

表1 服務(wù)熔斷處理策略

3.6 格點(diǎn)服務(wù)高可用設(shè)計(jì)

格點(diǎn)服務(wù)是數(shù)字網(wǎng)格預(yù)報(bào)業(yè)務(wù)的基礎(chǔ),它提供了網(wǎng)格數(shù)據(jù)的寫入、讀取和插值服務(wù),該服務(wù)的中斷或數(shù)據(jù)缺失直接影響預(yù)報(bào)業(yè)務(wù)的中斷,利用RoseMirrorHA[11]設(shè)計(jì)了服務(wù)高可用和主、備數(shù)據(jù)準(zhǔn)實(shí)時(shí)同步的架構(gòu)。圖8由2臺(tái)服務(wù)器、高可用軟件、公網(wǎng)與私網(wǎng)組成,兩臺(tái)服務(wù)器安裝相同的業(yè)務(wù)軟件,高可用軟件創(chuàng)建服務(wù)IP對(duì)外提供服務(wù),當(dāng)用戶發(fā)起讀取或?qū)懭霐?shù)據(jù)請(qǐng)求時(shí),由主服務(wù)器進(jìn)行響應(yīng),高可用軟件將發(fā)生變化的數(shù)據(jù)塊通過私網(wǎng)同步到備份服務(wù)器。當(dāng)主服務(wù)器宕機(jī)或格點(diǎn)服務(wù)掉線,備服務(wù)器會(huì)探知主服務(wù)器異常發(fā)生,則綁定服務(wù)IP并接管格點(diǎn)服務(wù),由此達(dá)到數(shù)據(jù)一致且服務(wù)高可用的效果。

圖8 格點(diǎn)服務(wù)高可用架構(gòu)

3.7 高并發(fā)策略

數(shù)據(jù)的存儲(chǔ)層性能和網(wǎng)絡(luò)傳輸速率是影響系統(tǒng)并發(fā)的兩個(gè)關(guān)鍵因素,系統(tǒng)利用緩存技術(shù)減少系統(tǒng)對(duì)數(shù)據(jù)存儲(chǔ)的讀寫操作,利用壓縮技術(shù)減少數(shù)據(jù)與客戶端之間數(shù)據(jù)量,從而提升平臺(tái)的響應(yīng)能力。

(1)高速緩存:服務(wù)總線根據(jù)調(diào)用請(qǐng)求中的參數(shù)值,以接口定義中的參數(shù)順序形成唯一的Key,若命中緩存,則從緩存中讀取數(shù)據(jù);否則,從存儲(chǔ)系統(tǒng)檢索數(shù)據(jù),將原始結(jié)果加工為字符型Value,存儲(chǔ)到緩存系統(tǒng)后,返回給用戶,從而緩解大量相同數(shù)據(jù)請(qǐng)求對(duì)存儲(chǔ)系統(tǒng)造成IO的沖擊,提高數(shù)據(jù)服務(wù)響應(yīng)能力和并發(fā)能力。主要實(shí)現(xiàn)算法如下:

算法3: 緩存算法

輸入:apiObj接口定義對(duì)象

輸出:retObj返回?cái)?shù)據(jù)結(jié)果對(duì)象

(1)functiongetDatasFromCache(apiObj)

(2)ret←newObject{}

(3)key←getKeyStr(apiObj)

(4) if Redis.contains(key)

(5)ret←Redis.get(key)

(6) else

(7)ret←getDatasFromDisk()//根據(jù)存儲(chǔ)類型具體實(shí)現(xiàn)方法有所差別

(8) Redis.put(key,ret,apiObj.expireTime)

(9) end if

(10) returnretObj;

(11)endfunction

(12)functiongetKeyStr(apiObj)

(13)ret←UNDEFINED

(14)list←sortParameters(apiObj.parameters)

(15)whilei

(16)p←list.get(i)

(17)ret←‘.’+p.val

(18)i++

(19)endwhile

(20)returnret

(21)endfunction

(22)functionsortParameters(ps)

(23)fori=ps.size→0do

(24)forj=0→i-1do

(25)ifps[j]>ps[j+1]

(26)temp←ps[j]

(27)ps[j]←ps[j+1]

(28)ps[j+1]←temp

(29)endif

(30)endfor

(31)endfor

(32)endfunction

(2)數(shù)據(jù)壓縮:平臺(tái)采用HTTP協(xié)議與客戶端進(jìn)行數(shù)據(jù)交換,對(duì)于格點(diǎn)、衛(wèi)星、圖形產(chǎn)品和文件等二進(jìn)制數(shù)據(jù),需要對(duì)數(shù)據(jù)進(jìn)行Base64編碼后才能返回用戶,但Base64編碼會(huì)讓數(shù)據(jù)量增長(zhǎng)原有長(zhǎng)度的1/3,從而增加網(wǎng)絡(luò)的傳輸時(shí)延,特別是在大數(shù)據(jù)量情況下影響非常大。因此,平臺(tái)調(diào)用設(shè)計(jì)啟用與關(guān)閉數(shù)據(jù)壓縮的系統(tǒng)參數(shù),由調(diào)用用戶控制是否進(jìn)行壓縮傳輸。平臺(tái)默認(rèn)使用GZIP壓縮算法進(jìn)行數(shù)據(jù)傳輸,具體的編解碼過程和效率可參見文獻(xiàn)[12]。

(3)負(fù)載均衡:用戶通過網(wǎng)絡(luò)直接與Web服務(wù)器相連接,但如果服務(wù)器出現(xiàn)故障,則無法正常提供服務(wù);即使服務(wù)器正常工作,但當(dāng)很多用戶同時(shí)訪問服務(wù)器,超過服務(wù)器的承載能力,則會(huì)出現(xiàn)響應(yīng)慢甚至無法連接的情況,這兩種情況都影響系統(tǒng)可用性和并發(fā)性。將多個(gè)等功能的服務(wù)器組成集群,由負(fù)載均衡將用戶的訪問請(qǐng)求分發(fā)到不同的服務(wù)器,可提高平臺(tái)整體的承載能力,也可快速擴(kuò)展系統(tǒng)承載力,同時(shí)容忍部分服務(wù)器宕機(jī)情況發(fā)生,很好解決了上面提到的兩個(gè)問題。

4 性能分析與業(yè)務(wù)應(yīng)用

4.1 性能分析

針對(duì)一體化數(shù)據(jù)訪問平臺(tái)和省級(jí)綜合氣象信息共享平臺(tái)(簡(jiǎn)稱:CIMISS)[13]進(jìn)行性能對(duì)比測(cè)試,測(cè)試終端環(huán)境如下:硬件環(huán)境:CPU I5-4590 3.3 GHz;內(nèi)存8 GB;硬盤500 GB;千兆網(wǎng);軟件環(huán)境:JMeter3.1,Windows 10 64位。

表2以調(diào)取廣東某觀測(cè)時(shí)國(guó)家氣象站資料為例,分別在10、20、50、100、150、200并發(fā)下測(cè)得兩套系統(tǒng)的平均響應(yīng)時(shí)效和業(yè)務(wù)吞吐量,一體化訪問平臺(tái)的優(yōu)于CIMISS系統(tǒng),且在200并發(fā)時(shí)平均響應(yīng)314 ms響應(yīng),事務(wù)處理能力達(dá)到530 TPS,能夠滿足業(yè)務(wù)應(yīng)用需求。

表2 站點(diǎn)數(shù)據(jù)訪問性能測(cè)試

表3以調(diào)取廣東范圍格點(diǎn)預(yù)報(bào)資料為例,10-200并發(fā)時(shí),一體化訪問服務(wù)平臺(tái)訪問效率和吞吐量遠(yuǎn)遠(yuǎn)于CIMISS系統(tǒng),且在200并發(fā)時(shí)在15 ms內(nèi)響應(yīng),事務(wù)處理能力達(dá)到4787 TPS,能夠滿足全省智能網(wǎng)格預(yù)報(bào)業(yè)務(wù)的訪問需求。

表3 格點(diǎn)數(shù)據(jù)訪問性能測(cè)試

表4以調(diào)取華南區(qū)域雷達(dá)拼圖產(chǎn)品為例,在10、20并發(fā)時(shí)CIMISS的時(shí)效性和吞吐量相差不大,但在50-200并發(fā)時(shí)一體化平臺(tái)明顯優(yōu)于CIMISS平臺(tái),且在200并發(fā)時(shí)系統(tǒng)能在41 ms內(nèi)響應(yīng),事務(wù)處理能力達(dá)到2017 TPS,能夠滿足全省圖形產(chǎn)品訪問的業(yè)務(wù)支撐。

表4 圖形產(chǎn)品訪問性能測(cè)試

綜合以上的響應(yīng)性能和并發(fā)能力對(duì)比測(cè)試,一體化數(shù)據(jù)訪問平臺(tái)的設(shè)計(jì)改善了數(shù)據(jù)訪問的時(shí)效和系統(tǒng)的吞吐量,且在200并發(fā)時(shí)能在秒級(jí)以內(nèi)響應(yīng)用戶請(qǐng)求,平臺(tái)的事務(wù)處理能力最少530 TPS,最大達(dá)到4787 TPS,完全滿足每日全省的氣象業(yè)務(wù)應(yīng)用訪問需求,達(dá)到預(yù)期的設(shè)計(jì)目的。

4.2 業(yè)務(wù)應(yīng)用

系統(tǒng)自應(yīng)用以來,用戶訪問量逐年增長(zhǎng),2019年相比2014年度數(shù)據(jù)下載量增長(zhǎng)100倍,訪問量增長(zhǎng)近50倍,如圖9所示。目前,系統(tǒng)單日數(shù)據(jù)訪問下載量達(dá)3.2 TB,單日訪問次數(shù)達(dá)3000萬次,成功支撐了廣東省精細(xì)化格點(diǎn)預(yù)報(bào)訂正平臺(tái)[8]、廣東省SWIFT系統(tǒng)平臺(tái)[8]、珠海城市生態(tài)氣象綜合系統(tǒng)[14]、繽紛微天氣公眾服務(wù)平臺(tái)等核心業(yè)務(wù)。

圖9 平臺(tái)逐年訪問量統(tǒng)計(jì)

5 結(jié)束語

本文分析了氣象領(lǐng)域的數(shù)據(jù)感知現(xiàn)狀和數(shù)據(jù)治理與應(yīng)用中存在的問題,形成的一體化數(shù)據(jù)訪問服務(wù)平臺(tái)為氣象數(shù)據(jù)的治理和分析應(yīng)用提供了統(tǒng)一環(huán)境,搭建了數(shù)據(jù)管理者與使用者之間的關(guān)鍵通道。該平臺(tái)對(duì)氣象行業(yè)和技術(shù)有以下貢獻(xiàn):①綜合利用多態(tài)數(shù)據(jù)存儲(chǔ)管理技術(shù)和數(shù)據(jù)同步技術(shù)將地球多圈層科研數(shù)據(jù)按照存儲(chǔ)格式分類規(guī)整處理,形成了一體化的綜合型氣象數(shù)據(jù)倉庫。②采用同步技術(shù)和分布式服務(wù)技術(shù)從邏輯上屏蔽了數(shù)據(jù)源的異構(gòu)性,借用服務(wù)總線設(shè)計(jì)思路形成標(biāo)準(zhǔn)化的數(shù)據(jù)、算法等服務(wù)集,為氣象業(yè)務(wù)形成一體化的數(shù)據(jù)調(diào)用環(huán)境。③提供的數(shù)據(jù)可視化與算法服務(wù),滿足了氣象業(yè)務(wù)中多數(shù)產(chǎn)品制作需求,推動(dòng)了數(shù)據(jù)服務(wù)向應(yīng)用服務(wù)的觀念轉(zhuǎn)型。④在全國(guó)氣象行業(yè)率先以RESTful API的方式向業(yè)務(wù)單位發(fā)布數(shù)據(jù),為全國(guó)氣象綜合業(yè)務(wù)系統(tǒng)的建設(shè)提供先進(jìn)經(jīng)驗(yàn)。

隨著氣象業(yè)務(wù)應(yīng)用復(fù)雜度增加,其對(duì)數(shù)據(jù)的種類和數(shù)量也在增加,可視化服務(wù)的個(gè)性化需求更加突出,平臺(tái)面臨數(shù)據(jù)、算法和服務(wù)能力的多重挑戰(zhàn)。后期研究中除兼容更多先進(jìn)存儲(chǔ)技術(shù)外,針對(duì)用戶個(gè)性化需求研究算法服務(wù)眾創(chuàng)功能,結(jié)合微服務(wù)和容器技術(shù)降低平臺(tái)的耦合度,增強(qiáng)平臺(tái)的橫向擴(kuò)展能力和服務(wù)處理能力。

猜你喜歡
服務(wù)系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
半沸制皂系統(tǒng)(下)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
主站蜘蛛池模板: 中文字幕日韩视频欧美一区| 中文字幕资源站| 999国产精品永久免费视频精品久久 | 最新午夜男女福利片视频| 国产最新无码专区在线| 五月天丁香婷婷综合久久| 亚洲国产清纯| 五月婷婷综合网| 午夜丁香婷婷| AV不卡在线永久免费观看| 亚洲天堂网2014| 亚洲国产中文精品va在线播放| 精品无码专区亚洲| 欧美成人国产| 日本午夜影院| 四虎影院国产| 久热99这里只有精品视频6| 亚洲欧美综合另类图片小说区| 凹凸国产分类在线观看| 国产欧美视频在线| 欧美成人午夜在线全部免费| 日韩精品免费一线在线观看| 国产亚洲欧美在线专区| 亚洲日韩高清在线亚洲专区| 深爱婷婷激情网| 88国产经典欧美一区二区三区| 国产av一码二码三码无码| 日日噜噜夜夜狠狠视频| 国产极品美女在线播放| 91精品国产综合久久香蕉922| 欧美成人精品欧美一级乱黄| 欧美成人在线免费| 免费a在线观看播放| 99re热精品视频国产免费| 综合色天天| 一级在线毛片| 毛片卡一卡二| 国产精品福利社| 国产精品刺激对白在线| 女人18毛片一级毛片在线 | 欧美国产日韩另类| 久久综合色视频| 亚洲国产欧美中日韩成人综合视频| 亚洲成a人片7777| 97人妻精品专区久久久久| 久久综合AV免费观看| 久久久久免费精品国产| 四虎亚洲精品| a级毛片视频免费观看| 中文字幕首页系列人妻| 欲色天天综合网| 欧洲熟妇精品视频| 美女潮喷出白浆在线观看视频| 成人伊人色一区二区三区| 精品国产一二三区| 亚洲精品视频网| 一级福利视频| 18禁黄无遮挡免费动漫网站| 国产精品黄色片| 亚洲欧美一区二区三区蜜芽| 色婷婷狠狠干| 无码高潮喷水在线观看| 国产精品黑色丝袜的老师| 亚洲a级毛片| 国产成人一区| 国产亚洲精品91| 国产成人精品日本亚洲| 国产黑丝一区| 亚洲欧美日本国产专区一区| 91久草视频| 99一级毛片| 国产精品乱偷免费视频| 久久综合五月| 亚洲AV人人澡人人双人| 欧美一区二区啪啪| 五月婷婷综合网| 亚洲成a∧人片在线观看无码| 国产超薄肉色丝袜网站| 好久久免费视频高清| 99久久国产综合精品女同| 福利国产微拍广场一区视频在线| 国产精品欧美激情|