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

基于Redis的氣象數(shù)據(jù)分發(fā)管理系統(tǒng)的設(shè)計與實現(xiàn)

2019-05-29 11:18:10林紅華韻子
軟件工程 2019年3期

林紅 華韻子

摘? 要:針對預(yù)報服務(wù)產(chǎn)品一鍵式發(fā)布的迫切需求,通過對Redis內(nèi)存數(shù)據(jù)庫的應(yīng)用研究,基于Spring框架搭建了上海中心氣象臺數(shù)據(jù)分發(fā)管理系統(tǒng),實現(xiàn)數(shù)據(jù)產(chǎn)品分發(fā)和分發(fā)配置管理功能,發(fā)送方式包括FTP、短信、郵件、傳真、語音。系統(tǒng)運行穩(wěn)定可靠,發(fā)布效率提升90%。

關(guān)鍵詞:數(shù)據(jù)分發(fā);Redis;傳真;短信

中圖分類號:TP399? ? ?文獻標(biāo)識碼:A

Abstract:Aiming at the urgent need of one-click publishing of forecast service products,through the application research of Redis in-memory database,the data distribution management system of Shanghai Central Meteorological Observatory is built based on the Spring framework,realizing data product distribution and distribution configuration management.The means of distribution include FTP,SMS,email,fax and voice message.The system runs stably and reliably,increasing the distribution efficiency by 90%.

Keywords:data distribution;Redis;fax;SMS

1? ?引言(Introduction)

隨著上海社會經(jīng)濟的發(fā)展,政府部門、公眾、媒體、專業(yè)用戶等對氣象保障服務(wù)在精細化程度、預(yù)報時效、需求范圍等方面的要求不斷提高。當(dāng)前上海中心氣象臺每天發(fā)送數(shù)據(jù)文件數(shù)量在25000個左右,數(shù)據(jù)量達到30GB。預(yù)報服務(wù)產(chǎn)品發(fā)布數(shù)量的激增和高時效要求,使得目前單一的FTP發(fā)送、人工發(fā)送傳真和逐一打電話通知相關(guān)部門的現(xiàn)狀已經(jīng)不能滿足業(yè)務(wù)需求。本文從實際分發(fā)需求出發(fā),基于Redis內(nèi)存數(shù)據(jù)庫的高性能優(yōu)勢,借鑒其在多個領(lǐng)域中的應(yīng)用經(jīng)驗[1-3],設(shè)計研發(fā)了集FTP、短信、郵件、傳真、語音電話于一體的數(shù)據(jù)分發(fā)管理系統(tǒng),將預(yù)報員從繁雜的事務(wù)性工作中解脫出來,有更多的時間專注于預(yù)報過程的分析,進而提高預(yù)報質(zhì)量。

2? 系統(tǒng)架構(gòu)及關(guān)鍵技術(shù)(System framework and key technology)

2.1? ?系統(tǒng)架構(gòu)設(shè)計

系統(tǒng)采用B/S架構(gòu)設(shè)計,系統(tǒng)由存儲層、數(shù)據(jù)層、服務(wù)層、業(yè)務(wù)功能層組成。各層設(shè)計及主要功能:

存儲層:存儲業(yè)務(wù)層、采集、發(fā)送過程中產(chǎn)生的所有數(shù)據(jù)。本層主要使用Redis數(shù)據(jù)庫和MySql為主,以Redis緩存數(shù)據(jù)庫作為任務(wù)隊列進行任務(wù)控制,并緩存一段時間內(nèi)的數(shù)據(jù)信息。

數(shù)據(jù)層:數(shù)據(jù)層是采集和發(fā)送數(shù)據(jù)的核心模塊,自動管理服務(wù)連接、采集、發(fā)送、存儲、上報等任務(wù)。數(shù)據(jù)層的所有數(shù)據(jù)來源與任務(wù)隊列和業(yè)務(wù)層產(chǎn)生的數(shù)據(jù)。數(shù)據(jù)層控制流量主要是依賴于緩存隊列。數(shù)據(jù)層主要功能包括任務(wù)監(jiān)控、任務(wù)控制、任務(wù)隊列、連接池、數(shù)據(jù)傳輸、信息上報、數(shù)據(jù)存儲等。

服務(wù)層:為業(yè)務(wù)層提供對應(yīng)的服務(wù)支撐,包含F(xiàn)TP發(fā)送、傳真發(fā)送、郵件發(fā)送、短信發(fā)送、語音呼叫、告警信息推送等接口。服務(wù)層主要是連接業(yè)務(wù)層和存儲層的中間橋梁,處理業(yè)務(wù)層的邏輯和數(shù)據(jù)操作,通過連接數(shù)據(jù)庫,對服務(wù)器配置、分發(fā)策略配置、數(shù)據(jù)存儲等進行查詢和存儲,查詢?nèi)蝿?wù)、告警等信息。

業(yè)務(wù)功能層:是以Web頁面的方式供用戶操作,功能主要包括配置中心(服務(wù)器配置、分發(fā)策略配置、發(fā)送用戶管理、發(fā)送用戶組管理、產(chǎn)品管理)、任務(wù)監(jiān)控(分發(fā)統(tǒng)計、數(shù)據(jù)下載、告警信息)、系統(tǒng)管理(用戶管理、數(shù)據(jù)字典)、權(quán)限管理四大功能。

2.2? ?關(guān)鍵技術(shù)

(1) 內(nèi)存數(shù)據(jù)庫技術(shù)

在本項目中,待分發(fā)的數(shù)據(jù)文件數(shù)量、數(shù)據(jù)量和用戶數(shù)量眾多,多產(chǎn)品多用戶的并發(fā)需求,以及用戶對時效性的需求,特別是預(yù)警產(chǎn)品的超高時效性要求,所有的操作都針對關(guān)系型數(shù)據(jù)庫[4](Database,DB)是不現(xiàn)實的,DB雖然提供了數(shù)據(jù)的訪問,但每一次的數(shù)據(jù)訪問都是一次I/O(Input/Output)操作,頻繁的I/O操作對系統(tǒng)性能來講是一種災(zāi)難[5,6],傳統(tǒng)關(guān)系型數(shù)據(jù)庫方案已不能滿足海量數(shù)據(jù)發(fā)送的需求。系統(tǒng)選型在分布式內(nèi)存數(shù)據(jù)庫上[7],通過理論分析及試驗分析,最終確定了實時處理能力更強的Redis內(nèi)存數(shù)據(jù)庫作為數(shù)據(jù)層支撐。

Redis是開源的、高性能的、鍵值(key-value)對存儲數(shù)據(jù)的NOSQL數(shù)據(jù)庫,適合被用于數(shù)據(jù)庫、緩存和消息中間件[8]。作為一個內(nèi)存數(shù)據(jù)庫,Redis讀寫數(shù)據(jù)的時候不會受到硬盤

I/O速度的限制,讀取速度可以達到110000次/秒,寫入速度達到81000次/秒,遠遠優(yōu)于常規(guī)DB數(shù)據(jù)庫的讀取速度,具有對數(shù)據(jù)高并發(fā)讀寫和高效率存儲訪問的性能[9]。與同樣是內(nèi)存數(shù)據(jù)庫的Memcached相比,Redis支持更多的數(shù)據(jù)類型,除支持字符串類型之外,還支持hash、鏈表、集合及有序集合等數(shù)據(jù)結(jié)構(gòu)[10],可以方便地添加和刪除元素[11]。并且Redis支持數(shù)據(jù)的持久化,可以周期性地將內(nèi)存中的數(shù)據(jù)保存到磁盤中,重啟的時候可以再次加載到內(nèi)存中使用,數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,而從服務(wù)器又可以作為主服務(wù)器關(guān)聯(lián)其他的從服務(wù)器,以此實現(xiàn)主從同步的數(shù)據(jù)備份[12]。

在本項目系統(tǒng)數(shù)據(jù)存儲的設(shè)計中,DB數(shù)據(jù)庫采用開源的MySql數(shù)據(jù)庫,而Redis作為DB與業(yè)務(wù)應(yīng)用之間的橋梁,整個內(nèi)存庫的設(shè)計除了緩存分發(fā)用戶的配置信息外,一段時間內(nèi)的數(shù)據(jù)信息也保存在緩存中,避免同一文件每發(fā)送一個用戶就進行一次I/O讀取,大幅度提高分發(fā)效率。如圖2所示,Redis作為擋在其前的一道快速讀取數(shù)據(jù)的屏障,有效緩解了MySql數(shù)據(jù)庫壓力,對提高整個系統(tǒng)性能起到了關(guān)鍵作用。

(2)傳真服務(wù)

傳真是為上海市政府、防汛部門傳送氣象服務(wù)產(chǎn)品的重要渠道,目前是手動發(fā)送,效率低下。本項目中部署了一部傳真服務(wù)器FS(Fax Server),搭載四路的Modem卡。建立基于WSDL的傳真接口協(xié)議FWI(Fax WebService Interface),其利用WebService進行通信,數(shù)據(jù)分發(fā)模塊通過調(diào)用FWI向傳真服務(wù)器發(fā)送請求,F(xiàn)WI直接返回需要的數(shù)據(jù),并提供狀態(tài)信息。

整個傳真服務(wù)流程為:數(shù)據(jù)分發(fā)模塊根據(jù)用戶名/密碼調(diào)用SignIn登錄FS;如果登錄成功,獲取令牌TokenID,將令牌TokenID作為參數(shù)調(diào)用發(fā)送傳真,獲取傳真狀態(tài)的服務(wù);操作完成,調(diào)用SignOut退出登錄。流程圖如圖3所示。

待發(fā)送的文件傳送到傳真服務(wù)器后,通過文件格式轉(zhuǎn)換的功能,將文本或WORD等格式的文件轉(zhuǎn)成TIFF格式的文件后經(jīng)過base64加密封裝,調(diào)用傳真接口自動發(fā)送。

(3)短信服務(wù)

預(yù)報服務(wù)產(chǎn)品的短信發(fā)送是為公眾、領(lǐng)導(dǎo)決策服務(wù)的主要手段之一,而短信發(fā)送涉及中國移動、中國電信、中國聯(lián)通三大運營商的網(wǎng)關(guān),為此與移動、聯(lián)通、電信建立合作渠道。短信服務(wù)器內(nèi)部集成統(tǒng)一的數(shù)據(jù)庫接口、API接口,與上海中心氣象臺業(yè)務(wù)系統(tǒng)融合,其服務(wù)器部署在上海市氣象局內(nèi)網(wǎng)DMZ區(qū),短信服務(wù)通過固定公網(wǎng)IP連接至中國移動、中國聯(lián)通、中國電信三大運營商的行業(yè)短信網(wǎng)關(guān),數(shù)據(jù)分發(fā)模塊通過內(nèi)網(wǎng)直接調(diào)用短信服務(wù)器數(shù)據(jù)庫接口,實現(xiàn)全網(wǎng)手機用戶的短信發(fā)送、接收、查詢、統(tǒng)計等功能,支持移動、聯(lián)通、電信的子賬號功能,滿足中心臺多業(yè)務(wù)、多維度的業(yè)務(wù)需求。如圖4所示。

(4)語音電話服務(wù)

語音分發(fā)是指向指定號碼撥打電話,目前是通過預(yù)報員人工操作完成的。通過調(diào)研選定了阿里語音服務(wù)。通過調(diào)用阿里云語音呼叫的API,從運營商網(wǎng)絡(luò)向指定號碼發(fā)起一通呼叫,呼叫被應(yīng)答后,播放一段指定的音頻,支持將一個音頻文件同時撥打給多個用戶。支持兩種形式的音頻調(diào)用:①播放的音頻為固定內(nèi)容的音頻文件(mp3/wav),可以直接外呼。②播放的音頻為帶有變量的文本模板,每次調(diào)用時先根據(jù)變量替換值從文本模板轉(zhuǎn)化為音頻文件,再進行外呼。阿里語音服務(wù)通過先進的深度學(xué)習(xí)技術(shù),提供了語音合成功能,可以將文本轉(zhuǎn)換成自然流暢的語音,同時能夠根據(jù)需求調(diào)節(jié)語速、語調(diào)、音量等。

3? ?系統(tǒng)實現(xiàn)(System implementation)

3.1? ?開發(fā)環(huán)境

系統(tǒng)后臺采用SpringBoot框架,前臺基于SpringMVC框架,采用JAVA和HTML5作為開發(fā)工具。

3.2? ?功能模塊

根據(jù)系統(tǒng)架構(gòu)設(shè)計,氣象數(shù)據(jù)分發(fā)管理系統(tǒng)主要包括:監(jiān)控模塊、分發(fā)模塊、管理模塊三大模塊。

(1)監(jiān)控模塊

監(jiān)控服務(wù)對指定的數(shù)據(jù)文件目錄進行監(jiān)控,若該目錄下有文件新增,即通過socket發(fā)送文件的相關(guān)信息到收發(fā)核心模塊文件采集任務(wù)隊列。為避免有文件遺漏未被消費,設(shè)計了監(jiān)控重發(fā)模塊,每隔2分鐘執(zhí)行一個定時任務(wù)遞歸掃描文件夾下所有未消費的文件,發(fā)送相關(guān)信息至核心模塊。

為防止因其他原因造成的系統(tǒng)停止運行,通過運行獨立于整個系統(tǒng)的監(jiān)控腳本,每10分鐘檢查Redis、監(jiān)控模塊、收發(fā)核心模塊、web模塊的運行情況,若停止運行自動重啟。

(2)分發(fā)模塊

分發(fā)模塊是整個系統(tǒng)的核心模塊,消費文件采集隊列獲取文件名,通過正則表達式和文件名進行匹配,若匹配成功則在數(shù)據(jù)歸檔根目錄下按照“產(chǎn)品名稱/年/月/日/時/”建立文件夾,對文件進行歸檔;歸檔后將該條信息加入Redis發(fā)送任務(wù)隊列,發(fā)送隊列的消費者根據(jù)產(chǎn)品內(nèi)容ID,查詢數(shù)據(jù)庫的FTP分發(fā)配置、短信分發(fā)配置、郵箱分發(fā)配置、傳真分發(fā)配置、語音分發(fā)配置。根據(jù)獲取的配置信息,進行相應(yīng)的分發(fā)操作。分發(fā)模塊提供重發(fā)功能。

FTP分發(fā):查詢到分發(fā)的用戶和配置信息,從FTP連接池中獲取連接,進行文件的上傳操作。

短信分發(fā):讀取文件內(nèi)容后,根據(jù)分發(fā)的用戶手機號組裝成規(guī)定的txt文件格式,上傳至短信發(fā)送服務(wù)器。

郵箱分發(fā):查詢發(fā)送用戶的郵箱地址,如待發(fā)送的文件為文本文件,則將讀取到文件內(nèi)容作為正文發(fā)送,其余格式的文件將作為附件發(fā)送。

傳真分發(fā):文件先轉(zhuǎn)換tiff格式后經(jīng)過base64轉(zhuǎn)換封裝并調(diào)用傳真接口發(fā)送。

語音分發(fā):讀取文本文件內(nèi)容并查詢?nèi)〕鱿嚓P(guān)的用戶號碼,阿里云語音呼叫的API接口將文字自動轉(zhuǎn)換為語音,撥打電話給用戶。

FTP分發(fā)、短信分發(fā)、語音分發(fā)為同步,可以立即獲得分發(fā)結(jié)果;郵箱分發(fā)為異步,需等待回調(diào)的結(jié)果;傳真發(fā)送后,任務(wù)監(jiān)控隊列消費者根據(jù)ID通過接口查詢傳真發(fā)送的結(jié)果。

(3)管理模塊

管理模塊實現(xiàn)發(fā)送配置、用戶管理、系統(tǒng)發(fā)送情況查詢等功能。

系統(tǒng)提供靈活的分發(fā)統(tǒng)計功能,便于用戶查詢不同時間段、不同產(chǎn)品、不同用戶、不同文件名的分發(fā)統(tǒng)計情況,提供對每個統(tǒng)計情況詳細信息的查看功能,提供對分發(fā)文件的下載功能。

4? ?結(jié)論(Conclusion)

本項目投入業(yè)務(wù)化運行后,有效減少手工操作,預(yù)報員用于產(chǎn)品發(fā)布的時間縮減了90%,大幅度提高工作效率。系統(tǒng)提供了監(jiān)控發(fā)布內(nèi)容的窗口,預(yù)報發(fā)布人員可以很直觀地看到發(fā)布情況,如果有發(fā)布失敗的產(chǎn)品,通過簡單操作就可以進行補發(fā)。管理人員方便對發(fā)布信息進行查詢、統(tǒng)計,便于預(yù)報產(chǎn)品、服務(wù)產(chǎn)品發(fā)布狀況的管理。短消息提醒功能,使得重要路徑發(fā)布失敗時,相關(guān)人員可以在第一時間得到消息,便于及時處理,確保不漏發(fā)。統(tǒng)一的數(shù)據(jù)分發(fā)接口,其他業(yè)務(wù)系統(tǒng)不再需要單獨開發(fā)分發(fā)功能,只需簡單調(diào)用接口,或是將產(chǎn)品文件發(fā)送到指定目錄下,就可實現(xiàn)一鍵分發(fā)功能;減少重復(fù)開發(fā),提高發(fā)布的穩(wěn)定性。語音呼叫功能,使得原來發(fā)布預(yù)警時逐一給各區(qū)氣象局和上海市預(yù)警聯(lián)動部門人工撥打電話變得簡單易行,傳真亦是如此。在以后的工作中,根據(jù)業(yè)務(wù)需求的變化進一步完善系統(tǒng),提供更優(yōu)質(zhì)地服務(wù)。

參考文獻(References)

[1] Gade AN,Larsen TS,Nissen SB,et al.REDIS:A value-based decision support tool for renovation of building portfolios[J].BUILDING AND ENVIRONMENT,2018,142(9):107-108.

[2] Sumba Xavier,Segarra Jos,Ortiz Jos,et al.REDI:A linked data-powered research networking platform[C].Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics),2018,v 11155 LNCS:121-125.

[3] Leea Taeyoung,Kim Yongsung,Hwang Eenjun.Abnormal Payment Transaction Detection Scheme Based on Scalable Architecture and Redis Cluster[C].2018 International Conference on Platform Technology and Service,2018.

[4] 華韻子,林紅.華東區(qū)域自動站數(shù)據(jù)實時融合顯示與多級警示技術(shù)[J].軟件工程,2016,19(5):26-29.

[5] 孫超.Redis內(nèi)存數(shù)據(jù)庫在智慧消防系統(tǒng)設(shè)計中的應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2018(8):103-105.

[6] 熊肖磊,王春偉,趙炯,等.基于Redis與SSM的大型設(shè)備數(shù)據(jù)運用系統(tǒng)設(shè)計[J].現(xiàn)代機械,2018(6):29-34.

[7] 鄧萬宇,劉光達,董瑩瑩.一種基于Scrapy-Redis的分布式微博數(shù)據(jù)采集方案[J].信息技術(shù),2018(11):59-62.

[8] 崔夢天,吳倩.基于Redis緩存的數(shù)字化圖書館應(yīng)用[J].吉林師范大學(xué)學(xué)報(自然科學(xué)版),2018(2):123-127.

[9] Paul Nicole,Lee Ji Su,Mieler Michael.et al.Improving Estimates of Earthquake-Induced Downtime in Individual Buildings Using the REDi Methodology[C].Structures Congress 2018,2018(4):77-86.

[10] Kimm Haklin,Li Zuqing,Kimm Hanke.SCADIS:Supporting Reliable Scalability in Redis Replication on Demand[C].Proceedings-2nd IEEE International Conference on Smart Cloud,2017:7-12.

[11] Josiah,L.Carlson.黃健宏,譯.Redis實戰(zhàn)[M].北京:人民郵電出版,2015.

[12] Jeremy Nelson.汪佳南,譯.深入理解Redis[M].北京:電子工業(yè)出版社,2017.

作者簡介:

林? 紅(1966-),女,碩士,高級工程師.研究領(lǐng)域:氣象行業(yè)軟件研發(fā).

華韻子(1981-),女,碩士,高級工程師.研究領(lǐng)域:氣象行業(yè)軟件研發(fā).

主站蜘蛛池模板: 日韩天堂视频| 亚洲中文字幕在线精品一区| 亚洲中文精品人人永久免费| 久久久久久午夜精品| 99久久精品国产自免费| 亚洲欧美日韩另类在线一| a毛片免费在线观看| 欧美激情视频二区三区| 欧美精品黑人粗大| 色婷婷亚洲综合五月| 四虎免费视频网站| 最近最新中文字幕在线第一页 | 香蕉久人久人青草青草| 欧美日韩国产在线观看一区二区三区| 国产在线观看99| 亚洲精品无码久久毛片波多野吉| 欧美日韩国产一级| 国产粉嫩粉嫩的18在线播放91 | 国产va在线观看免费| 97免费在线观看视频| 国产在线无码一区二区三区| 亚洲国产欧洲精品路线久久| 日本少妇又色又爽又高潮| 亚洲日韩精品无码专区| 无码电影在线观看| 国产精品极品美女自在线看免费一区二区 | 亚洲av中文无码乱人伦在线r| 国产成人亚洲无吗淙合青草| 999国内精品视频免费| 亚洲国产精品久久久久秋霞影院| 亚洲欧美综合精品久久成人网| 国产精欧美一区二区三区| 91蜜芽尤物福利在线观看| 成人午夜网址| 欧美色伊人| 播五月综合| 亚洲精品午夜无码电影网| 国产一区亚洲一区| 久久久久人妻一区精品| 香蕉在线视频网站| 亚洲欧洲自拍拍偷午夜色| 伊人久久精品无码麻豆精品 | 成年片色大黄全免费网站久久| 午夜不卡视频| 自偷自拍三级全三级视频| 国产va在线观看免费| 国产视频一区二区在线观看| 久久久成年黄色视频| 久久99热这里只有精品免费看| 国模粉嫩小泬视频在线观看| 亚洲国产中文在线二区三区免| 国产午夜在线观看视频| 国产亚洲男人的天堂在线观看 | 亚洲爱婷婷色69堂| 精品国产自| 日本欧美在线观看| 99ri国产在线| 国产精品区视频中文字幕| 中国一级特黄大片在线观看| 四虎国产精品永久一区| 亚洲精品无码久久久久苍井空| 超碰精品无码一区二区| 免费A级毛片无码无遮挡| 欧美高清三区| 毛片手机在线看| 亚洲欧美另类日本| 亚洲三级电影在线播放| av在线无码浏览| 日韩福利视频导航| v天堂中文在线| 日韩区欧美区| 2021最新国产精品网站| 久久国产精品77777| 久久精品视频一| 毛片基地美国正在播放亚洲 | 一级毛片在线播放免费| 久久久久久午夜精品| 欧美福利在线| 亚洲色图综合在线| 国产激情国语对白普通话| 青青草原国产免费av观看| 久久久精品国产SM调教网站|