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

        ?

        RabbitMQ在氣象通信系統(tǒng)中的應(yīng)用研究

        2020-04-30 04:26:14余永城翁秋華
        計算機技術(shù)與發(fā)展 2020年4期

        余永城,翁秋華,段 卿,袁 偉

        (福建省氣象信息中心,福建 福州 350001)

        0 引 言

        氣象通信系統(tǒng)是承擔(dān)氣象觀測數(shù)據(jù)從臺站生成—省級—國家級的收集、處理、分發(fā)的一套業(yè)務(wù)系統(tǒng)[1-2]?,F(xiàn)有的氣象通信系統(tǒng)1.0版本是基于傳統(tǒng)的FTP文件傳輸方式進行觀測數(shù)據(jù)的收集處理的,因為是文件級的傳輸,需要在服務(wù)器上落盤處理,因此對服務(wù)器磁盤的I/O性能要求比較高。同時,基于TCP/IP協(xié)議的FTP文件傳輸方式存在諸如效率低下和數(shù)據(jù)傳輸模式不合理等問題。隨著現(xiàn)代氣象自動觀測技術(shù)的迅速發(fā)展,氣象資料的數(shù)量及類型都大大增加。重要的氣象觀測資料產(chǎn)生的頻次已經(jīng)提升到了分鐘級,傳輸?shù)臅r效也提高到了秒級。目前的氣象通信系統(tǒng)1.0版本已無法滿足大數(shù)量、高頻次、多種類的觀測數(shù)據(jù)高時效傳輸。因此如何快速地將觀測數(shù)據(jù)通過氣象通信系統(tǒng)傳輸?shù)绞〖壓蛧壹壥呛荜P(guān)鍵的。

        RabbitMQ消息隊列技術(shù)支持多種客戶端,非常適合在分布式計算系統(tǒng)消息存儲轉(zhuǎn)發(fā)的場景中使用[3]。RabbitMQ采用Socket傳輸協(xié)議,服務(wù)器端支持隊列持久化,可以有效保證各個傳輸環(huán)節(jié)中數(shù)據(jù)的完整性[4],同時RabbitMQ提供路由控制轉(zhuǎn)發(fā)功能符合氣象數(shù)據(jù)傳輸?shù)臉I(yè)務(wù)需求。通過對RabbitMQ消息隊列技術(shù)在氣象通信系統(tǒng)中的應(yīng)用研究,設(shè)計開發(fā)了基于消息通信傳輸模式的氣象通信系統(tǒng)2.0版本。

        1 消息隊列技術(shù)

        1.1 消息中間件

        消息是消息隊列中的最小單元,實質(zhì)上是一段可由一個或多個應(yīng)用程序理解的數(shù)據(jù)[5-7],一般作為多個應(yīng)用程序之間的信息傳輸載體。消息隊列(message queue),也即消息中間件,具有流量控制、低耦合、廣播、高效、可靠投遞、一致性等功能。消息隊列通過其高可靠的傳遞機制可進行和平臺無關(guān)的數(shù)據(jù)交換[8-11]。消息隊列技術(shù)正逐漸成為各行業(yè)通信系統(tǒng)中廣泛使用的核心技術(shù),目前市面上有很多主流消息隊列中間件,如ActiveMQ,RabbitMQ,Kafka,RocketMQ等。

        消息中間件常見的有兩種傳遞方式:點對點(Point-to-Point)方式和發(fā)布/訂閱(Pub/Sub)方式[12]。Point-to-Point方式是基于隊列的。發(fā)布者將消息發(fā)布到隊列中,消息訂閱者從隊列中獲取消息。由于隊列的這種點對點傳遞機制,使得消息具備異步傳輸?shù)墓δ?。Pub/Sub方式定義了向一個主題(Topic)發(fā)布消息還是訂閱消息。在消息傳遞的過程中,主題作為傳輸介質(zhì),消息發(fā)布者和訂閱者都要依靠主題進行,發(fā)布者將消息發(fā)布到主題中,訂閱者則訂閱來自主題中的消息。

        1.2 RabbitMQ

        高級消息隊列協(xié)議(advanced message queuing protocol,AMQP)是一個面向消息的中間件設(shè)計的應(yīng)用層協(xié)議開放標準[13]。無論客戶端/中間件不同的產(chǎn)品,不同的開發(fā)語言等,只要基于此協(xié)議的客戶端和消息中間件都可進行消息的傳遞。主要特點是面向消息、隊列、路由、可靠、安全[14-15]。RabbitMQ是一個開源的AMQP的標準實現(xiàn),支持多種語言的客戶端,非常適合在分布式系統(tǒng)消息存儲轉(zhuǎn)發(fā)的場景中使用。RabbitMQ消息隊列采用Socket傳輸協(xié)議,服務(wù)端支持消息隊列的持久性,可以有效保證各個環(huán)節(jié)流轉(zhuǎn)過程的觀測數(shù)據(jù)完整性。同時,RabbitMQ提供靈活的路由控制轉(zhuǎn)發(fā)功能,符合氣象數(shù)據(jù)傳輸?shù)臉I(yè)務(wù)需求。

        RabbitMQ服務(wù)端主要由主題(Topic)和隊列(Queue)組成??蛻舳送ǔS袃煞N類型:發(fā)布者(Producer)和消費者(Consumer)。主題負責(zé)接收消息和路由鍵值(Routing-Key)信息,然后根據(jù)路由鍵值信息將消息分配給消息隊列。RabbitMQ消息傳輸模式如圖1所示。首先,消息發(fā)布者P向主題X發(fā)送帶有路由鍵值R.#的消息。然后,服務(wù)端會根據(jù)路由鍵值信息將消息轉(zhuǎn)發(fā)到相應(yīng)的隊列Q中。最后,消費者C就可以從隊列Q中獲取相應(yīng)的消息進行消費。

        圖1 RabbitMQ消息傳輸模式

        2 RabbitMQ在氣象通信系統(tǒng)中的應(yīng)用

        2.1 氣象觀測資料

        隨著自動觀測技術(shù)的快速發(fā)展,氣象觀測資料產(chǎn)生的頻次已經(jīng)提升到了分鐘級。表1所示為部分的氣象觀測資料類型和它的數(shù)據(jù)傳輸頻次,每種資料大小都在200字節(jié)以上,有些可以達到幾KB,甚至幾MB。傳統(tǒng)TCP/IP協(xié)議的FTP文件傳輸方式已經(jīng)無法滿足這么高的傳輸頻次和海量觀測數(shù)據(jù)的傳輸需要,而且頻繁的文件讀寫,會大大影響服務(wù)器的整體性能。

        表1 部分氣象觀測資料類型

        續(xù)表1

        為了解決觀測資料傳輸頻次和海量數(shù)據(jù)的傳輸問題,使用RabbitMQ消息隊列技術(shù)進行數(shù)據(jù)的傳輸。不僅可以保證傳輸?shù)目煽啃?,還可以大大提高從臺站到省到國家的數(shù)據(jù)傳輸?shù)募皶r性。而且,在整個過程中,不會生成文件,這也會減少磁盤的讀寫。

        2.2 消息傳輸架構(gòu)設(shè)計

        基于RabbitMQ消息中間件技術(shù)開發(fā)的氣象通信系統(tǒng),包含消息傳輸客戶端,省級消息傳輸服務(wù)端和國家級消息傳輸服務(wù)端三大部分。其中,消息傳輸客戶端安裝在地面氣象觀測站,消息傳輸服務(wù)端分別部署在省級消息服務(wù)器和國家級消息服務(wù)器。氣象觀測數(shù)據(jù)消息傳輸流程如圖2所示,觀測臺站通過消息傳輸客戶端將ISOS軟件觀測到數(shù)據(jù)以消息的方式傳給省級下消息服務(wù)端,省級消息服務(wù)端通過配置shovel插件,將消息數(shù)據(jù)轉(zhuǎn)發(fā)到國家級的消息傳輸服務(wù)端。

        2.3 數(shù)據(jù)消息封裝

        通過研究RabbitMQ消息隊列技術(shù),結(jié)合氣象觀測數(shù)據(jù)的特點,利用消息中間件傳輸觀測數(shù)據(jù),有必要設(shè)計傳輸過程中的數(shù)據(jù)格式,即數(shù)據(jù)消息封裝。文中制定了一種氣象數(shù)據(jù)的消息傳輸格式,它包括消息頭(Message Header)和消息體(Message Body)。消息頭以鍵值對的形式存放消息屬性,消息體則以字符串的形式存放報文信息。消息頭和消息體封裝成消息,然后發(fā)送到消息隊列中。在消息傳輸過程中,不需要對報文進行解碼,通過讀取消息頭中的消息屬性就可以對需要監(jiān)視的信息進行提取,減少了傳輸過程中的處理成本。

        根據(jù)氣象數(shù)據(jù)的特點,消息屬性的詳細設(shè)計如表2所示。為了排查重復(fù)發(fā)送的報文,將隨機UUID添加到消息屬性設(shè)計中作為消息傳輸?shù)奈ㄒ粯俗R符;消息屬性里應(yīng)包含消息發(fā)布者和消息接收者信息,通過讀取屬性,就可以知道消息的轉(zhuǎn)發(fā)方式;氣象數(shù)據(jù)在各個傳輸環(huán)節(jié)中,需要加以監(jiān)視,因此消息屬性中應(yīng)該包含消息發(fā)送時間、站號、氣象資料四級編碼、觀測時間等監(jiān)視信息等。

        2.4 高時效高可靠設(shè)計

        氣象數(shù)據(jù)傳輸具有高度的時間敏感性,特別是對于國家級考核的資料要求的時效性更高。為了保證地面標準格式(BUFR)數(shù)據(jù)的秒級傳輸,設(shè)計了RabbitMQ多機多節(jié)點的集群部署模式,如圖3所示。臺站通過消息發(fā)送客戶端將消息發(fā)送到省級服務(wù)端,省級服務(wù)端通過HA-Proxy負載均衡技術(shù)將消息轉(zhuǎn)發(fā)給國家級服務(wù)端。HA-Proxy是一款高可用性、負載均衡以及基于四層TCP和七層HTTP應(yīng)用的代理軟件,它可以支持數(shù)以萬計的并發(fā)連接[16]。

        圖4為多次模擬RabbitMQ雙機多節(jié)點(1~8節(jié)點)部署模式下,大批量消息數(shù)據(jù)從臺站生成到國家級接收的實際用時情況。從傳輸時效性曲線圖中可以得出結(jié)論:相同的測試環(huán)境下,不管是雙機單節(jié)點、雙機雙節(jié)點還是雙機8節(jié)點,87%以上的消息數(shù)據(jù)都能在1秒內(nèi)完成臺站到國家級的傳輸,96%以上的數(shù)據(jù)都在2秒內(nèi)完成傳輸,全部的數(shù)據(jù)都能在10秒內(nèi)完成傳輸。從氣象資料時效性和服務(wù)器性能方面綜合考慮,決定在省級部署兩臺消息服務(wù)器,每臺服務(wù)器上部署八個RMQ節(jié)點,就可實現(xiàn)氣象觀測數(shù)據(jù)的秒級傳輸。

        圖3 RabbitMQ多機多節(jié)點集群部署模式

        圖4 雙機多節(jié)點傳輸時效性測試結(jié)果

        從實驗結(jié)果可以看出,RabbitMQ多機多節(jié)點集群模式可以大幅度提升消息傳輸效率。不但如此,多機多節(jié)點的集群模式允許消息發(fā)布者與消費者在某個RMQ節(jié)點意外宕機的情況下繼續(xù)保持運行,當(dāng)RMQ節(jié)點在集群中宕機后,消息傳輸客戶端可以重新鏈接到集群中的其它節(jié)點繼續(xù)進行消息的傳輸。另外,為了增加消息傳輸?shù)目煽啃?,采用了消息發(fā)布確認和消息接收確認模式。發(fā)布確認可以有效確保消息傳輸?shù)搅讼⒎?wù)器,假如超過規(guī)定的時間,消息還沒有抵達到指定服務(wù)器,就會返回發(fā)送超時的錯誤代碼,當(dāng)客戶端收到該錯誤代碼后,會試著再一次發(fā)送;接收確認的原理是:在消息消費者獲取消息之后,并沒有馬上把消息刪除,而是將消息標識為Unacked狀態(tài),直到收到消費者消費完消息返回ack指令后,才會從隊列中刪除消息,從而保證消息的完整,不丟失。

        2.5 交換控制策略設(shè)計

        消息隊列交換控制策略主要依賴于RabbitMQ的兩個核心組件:主題Topic和隊列Queue。在消息發(fā)布者將消息發(fā)布到主題之后,服務(wù)端根據(jù)消息中攜帶的路由鍵值對主題中的消息進行交換控制。也就是說,將含有某些特定標識符的路由鍵值信息捆綁到某一個隊列當(dāng)中,消息訂閱者就可以從相應(yīng)的隊列中獲取該消息。

        為了滿足氣象觀測數(shù)據(jù)的業(yè)務(wù)需要,研究并制定了基于RabbitMQ的氣象觀測數(shù)據(jù)消息傳輸控制策略。消息按照主題方式發(fā)送,每個主題代表一種氣象觀測資料。例如,國家地面自動站數(shù)據(jù),臺站通過消息傳輸客戶端向省級主題X.OBS中發(fā)送消息;消息以隊列方式接收,對列名需要包含接收者的名稱,明確指定由誰來消費消息。例如,消息發(fā)給國家級,它的隊列名就是Q.OBS.TO.BABJ;從消息主題到消息隊列的轉(zhuǎn)發(fā)過程由路由鍵值來控制,路由鍵值名稱以“R.”開頭,鍵值名一般包含消息的發(fā)送者、級別、資料類型、資料編碼等。

        以國家級地面氣象自動站消息傳輸為例,其交換控制策略如圖5所示。臺站ISOS軟件觀測到的數(shù)據(jù)通過消息傳輸客戶端以消息的形式發(fā)送給省級主題X.OBS,然后通過路由鍵值R.#將消息存到消息隊列中Q.OBS.TO.BABJ、Q.OBS.TO.Server、Q.OBS.Monitor,最后通過Shovel將其轉(zhuǎn)發(fā)到國家級消息服務(wù)器和省級MDOS,CIMISS和Monitor用戶。

        圖5 地面自動站消息傳輸控制策略

        3 結(jié)束語

        通過對RabbitMQ消息隊列技術(shù)在氣象通信系統(tǒng)中的應(yīng)用研究,設(shè)計開發(fā)了基于消息通信傳輸模式的氣象通信系統(tǒng)2.0版本,2018年12月已經(jīng)在全國各省和臺站部署相關(guān)的應(yīng)用并業(yè)務(wù)運行。通過兩個月觀測數(shù)據(jù)的傳輸情況分析得到:系統(tǒng)運行穩(wěn)定,96%的氣象觀測數(shù)據(jù)能夠在2秒內(nèi)完成從臺站到國家級的傳輸,并且在10秒內(nèi)完成全部數(shù)據(jù)的傳輸。同時,系統(tǒng)通過消息交換控制策略將觀測數(shù)據(jù)及時轉(zhuǎn)發(fā)到MDOS、CIMISS、MICAPS等氣象業(yè)務(wù)系統(tǒng)中供業(yè)務(wù)單位使用。業(yè)務(wù)應(yīng)用結(jié)果表明,基于RabbitMQ技術(shù)的氣象通信系統(tǒng),可以滿足大數(shù)量、高頻次、多種類氣象觀測數(shù)據(jù)的高時效、高可靠傳輸,大幅提升了氣象數(shù)據(jù)的傳輸時效性和服務(wù)能力。

        欧美video性欧美熟妇| 一区二区在线视频大片| 国产精品自产拍av在线| 中国国产不卡视频在线观看 | 亚洲精品你懂的在线观看| 国产精品欧美成人片| 国产高潮迭起久久av| 无码gogo大胆啪啪艺术| 国产精品污www一区二区三区| 国产传媒精品成人自拍| 久久精品女人天堂av免费观看| 伊人久久无码中文字幕| 精品综合久久久久久99| 免费人成在线观看播放视频| 亚洲国产精品成人精品无码区在线| 日本高清www无色夜在线视频| 青青草综合在线观看视频| 色婷婷精品大在线视频| 亚洲av国产av综合av卡| 色拍自拍亚洲综合图区| 日韩国产欧美视频| 男女干逼视频免费网站| 精品久久久少妇一区二区| 国产成人亚洲综合色婷婷| 亚洲av无码片在线播放| 最新国产一区二区三区| 亚洲成a∨人片在线观看无码| 欧美性开放bbw| 草莓视频在线观看无码免费| 亚洲av产在线精品亚洲第三站| 精品无码国产自产拍在线观看蜜 | 免费久久人人爽人人爽av| 欧美a视频在线观看| 亚洲综合中文一区二区| 99久久精品免费看国产| 国产精品 高清 尿 小便 嘘嘘 | 人妻熟妇乱又伦精品hd| 亚洲国产精品sss在线观看av| 久久AⅤ无码精品色午麻豆| 亚洲丝袜美腿在线视频| 亚洲国产精品久久久久婷婷老年|