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

基于SpringBoot的短信服務的設計與實現

2020-05-29 08:02:04莊學松黃可望
無錫職業技術學院學報 2020年2期
關鍵詞:服務系統

莊學松 張 智 黃可望

(無錫職業技術學院 a.物聯網技術學院; b.人事處; c.物聯網技術學院,江蘇 無錫 214121)

為了保護氣象值班人員的眼睛,降低值班人員的工作強度,各種業務系統的狀態監控和報警系統相繼開發。及時的短信報警通知讓裝備設備的維修更加及時,解決問題的效率也更加高效。短信報警功能在實際的業務系統運行中發揮了重要的作用。

目前,大部分氣象部門技術人員采用的短信報警方式是利用短信貓進行消息的通知,其在開發和維護時難度較高,并且在發送短信的時容易遇到一些底層難以定位的問題。為了進一步開發短信報警功能,急需重新對短信發送的方案進行改造,使氣象各級單位的技術人員都能簡單方便地調用短信發送功能而無需關注底層的發送指令。

1 系統結構

1.1 微服務結構

微服務是一種構建應用程序的體系結構方法。作為一個架構框架,微服務呈分布式且松散耦合結構,因此,一個子部件的更改不會破壞整個應用程序。使用微服務的好處是開發團隊能夠快速構建應用程序的新組件,以達到乃至引領業務需求。與傳統方法相比,微服務架構將應用分解為核心功能的幾個功能模塊,每個功能都稱為服務,并且可以獨立構建和部署,這意味著單個服務運行的失敗并不會對其他服務產生影響[1]。

由于當前各行政級別的氣象部門存在大量自己開發的系統,這些系統在各部門間不共享資源,對于各自業務系統的狀態監控信息和報警信息缺少共享機制,開發資源和技術也同樣缺少共享和交互機制。同時,以前的系統都是“整體式”的開發方法,即使對已有業務系統進行最小的改動,也需要對整個系統進行重新編碼、驗證及發行。此方式將源代碼編譯打包在一個壓縮文件中,網站程序文件一般為War文件。如果應用系統中的一部分程序出現錯誤,則會影響整個系統中的其他單元。微服務的思想是將一個大系統拆成幾個小系統,每個系統只需要關注自己的業務邏輯即可。多人可以同時開發同一個系統的中的不同單元,每個單元之間通過流行的RPC框架進行通信[2]。

1.2 實現方式

目前主要的短信方式包括兩種,短信貓發送和網絡接口調用。利用短信貓發送硬件進行發送需要外接電源及手機通信卡,在連接設備后可在電腦上通過廠家公開的AT指令或更上層的短信操作API實現短信發送。隨著后端服務技術的發展及移動運行商短信接口的開放,網絡接口調用的方式逐漸流行起來。在系統前期的研究過程中采用的是第一種方案,該方案的優點是發送短信快速、穩定、開發和使用不受除移動運行商外的第三方限制,其缺點是需要購買硬件并理解底層的AT指令,開發周期相對較長。網絡短信服務接口的最主要特點是短信發送的底層細節不需要關心,只需要了解短信服務提供商的接口協議即可。但是該方案嚴重依賴于網絡,如果網絡不通則完全無法使用。目前大多數系統還是采用硬件的方式發送短信,該方案在使用過程中發現對AT指令的理解和具體短信貓的特性需要理解得比較透徹才能發揮出優勢,否則雖然實現了短信發送的功能,但是在收發短信的時效性和易用性上卻無法滿足業務應用的需求。

1.3 基于云短信服務的分布式結構

在先前系統的實施方案中采用短信貓直接發送短信,但是在使用一段時間后發現某些短信貓不支持全網通,有些短信貓發送短信時間需要耗時幾分鐘,后期更換短信貓還需要更改代碼層面的AT指令,因此需要在之前系統結構的基礎上將短信貓更換為速度快、性能穩定、資費更低的網絡短信接口。國內有阿里云、深圳夢網、京東、創信等網絡短信服務提供商。本項目方案使用阿里云短信API來開發短信報警服務的基礎功能,圖1為改進后的基于網絡短信服務接口結構圖。

圖1 短信服務結構

一臺可以聯網的電腦和阿里云短信服務接口組成了短信服務提供方,短信代理服務器通過阿里云短信服務器的API實現在線短信收發功能,外部通過Http地址的形式訪問Servlet接口。各部門單位原先的值班系統和應用系統都不需要變化,這些系統作為短信內容生產方的角色將各種報警信息放到隊列中[3]。

通過短信代理服務器解決了采用網絡短信服務必須要連通外網的缺點,在省局內只需一臺能上網的電腦并在上面部署短信發送代理程序即可使市局和縣局通過內網直連接短信代理服務器發送和接收短信。

2 服務實施

2.1 微服務架構的搭建

系統采用SpringBoot實現短信代理服務。微服務架構的主要特征是去中心化和分布式結構。它是將一個項目的各個模塊有序分割,之后由各模塊提供API,供其他功能模塊調用。各模塊一般都獨立運行,而且有自己的數據庫與服務器,通過“化整為零”,各個模塊之間得到了解耦,系統的擴展性更強。而SpringBoot就是進行微服務架構開發的一套框架工具,它是在Spring框架基礎上發展出來的,借助它可以真正做到前后端分離。

整個系統中短信生產方、短信服務使用方、短信服務提供方都可以按照微服務的思想進行開發。這里主要介紹短信服務提供方實現微服務過程。

(1)在eclipse中創建一個maven應用。

(2)引入SpringBoot框架,需在pom.xml文件中引入SpringBoot父容器并添加Web開發所需要的相應依賴。主要包括jdk1.8;啟動器父包spring-boot-starter-parent;web工程包spring-boot-starter-web;特定的網絡短信的包,如阿里云短信服務的包。

(3)創建SpringBoot引導類。

(4)創建配置文件 application.properties,對啟動端口進行配置,并配置網絡短信發送id、密鑰、短信簽名及短信模板名。

(5)創建發短信的工具類,其中調用阿里云短信服務的主要代碼如下:

//a、創建profile

//accessKeyId:申請的ID, accessKeySecret:申請的密鑰

IClientProfile pf = DefaultProfile.getProfile(STRING_CN_HZ", akID, akSecret);

DefaultProfile.addEndpoint(STRING_CN_HZ, STRING_CN_HZ, STRING_DYSMS, STRING_DYSMS_URI);

//b、創建client

IAcsClient acsClient= new DefaultAcsClient(pf);

//c、創建Request對象

SendSmsRequest rest = new SendSmsRequest();

//d、設置Request的參數

//mobile:待發送手機號

rest.setPhoneNumbers(mobile);

//signName:簽名

rest.setSignName(signName);

//templateCode:自定義的模板

rest.setTemplateCode(templateCode);

//code:變量信息

rest.setTemplateParam("{”code”:"+STRING_PARA+"}");

//e、用client對應的方法傳入request,獲得response

SendSmsResponse returnValue = acsClient.getAcsResponse(rest);

//f、在response中獲得返回的參數值

return returnValue;

2.2 阿里云短信接入配置

系統采用的網絡短信服務商為阿里云短信,主要接入流程如下[4]:

(1)到官網上開通短信服務。短信服務開通后需要獲取 accessKey和 accessKeySecret。

(2)創建簽名并等待官方審核(一般需要等待2個小時),簽名指的是短信前面顯示的名稱,比如“【氣象短信報警接口】短信正文....”中括號里面的就是簽名。

(3)創建短信發送模板并等待官方審核,模板就是短信的正文中不變的部分,再加上一部分參數輸入的描述。如,模版內容: 報警等級為 {class},報警內容為 {text}。其中有兩個變量,分別為class-等級和text-內容。

(4)在簽名和短信模板審核通過后就能用這個模板發送短信,這與其他短信服務直接在身份驗證后直接發送短信有所區別。

(5)根據業務應用選擇合適的短信套餐。至此配置完成,可以利用阿里云短信服務的API發送短信。

2.3 短信服務方調用

阿里云短信服務API調用封裝后即可在短信代理處進行調用,根據返回的結果判斷調用是否成功。在封裝后再發布成內網中可以調用的Http服務,即在內網中也可以間接地調用阿里云短信服務。主要調用代碼如下:

CommonResponse returnValue = SMSsend(phoneNo,text);

if(returnValue != null && returnValue.getHttpStatus() == 200){

String data = returnValue.getData();

Map map = JSON.parseObject(data, Map.class);

LOGGER.info("send message status is:{}" + phone + "and text is" + text + "," + map.get("Text"));

短信服務接口通過HTTP的形式暴露外部調用接口。HTTP格式為:

http://Address:Port/smsSend/send?user=***&pwd=***&phoneNo=****&text=****&prior=***&token=****

Address和Port是服務提供方供外部訪問用的入口;user和pwd是對短信的使用者進行身份鑒別,防止非法調用。只有在驗證通過后才能調用阿里云服務封裝后的短信發送接口。

2.4 緩存機制

在報警事件產生時需要及時地推送給業務值班人員,值班人員根據報警內容排查并解決問題。但并不是報警推送越多越好,需要把握一個度,不能漏掉重要信息,又不能頻繁推送信息影響值班人員對重要信息的判斷。頻繁推送報警內容甚至會對短信推送功能產生抵觸心理。因此需要針對不同等級,不同內容制定詳細的頻次推送規劃,記錄每一個短信在一段時間內推送到相關人員的頻次,當達到一定的閾限后不能繼續推送報警信息。

除了在發生或即將發生報警事件時及時調用短信服務將報警內容推送給指定人員外,還有其他的內容需要短信推送給相關人員。如每個值班人員還關心每個整點的業務運行情況是否正常,每天整體情況運行如何,每月狀態統計信息如何。因此,需要定時將業務運行情況、軟件和系統資源的運行情況匯總并發給相關人員做實時監控。對于定期推送的不同種類的短信需要精確地推送給指定的人員,不能推送出現混亂。如果因為網絡、接口服務器、軟件系統、機器等原因不能保證短信發送功能7*24小時連續工作,需要將發送的成功狀態、發送的記錄保存下來。

對于上述兩種情況采用Redis實現短信發送狀態的緩存。Redis是一種開源的鍵值數據庫,由于非常優異的性能和可持久化的特性使得它被廣泛地應用到各大網站服務平臺中[5]。SpringBoot中除了支持關系型數據庫Oracle、MySql、SqlServer外,也對Redis等非關系型數據進行了自動化支持。因此,在SpringBoot中利用集成的Redis組件可方便地對數據進行CRUD操作。

2.5 短信發送的注意點

國內短信內容計費方案一般是根據短信內容中的字數進行收費,如果短信字數達到一定的長度(一般為70個)就按多條短信進行計費。

一般情況下,網絡短信服務商對同一個手機號碼發送短信通知的條數有限制,比如阿里云短信服務支持50條/天。如果發送字數超過限額后也會提示業務限流。單條短信字數也有限制,一般達到500多個字,超限的話會發送失敗。

國內短信支持全網通發送,并且支持向國際和中國的港澳臺運營商的手機發送短信,但是一次最多發送的目的手機數目受限制,不同網絡運營商可能不一樣,比如阿里云一次最多可向1 000個手機號碼發送短信。

3 結語

基于Springboot實現短信報警的微服務系統結構,結合Redis 的主要特性,利用其優異的數據庫條目讀寫效率的優勢,實現了短信服務的快速調用,提高了整個系統的可維護性和用戶體驗。

短信代理服務通過Http 方式發布接口供外部調用,通過接口的實現方可以實時反饋一些狀態信息,比如某個號碼發送頻率。后期設計可以在后端根據每個號碼的發送特性制作統計報表并可以進行流量控制以防止惡意發送。

猜你喜歡
服務系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
半沸制皂系統(下)
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
主站蜘蛛池模板: 亚洲精品无码成人片在线观看| 视频一区视频二区日韩专区| 日日摸夜夜爽无码| 内射人妻无套中出无码| 成人国产免费| h网站在线播放| 麻豆精品视频在线原创| 亚洲自偷自拍另类小说| 国产成人亚洲无吗淙合青草| 久久精品无码一区二区日韩免费| 美女内射视频WWW网站午夜 | 亚洲日本精品一区二区| 亚洲日本中文综合在线| 国产人碰人摸人爱免费视频 | 久久亚洲高清国产| 亚洲 日韩 激情 无码 中出| 农村乱人伦一区二区| 亚洲嫩模喷白浆| 欧美特黄一免在线观看| 国产精品区视频中文字幕| 亚洲午夜天堂| 国产欧美在线观看精品一区污| 2048国产精品原创综合在线| 福利在线一区| 国产日本一区二区三区| 中文字幕欧美日韩高清| 欧美日本一区二区三区免费| 四虎在线高清无码| 国产高清无码第一十页在线观看| 91精品专区国产盗摄| 亚洲国产中文综合专区在| 国产成人禁片在线观看| 2019年国产精品自拍不卡| 亚洲国产综合自在线另类| 国产福利不卡视频| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产精品久久久久久久久久久久| 无码免费视频| 超碰91免费人妻| 91无码人妻精品一区二区蜜桃| 国产欧美日韩综合在线第一| 中文字幕永久在线看| 亚洲欧美色中文字幕| 原味小视频在线www国产| 在线精品视频成人网| 麻豆国产精品| 婷婷色一二三区波多野衣 | 毛片久久久| 又猛又黄又爽无遮挡的视频网站| 激情网址在线观看| 亚洲中久无码永久在线观看软件| 国产在线日本| 精品视频福利| 婷婷成人综合| 日韩精品无码一级毛片免费| 毛片a级毛片免费观看免下载| 亚洲欧美另类色图| 久久免费看片| 国产啪在线91| 国产精品漂亮美女在线观看| 亚洲天堂成人在线观看| 激情爆乳一区二区| 国产手机在线小视频免费观看| 国产内射一区亚洲| 一区二区午夜| 亚洲一区波多野结衣二区三区| 亚洲精品老司机| 天天做天天爱天天爽综合区| 欧美亚洲另类在线观看| 国产丝袜无码精品| 97精品国产高清久久久久蜜芽| v天堂中文在线| 久久毛片网| 欧美国产综合视频| 国产天天射| 青青热久麻豆精品视频在线观看| 国产肉感大码AV无码| 亚洲经典在线中文字幕| 亚洲综合色婷婷| 毛片在线看网站| 国产精品美女自慰喷水| 亚洲第一中文字幕|