下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
可靠消息系統(tǒng)移動網(wǎng)絡的論文
1.1系統(tǒng)基礎架構
基于不行靠移動網(wǎng)絡的消息系統(tǒng),是目前移動互聯(lián)網(wǎng)準時通訊討論的熱點,無論是消息推送,還是IM等準時通訊應用都涉及這個方面的問題,如何保證消息準時有效地送到用戶是討論的關鍵。從技術上,消息的送達主要有2類技術,一類是客戶端輪詢,即客戶端不斷地發(fā)送懇求獵取新內(nèi)容;另一類是推送,即服務端在有消息內(nèi)容時將消息推送到客戶端。輪詢實現(xiàn)比較簡潔,即客戶端在肯定的時間間隔內(nèi)向服務端懇求,獵取新的數(shù)據(jù),目前這種方式在當前互聯(lián)網(wǎng)上的消息應用中較為普遍。但這種方式在移動網(wǎng)絡下存在較多問題,假如設置時間間隔太長,會造成消息的準時性不夠,假如設置太短,會造成較大的數(shù)據(jù)流量,移動網(wǎng)絡目前的流量成本還比較高,另外對移動設備的電量消耗較大。而推送方式采納長連接的方式,有效地避開了上述問題,但是,由于移動網(wǎng)絡的不穩(wěn)定性,在長連接狀況下沒有傳統(tǒng)網(wǎng)絡穩(wěn)定,客戶端時有掉線。因此筆者在參考推送模式和XMPP(ExtensibleMessagingandPresenceProtocol,可擴展消息與出席協(xié)議)的基礎上,借用輪詢懇求的方式,實現(xiàn)消息的有效回執(zhí),同時采納重試鏈接的方式回避長連接的不穩(wěn)定,在傳統(tǒng)的推送基礎上加了重發(fā)機制。該消息系統(tǒng)在架構上由客戶端、服務端和數(shù)據(jù)層構成,各層由不同子功能模塊組成??蛻舳酥饕獮橛脩艄换ゲ僮鞯慕缑妫⒒貓?zhí)、消息顯示等模塊,其核心是客戶端收到消息后,依據(jù)消息體的相關屬性打算消息是否需要回執(zhí),采納何種模板進行消息體的展現(xiàn)。服務端由多臺基于Openfire的IM服務器集群、Zookeeper集群以及消息待發(fā)隊列和重發(fā)隊列組成,用于處理、轉(zhuǎn)發(fā)及重發(fā)客戶端消息、接收客戶端消息回執(zhí)、監(jiān)聽客戶端狀態(tài)等。此外,還包含統(tǒng)一的數(shù)據(jù)訪問接口,用于訪問緩存數(shù)據(jù)庫。數(shù)據(jù)層用于存儲來自應用系統(tǒng)的相關數(shù)據(jù)和用戶狀態(tài),其中緩存數(shù)據(jù)庫主要存儲用戶信息及離線消息等,Zookeeper集群主要存儲IM服務器集群的共享數(shù)據(jù)。
1.2各模塊功能
1)客戶端消息回執(zhí)模塊用于構造并發(fā)送客戶端消息回執(zhí)。當客戶端勝利接收在線消息或離線消息時,立即向服務端發(fā)送“勝利接收在線消息”或“勝利接收離線消息”的回執(zhí),告知服務器客戶端已勝利接收到消息,不用重復向其發(fā)送此消息,服務端的業(yè)務層依據(jù)回執(zhí)的狀況對消息進行相應的業(yè)務處理。
2)客戶端消息顯示模塊依據(jù)消息類型對消息予以不同的顯示。消息主要分為一般消息、多媒體消息、聯(lián)動消息3類,客戶端消息顯示模塊依據(jù)上述的類型,從消息彈出方式、消息字體顏色、消息的聯(lián)動等方面進行不同的.處理。比如消息是否需要彈出、客戶端收到消息的聲音模式以及該消息內(nèi)容是否進行下一步聯(lián)動操作。
3)服務端消息處理模塊主要負責接收客戶端的消息回執(zhí),當該模塊接收到客戶端的消息回執(zhí)時,表示客戶端已經(jīng)收到該消息,后續(xù)對該消息進行完整的事務處理,把該消息從待發(fā)隊列移除,同時置該消息狀態(tài)位為已發(fā)送。
4)服務端消息處理推送模塊主要依據(jù)消息接收者的狀態(tài)實行不同的消息發(fā)送策略,同時依據(jù)消息的內(nèi)容和形式組成不同的消息體,便于客戶端進行消息的顯示,同時供應其他應用服務器能夠通過IM服務器向客戶端推送消息接口。
5)服務端消息重發(fā)模塊用于重新發(fā)送未勝利送達客戶端的消息。服務器端維護一個重發(fā)隊列保存其發(fā)送過的消息,當收到回執(zhí)時則從隊列刪除相應消息,若未收到回執(zhí),則在計時器周期遍歷重發(fā)隊列時重發(fā)此消息,以此來提高服務器端向客戶端發(fā)送消息的牢靠性。服務器端依據(jù)消息的重要程度采納不同級別的重發(fā)策略,越重要的消息重發(fā)的頻率和次數(shù)越高,多級別的重發(fā)策略便于定制,更為敏捷。
6)服務端狀態(tài)管理模塊主要是維護客戶端的長連接狀態(tài),如客戶端上線、離線、臨時不接受某類消息等,該模塊對消息推送策略的制定至關重要。
7)數(shù)據(jù)層的數(shù)據(jù)存儲模塊主要是對消息內(nèi)容的保存和用戶連接狀態(tài)的存儲,由于消息的量比較大,文件大小較小,采納緩存機制可以有效降低磁盤IO吞吐消耗,緩存機制的讀取和存儲速度較快,有效地提升系統(tǒng)的響應速度。
1.3重發(fā)策略分析
保障客戶端的消息接收是本文的關鍵,難點在重發(fā)策略。消息重發(fā)策略包括服務端消息重發(fā)策略及客戶端消息回執(zhí)策略。為支持服務端消息重發(fā)功能,IM服務器需要維護一個消息重發(fā)隊列,當IM服務器推送完成一條消息后,將該消息從待發(fā)隊列中移到重發(fā)隊列,IM服務器檢測客戶端的在線狀態(tài),假如在線,則馬上發(fā)送,同時待勝利收到客戶端的回執(zhí)時從重發(fā)隊列刪除相應的消息,假如不在線,則將消息存為離線消息,標識消息的發(fā)送時間和已發(fā)送次數(shù)。IM服務器采納集群方式,各個IM服務器需要共享同一個消息重發(fā)隊列,本文借助Zookeeper實現(xiàn)消息隊列的共享與同步。Zookeeper是通過選舉產(chǎn)生leader和follower,其算法正確執(zhí)行的前提是有一半以上機器正常工作,每臺機器部署一個IM服務器及一個Zookeeper服務器,各IM服務器之間進行負載平衡,各Zookeeper之間進行數(shù)據(jù)同步,IM服務器優(yōu)先從本地Zookeeper存取數(shù)據(jù)。各機器中只有一臺機器作為主服務器,其余作為從屬服務器,主服務器負責消息的重發(fā)。計時器掌握消息重發(fā),要求重發(fā)隊列中的消息至少包含消息體、已重發(fā)次數(shù)、上一次發(fā)送時間等數(shù)據(jù)。當執(zhí)行計時器任務遍歷重發(fā)隊列時,若某消息距上次發(fā)送時間超過閾值則重發(fā)此消息,并修改消息最終一次發(fā)送時間以及已發(fā)送次數(shù),當某消息發(fā)送次數(shù)達到設定的上限時就將其存為離線消息,待用戶登錄以后再接收此消息。
2消息系統(tǒng)實現(xiàn)
本系統(tǒng)在完成設計后,筆者搭建了一套測試系統(tǒng),該系統(tǒng)服務端采納4臺2CPU/4G內(nèi)存機器做IM服務器和3個Zookeeper集群,1臺2CPU/8G內(nèi)存的服務器作為數(shù)據(jù)存儲的redis服務器。同時選取了目前市場比較主流的中國移動2GAndroid手機1臺,中國聯(lián)通的3GAndroid手機終端1臺。在應用搭建完成后,分別在2G、3G網(wǎng)絡下,通過服務端進行了100、1000、1000、10000條消息向客戶端推送,一種狀況是消息沒有重發(fā)和回執(zhí)策略,另一種狀況實行5次的重發(fā)策略和消息回執(zhí)策略,特殊是2G(不穩(wěn)定)的網(wǎng)絡,通過提升重試次數(shù),大大增加了消息的投達力量,消息到達率由80%多平均提升到96%左右,而在3G網(wǎng)絡下,消息的到達率也平均有90%提升到98%左右。同時由于有了消息回執(zhí)機制,服務端顯示的消息到達條數(shù)和客戶端實際收到的消息條數(shù)是全都的。而沒有采納消息回執(zhí)策略的,客戶端實際收到的消息也許是95%左右,有5%的特別狀況。進一步分析各種失敗的消息狀況,可以看到重試間隔時間越長,消息的失敗率越高。從測試報告可以看出,系統(tǒng)的重試間隔時間在肯定范圍內(nèi),勝利率比較高,隨著時間越長,勝利率顯著下降。因此重試間隔也有肯定的限制。
3結(jié)束語
隨著從傳統(tǒng)的互聯(lián)網(wǎng)時代步入移
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度速記服務與保密協(xié)議–聚法通專業(yè)法庭記錄3篇
- 2025年版出租車公司股權轉(zhuǎn)讓及運營權移交協(xié)議模板3篇
- 個人與個人2024年度租賃合同9篇
- 個性化咨詢服務2024年協(xié)議范本版A版
- 2025年航空航天零部件制造入股分紅合同4篇
- 2025年度智慧停車設施物業(yè)管理合同4篇
- 2025年度文化藝術品代付款協(xié)議書4篇
- 二零二五版勞動合同法修訂后企業(yè)應對策略合同3篇
- 2025版?zhèn)}儲消防安全檢測與維護保養(yǎng)工程合同3篇
- 2025年高校食堂特色餐飲文化推廣承包服務協(xié)議2篇
- 2025年春新滬科版物理八年級下冊全冊教學課件
- 2025屆高考語文復習:散文的結(jié)構與行文思路 課件
- 電網(wǎng)調(diào)度基本知識課件
- 拉薩市2025屆高三第一次聯(lián)考(一模)語文試卷(含答案解析)
- 《保密法》培訓課件
- 回收二手機免責協(xié)議書模板
- (正式版)JC∕T 60023-2024 石膏條板應用技術規(guī)程
- (權變)領導行為理論
- 2024屆上海市浦東新區(qū)高三二模英語卷
- 2024年智慧工地相關知識考試試題及答案
- GB/T 8005.2-2011鋁及鋁合金術語第2部分:化學分析
評論
0/150
提交評論