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

消息隊列技術在短信通信中的應用

2013-01-01 00:00:00張英輝

摘要:隨著農業信息化的發展和國家“三農”扶持政策的推動,農信通平臺的短信業務量迅猛增長,從農信通平臺到互聯網短信網關的通信成為系統發展的瓶頸,甚至產生了信息大量積壓,嚴重影響到用戶的感知。為解決此問題,我們采用微軟消息隊列技術(Microsoft Message Queue,MSMQ)實現平臺和互聯網短信網關之間的通信。本文主要論述該技術在農信通系統中的設計實現和實施效果。

關鍵詞:微軟消息隊列MSMQ 短消息服務 互聯網短信網關 短消息中心

1 概述

短消息服務以簡單方便的使用功能受到大眾的歡迎,除了大量使用的手機用戶到手機用戶的短信業務之外,從信息平臺到手機用戶的短消息服務也在快速發展,該類業務已成為廣大用戶獲取信息的一種重要手段。

由于歷史原因,舊版的農信通業務在短信發送和接收過程中,采用了同步通信機制。當消息發送時,需要等待接收方響應,此時發送進程被阻塞。如果接收方響應不及時,勢必會影響發送方的發送速度。在通信量較小的情況,此種通信機制完全能滿足業務的需求。然而,當通信量達到每天幾百萬需求時,這樣的通信機制顯得捉襟見肘了,出現信息送達延時、信息積壓、記錄鎖等問題,嚴重影響到業務的發展。通過筆者對消息隊列的研究和學習,在農信通系統中引入了消息隊列技術。實現原理是:消息的發送者把自己想要發送的消息放入一個容器中,然后把它保存在系統公用空間的消息隊列中,本地或者是異地消息接收程序再從該消息隊列中取出它的消息進行處理。

2 技術方案

2.1 消息隊列模塊

依照中國移動點對點CMPP3.0協議,結合短信業務的個性化需求,設計了四個消息隊列,分別是:①發送消息隊列:保存由數據操作模塊提供的數據,供短信發送模塊使用。

②Response消息隊列:當短信發送模塊將信息發送

得到響應后,將該消息放入發送日志隊列中,由數據操作模塊處理。

③狀態報告隊列:當接收到用戶狀態報告時,將此狀態報告放入狀態報告隊列中,由數據操作模塊處理。

④MO消息隊列:當接收到用戶上行到短信網關的業務指令時,將業務指令信息放入MO隊列,由數據操作模塊處理。

2.2 數據操作模塊

在本實施方案中,此模塊主要進行兩部分操作:

2.2.1 從數據庫中讀取數據

負責從數據庫中批量讀取系統中待發送的消息數據,放入待發送消息隊列中,數據取出的同時從數據庫中刪除已取出的數據,避免重復讀取。

讀取數據采用實時或是間隔某個微小時間,判斷發送消息隊列中的消息量,當發送消息隊列中消息量小于某個閥值時,主線程觸發讀取數據操作。

2.2.2 從Response消息隊列、狀態報告消息隊列、MO消息隊列取數據寫入數據庫

采用多線程方式,處理Response消息隊列、狀態報告消息隊列、MO消息隊列中的數據。消息隊列中的數據根據其性質可以設置不同的優先級,為了保證用戶上行指令的及時性,MO消息隊列的優先級高于Response隊列和狀態報告消息隊列。

Response消息隊列:從短信網關接收到的響應包,當response為0時,表示短信網關正確接收消息,記錄消息的發送日志。當response非0,表示短信網關接收數據失敗,一般這樣的情況給予3次發送機會,如果發送次數小于閥值,則該條消息的發送次數加1后重新寫入數據庫的待發送隊列中。

2.3 短信發送模塊

短信發送模塊主要作用是將待發送隊列中的信息發送到短信網關,并接收網關返回的響應信息、狀態報告以及MO信息,原理如下:①創建多個發送線程,每一個線程創建一個與短信網關通信的socket連接,同時創建相應的多個接收線程和多個滑動窗口監控線程。

②每個發送線程首先判斷滑動窗口容器中數據量,當數據量小于滑動窗口閥值時,從發送消息隊列中取得待發送數據向短信網關發送,發送成功后將該信息置入滑動窗口容器中,并將全局計數器加1,否則該線程進行短暫的休息。

③接收線程實時接收短信網關傳送過來的數據,接收線程接收到數據后,如果是Response響應,則根據消息內容與滑動窗口容器中數據進行匹配,如果匹配到,則將滑動窗口容器中該數據刪除,放入Response消息隊列,由數據處理模塊進行處理。如果匹配失敗則拋棄該數據;接收線程接收到狀態報告,將信息存入狀態報告消息隊列中;接收線程接收到用戶MO信息,將該信息存入MO消息隊列中。Response消息隊列、狀態報告消息隊列、MO消息隊列由數據操作模塊進行處理。

④滑動窗口容器監控線程間隔性檢測該容器中數據是否超時,如果超時,則該數據刪除并放入發送日志隊列同時為該數據置超時標志。

3 實施效果與優勢

通過引入消息隊列技術,在短信業務的數據通信中,每個連接的發送速度達到每秒60條左右。如果短信網關給一個短信類業務分配4個連接通道,那么業務的發送速度將達到每秒240條。完全能滿足日發送600萬(8*3600*

240,一天按8小時計算)的業務量需求。消息隊列技術不僅能提高通信速度,還具備以下優勢:

①MSMQ是一種分布式的開放技術,可以在服務端離線情況下工作,將消息臨時保存在發送方的消息隊列中,以后聯機時再發送到接收方處理,避免了由于通信中斷導致數據丟失現象,提高了通信的可靠性。

②由于是異步通信機制,無論是發送方還是接收方,都不用等待對方返回成功消息,就可以執行余下的代碼,大大提高了事務處理能力。

4 結束語

本文討論了微軟消息隊列在短信業務中的應用,農信通系統通過利用微軟消息隊列解決了業務信息發送中遇到的發送瓶頸問題,對于類似需要大量發送短信的系統平臺設計具有很好的參考意義。

參考文獻:

[1]周世杰,劉錦德,秦志光.消息隊列技術研究綜述與一個實例.計算機科學,2002,29(2),84-86.

[2]余英,梁剛.Visual C++實踐與提高-COM和COM+篇.中國鐵道出版社,2001.

[3]中國移動通信互聯網短信網關接口協議CMPP3.0.

主站蜘蛛池模板: 91福利国产成人精品导航| 欧美久久网| 欧美亚洲一二三区| 欧美午夜精品| 999福利激情视频| 欧美色伊人| 日本在线欧美在线| 99视频在线看| 国产网站一区二区三区| 欧美成人二区| 日韩在线播放中文字幕| 国产人免费人成免费视频| 国产成人免费高清AⅤ| 久久精品国产在热久久2019 | 四虎亚洲精品| 亚洲精品在线91| 国产剧情伊人| 国产国产人免费视频成18| 亚洲无码37.| 丝袜久久剧情精品国产| 亚洲精品福利网站| 亚洲国产成人精品青青草原| 老汉色老汉首页a亚洲| 亚洲av日韩av制服丝袜| 试看120秒男女啪啪免费| 国产美女一级毛片| 日韩欧美91| 91精品情国产情侣高潮对白蜜| 日本人妻丰满熟妇区| 国产精品免费电影| 久久黄色小视频| 免费无码AV片在线观看国产| 欧美国产日韩一区二区三区精品影视 | 亚洲视频二| 国产欧美视频一区二区三区| 国产永久无码观看在线| 99精品视频在线观看免费播放| 婷婷色狠狠干| 国产福利免费在线观看| 97久久超碰极品视觉盛宴| 国产自在线播放| 日韩在线视频网站| 国产爽爽视频| 99精品久久精品| 国产喷水视频| 无码国产伊人| 国产人免费人成免费视频| 久久夜色精品国产嚕嚕亚洲av| 秋霞一区二区三区| 啪啪永久免费av| 国产微拍一区| 欧美日韩成人在线观看| 欧美午夜小视频| 亚洲成人在线网| 四虎永久在线| 亚洲色偷偷偷鲁综合| 99re免费视频| 国产精品久久久久久久伊一| www精品久久| 黄色一级视频欧美| av在线手机播放| 成人无码区免费视频网站蜜臀| 国产SUV精品一区二区6| 成人在线天堂| 亚洲综合香蕉| 91久久国产综合精品女同我| 日本一本在线视频| 国产91精品久久| 久久人搡人人玩人妻精品一| 国产第八页| 午夜视频www| 亚洲精品视频免费| 高清久久精品亚洲日韩Av| 四虎综合网| 国产精品网曝门免费视频| 伊人色婷婷| 亚洲三级成人| 国产成人精品一区二区免费看京| 国产精品免费久久久久影院无码| 中文字幕在线看| 久久综合色视频| 欧美怡红院视频一区二区三区|