最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

離線消息集中處理方法和系統(tǒng)的制作方法

文檔序號(hào):7886907閱讀:181來源:國(guó)知局
專利名稱:離線消息集中處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種離線消息集中處理方法和系統(tǒng)。
背景技術(shù)
現(xiàn)有的網(wǎng)絡(luò)應(yīng)用中,如果用戶離線,且設(shè)置為需要存儲(chǔ)離線消息模式時(shí),系統(tǒng)將為用戶存儲(chǔ)離線消息,待下次用戶登錄時(shí),推送該離線消息給該用戶?,F(xiàn)有技術(shù)的離線消息多分布式存儲(chǔ)在不同的離線消息服務(wù)器上,難以統(tǒng)一管理?,F(xiàn)有技術(shù)的一種離線消息處理方法,包括離線消息的存儲(chǔ)過程、離線消息的通知過程和離線消息的獲取過程。在所述離線消息的存儲(chǔ)過程中,當(dāng)用戶預(yù)先設(shè)置要求保存離線消息時(shí),系統(tǒng)保存發(fā)送給用戶的離線消息;在所述離線消息的通知過程中,當(dāng)用戶上線后,用戶客戶端所屬即時(shí)消息(Instant Message, IM)服務(wù)器檢測(cè)到系統(tǒng)中保存有該用戶的離線消息時(shí),則按照系統(tǒng)設(shè)置或用戶訂閱離線消息通知的設(shè)置,發(fā)送離線消息通知給該用戶客戶端;在所述離線消息的獲取過程中,當(dāng)用戶客戶端收到離線消息通知并請(qǐng)求獲取離線消息后,其所屬頂服務(wù)器將離線消息內(nèi)容發(fā)送給用戶客戶端。然而,由于現(xiàn)有技術(shù)中的離線消息存儲(chǔ)分散,較難系統(tǒng)地備份,在離線消息服務(wù)器出現(xiàn)故障或宕機(jī)時(shí),會(huì)丟失離線消息數(shù)據(jù),用戶體驗(yàn)不好。

發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的缺陷,本發(fā)明實(shí)施例提供一種離線消息集中處理方法和系統(tǒng),以提供對(duì)離線消息的統(tǒng)一集中管理,避免數(shù)據(jù)丟失。為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供一種離線消息集中處理系統(tǒng),所述系統(tǒng)包括:數(shù)據(jù)中心、消息轉(zhuǎn)發(fā)器和負(fù)載均衡器;所述數(shù)據(jù)中心,接收應(yīng)用系統(tǒng)發(fā)送給用戶的消息,如果用戶離線,則將所述消息作為離線消息統(tǒng)一存儲(chǔ)和備份;并根據(jù)所述消息轉(zhuǎn)發(fā)器的請(qǐng)求,向所述消息轉(zhuǎn)發(fā)器發(fā)送對(duì)應(yīng)用戶的離線消息;所述負(fù)載均衡器,根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器;所述消息轉(zhuǎn)發(fā)器,當(dāng)用戶上線時(shí),向所述數(shù)據(jù)中心發(fā)起獲取離線消息的請(qǐng)求,接收所述數(shù)據(jù)中心返回的該用戶的離線消息,將所述離線消息發(fā)送給對(duì)應(yīng)的用戶。所述消息轉(zhuǎn)發(fā)器,在成功發(fā)送所述離線消息給用戶之后,向所述數(shù)據(jù)中心返回成功發(fā)送通知;所述數(shù)據(jù)中心,根據(jù)所述成功發(fā)送通知,刪除已成功發(fā)送的離線消息。所述消息轉(zhuǎn)發(fā)器,還用于將其當(dāng)前的負(fù)載情況告知所述負(fù)載均衡器;所述負(fù)載均衡器,具體用于與首次登錄的用戶建立連接,根據(jù)鏈路狀況以及所述消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配最優(yōu)的消息轉(zhuǎn)發(fā)器;并在已分配的消息轉(zhuǎn)發(fā)器出現(xiàn)故障時(shí),為用戶重新分配消息轉(zhuǎn)發(fā)器。所述消息轉(zhuǎn)發(fā)器,還用于當(dāng)用戶登錄時(shí),根據(jù)用戶的會(huì)話標(biāo)識(shí)向認(rèn)證服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過則建立與該用戶的連接,否則拒絕該用戶登錄。所述消息轉(zhuǎn)發(fā)器,還用于更新用戶當(dāng)前的在線狀態(tài),并將用戶當(dāng)前的在線狀態(tài)告知所述數(shù)據(jù)中心;所述數(shù)據(jù)中心,還用于維護(hù)整個(gè)系統(tǒng)中用戶當(dāng)前的在線狀態(tài),以提供查詢用戶狀態(tài)的接口,并根據(jù)系統(tǒng)中的用戶當(dāng)前的在線狀態(tài)對(duì)來自所述應(yīng)用系統(tǒng)的消息進(jìn)行處理。所述系統(tǒng)還包括:連接不同機(jī)房?jī)?nèi)的多個(gè)數(shù)據(jù)中心的代理托管模塊;所述數(shù)據(jù)中心,還用于將存儲(chǔ)的離線消息通過所述代理托管模塊同步至其它機(jī)房;當(dāng)用戶當(dāng)前的在線狀態(tài)發(fā)生變化時(shí),通知所述代理托管模塊進(jìn)行用戶狀態(tài)更新。為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例還提供一種離線消息集中處理方法,所述方法包括:數(shù)據(jù)中心接收應(yīng)用系統(tǒng)發(fā)送給用戶的消息,如果用戶離線,則將所述消息作為離線消息統(tǒng)一存儲(chǔ)和備份;負(fù)載均衡器根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器;當(dāng)用戶上線時(shí),與該用戶對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器向所述數(shù)據(jù)中心發(fā)起獲取離線消息的請(qǐng)求;所述數(shù)據(jù)中心根據(jù)所述消息轉(zhuǎn)發(fā)器的請(qǐng)求,向所述消息轉(zhuǎn)發(fā)器發(fā)送對(duì)應(yīng)用戶的離線消息;所述消息轉(zhuǎn)發(fā)器接收所述數(shù)據(jù)中心返回的該用戶的離線消息,將所述離線消息發(fā)送給對(duì)應(yīng)的用戶。所述方法還包括:在成功發(fā)送所述離線消息給用戶之后,所述消息轉(zhuǎn)發(fā)器向所述數(shù)據(jù)中心返回成功發(fā)送通知;所述數(shù)據(jù)中心根據(jù)所述成功發(fā)送通知,刪除已成功發(fā)送的離線消息。所述負(fù)載均衡器根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器具體包括:所述負(fù)載均衡器與首次登錄的用戶建立連接,根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配最優(yōu)的消息轉(zhuǎn)發(fā)器;并在已分配的消息轉(zhuǎn)發(fā)器出現(xiàn)故障時(shí),為用戶重新分配消息轉(zhuǎn)發(fā)器。所述方法還包括:所述消息轉(zhuǎn)發(fā)器更新用戶當(dāng)前的在線狀態(tài),并將用戶當(dāng)前的在線狀態(tài)告知所述數(shù)據(jù)中心;所述數(shù)據(jù)中心維護(hù)整個(gè)系統(tǒng)中用戶當(dāng)前的在線狀態(tài),以提供查詢用戶狀態(tài)的接口,并根據(jù)系統(tǒng)中的用戶當(dāng)前的在線狀態(tài)對(duì)來自所述應(yīng)用系統(tǒng)的消息進(jìn)行處理。本發(fā)明的有益效果在于:本發(fā)明實(shí)施例的離線消息集中處理方法與系統(tǒng),通過對(duì)離線消息進(jìn)行統(tǒng)一管理和備份,避免了現(xiàn)有技術(shù)中離線消息分散存儲(chǔ)所帶來的弊端,提升了用戶的使用體驗(yàn)。


圖1是本發(fā)明實(shí)施例離線消息集中處理系統(tǒng)的架構(gòu)圖;圖2是本發(fā)明實(shí)施例離線消息集中處理方法的整體流程圖;圖3是本發(fā)明實(shí)施例的離線消息發(fā)送處理流程圖;圖4是本發(fā)明實(shí)施例的用戶獲取離線消息的處理流程圖;圖5是本發(fā)明實(shí)施例的用戶登錄流程圖;圖6是本發(fā)明實(shí)施例的跨系統(tǒng)結(jié)構(gòu)原理圖;圖7是本發(fā)明實(shí)施例離線消息集中處理方法的詳細(xì)流程圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明權(quán)利要求保護(hù)的范圍。圖1是本發(fā)明實(shí)施例離線消息集中處理系統(tǒng)的架構(gòu)圖。如圖1所示,該系統(tǒng)包括三大部分:數(shù)據(jù)中心(Data Center, DC),消息轉(zhuǎn)發(fā)器(Message Broker, MB)以及負(fù)載均衡器(Load Balance, LB)。數(shù)據(jù)中心連接應(yīng)用系統(tǒng)(APP)和消息轉(zhuǎn)發(fā)器;消息轉(zhuǎn)發(fā)器連接數(shù)據(jù)中心、負(fù)載均衡器以及客戶端;負(fù)載均衡器連接消息轉(zhuǎn)發(fā)器和客戶端。所述數(shù)據(jù)中心,接收應(yīng)用系統(tǒng)發(fā)送給用戶的消息,如果用戶離線,則將所述消息作為離線消息統(tǒng)一存儲(chǔ)和備份;并根據(jù)所述消息轉(zhuǎn)發(fā)器的請(qǐng)求,向所述消息轉(zhuǎn)發(fā)器發(fā)送對(duì)應(yīng)用戶的離線消息;所述負(fù)載均衡器,根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器;所述消息轉(zhuǎn)發(fā)器,當(dāng)用戶上線時(shí),向所述數(shù)據(jù)中心發(fā)起獲取離線消息的請(qǐng)求,接收所述數(shù)據(jù)中心返回的該用戶的離線消息,將所述離線消息發(fā)送給對(duì)應(yīng)的用戶。具體地,應(yīng)用系統(tǒng)(APP)是產(chǎn)生即時(shí)消息的系統(tǒng)應(yīng)用程序,比如快玩玩博;所述數(shù)據(jù)中心在判斷用戶在線時(shí),直接通過與該用戶連接的消息轉(zhuǎn)發(fā)器將應(yīng)用系統(tǒng)發(fā)送的在線消息推送給該用戶;在判斷用戶離線、且用戶設(shè)置了訂閱離線消息時(shí),將該用戶的離線消息存儲(chǔ),并在消息轉(zhuǎn)發(fā)器發(fā)出請(qǐng)求時(shí),將該離線消息推送給該用戶。具體地,所述消息轉(zhuǎn)發(fā)器,在成功發(fā)送所述離線消息給用戶之后,向所述數(shù)據(jù)中心返回成功發(fā)送通知;所述數(shù)據(jù)中心,根據(jù)所述成功發(fā)送通知,刪除已成功發(fā)送的離線消息。具體地,所述消息轉(zhuǎn)發(fā)器,還用于將其當(dāng)前的負(fù)載情況告知所述負(fù)載均衡器;所述負(fù)載均衡器,具體用于與首次登錄的用戶建立連接,根據(jù)鏈路狀況以及所述消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配最優(yōu)的消息轉(zhuǎn)發(fā)器;并在已分配的消息轉(zhuǎn)發(fā)器出現(xiàn)故障時(shí),為用戶重新分配消息轉(zhuǎn)發(fā)器。具體地,所述消息轉(zhuǎn)發(fā)器,還用于當(dāng)用戶登錄時(shí),根據(jù)用戶的會(huì)話標(biāo)識(shí)(sessionid)向認(rèn)證服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過則建立與該用戶的連接,否則拒絕該用戶登錄。具體地,所述消息轉(zhuǎn)發(fā)器,還用于更新用戶當(dāng)前的在線狀態(tài),并將用戶當(dāng)前的在線狀態(tài)告知所述數(shù)據(jù)中心;所述數(shù)據(jù)中心,還用于維護(hù)整個(gè)系統(tǒng)中用戶當(dāng)前的在線狀態(tài),以提供查詢用戶狀態(tài)的接口,并根據(jù)系統(tǒng)中的用戶當(dāng)前的在線狀態(tài)對(duì)來自所述應(yīng)用系統(tǒng)的消息進(jìn)行處理。可選地,所述系統(tǒng)還包括:連接不同機(jī)房?jī)?nèi)的多個(gè)數(shù)據(jù)中心的代理托管模塊;所述數(shù)據(jù)中心,還用于將存儲(chǔ)的離線消息通過所述代理托管模塊同步至其它機(jī)房;當(dāng)用戶當(dāng)前的在線狀態(tài)發(fā)生變化時(shí),通知所述代理托管模塊進(jìn)行用戶狀態(tài)更新。數(shù)據(jù)中心之間由代理托管模塊(Proxy)對(duì)接,以完成數(shù)據(jù)跨系統(tǒng)處理。在實(shí)際網(wǎng)絡(luò)應(yīng)用中,數(shù)據(jù)中心可分為電信和網(wǎng)通兩個(gè),分別用兩臺(tái)服務(wù)器,保持總量200萬以上的客戶端并可繼續(xù)擴(kuò)充??蛇x地,本實(shí)施例中,App與DC之間采用基于TCP的字符串型通信協(xié)議,類似于http協(xié)議,分為消息頭部和消息體。消息頭和消息體使用CRLF(回車換行,carriagereturn/line feed)分割。消息頭部中的字段名和值使用空格分割,字段之間使用CRLF分害I]。除App與DC之外,其它通信協(xié)議是二進(jìn)制通信協(xié)議。其中Message Broker與DC及Load balance之間的通信是基于TCP傳輸協(xié)議,而與客戶端有關(guān)的通信都是基于Μ)Ρ傳輸協(xié)議。當(dāng)使用UDP傳輸協(xié)議,需要考慮可靠性,當(dāng)數(shù)據(jù)包丟失時(shí),需要重傳,并且當(dāng)數(shù)據(jù)包較大時(shí)(大于512字節(jié)),就需要分包。可選地,本實(shí)施例中,客戶端的心跳包大小為16+46 = 62Byte。假設(shè)100萬用戶每隔30秒發(fā)送心跳包,那么Message Broker端總使用帶寬大約為62Mbyte/30s*8 =16.5Mbit/s。消息轉(zhuǎn)發(fā)器與客戶端的通信數(shù)據(jù)都采用某種加密算法進(jìn)行加密,如:AES。下面詳細(xì)描述系統(tǒng)中各組件的功能。I)數(shù)據(jù)中心主要實(shí)現(xiàn)用戶狀態(tài)管理、離線消息管理和數(shù)據(jù)選路分發(fā)等功能。消息轉(zhuǎn)發(fā)器通過定時(shí)心跳消息告知和更新當(dāng)前在線的用戶狀態(tài),數(shù)據(jù)中心維護(hù)整個(gè)系統(tǒng)的在線用戶狀態(tài);應(yīng)用系統(tǒng)(App)產(chǎn)生消息發(fā)送至數(shù)據(jù)中心,如果數(shù)據(jù)需要存儲(chǔ),那么數(shù)據(jù)中心存儲(chǔ)該消息,然后將消息分發(fā)給相應(yīng)的消息轉(zhuǎn)發(fā)器。如果消息轉(zhuǎn)發(fā)器發(fā)送成功那么提示數(shù)據(jù)中心刪除該消息。當(dāng)該用戶上線時(shí),消息轉(zhuǎn)發(fā)器向數(shù)據(jù)中心發(fā)起獲取離線消息的請(qǐng)求,然后數(shù)據(jù)中心根據(jù)消息的接受者將消息分發(fā)至相應(yīng)的消息轉(zhuǎn)發(fā)器,消息轉(zhuǎn)發(fā)器轉(zhuǎn)發(fā)消息成功與否的狀態(tài)告知數(shù)據(jù)中心,成功則刪除該離線消息。消息傳送方式有一對(duì)一和一對(duì)多兩種。比如回復(fù)消息為一對(duì)一的傳送方式,廣播消息和被訂閱的消息則為一對(duì)多的傳送方式。其中,一對(duì)多的消息可以分為兩大類:定向和非定向的。確切知道是傳送給哪些用戶的一對(duì)多的消息定義為定向的消息,不明確知道需要傳送給哪些用戶的一對(duì)多的消息則為非定向的。根據(jù)以上定義,廣播系統(tǒng)消息定義為非定向的;如果用戶發(fā)布的消息被多人訂閱了,那么該消息為定向的。本實(shí)施例中系統(tǒng)只會(huì)存儲(chǔ)一對(duì)一的離線消息以及定向的一對(duì)多的離線消息,非定向的離線廣播消息一般不存,但具有一定生命周期的離線廣播消息除外,例如:給一定時(shí)間段內(nèi)的登錄用戶發(fā)送的離線廣播消息會(huì)被存儲(chǔ),直至生命周期結(jié)束后將被刪除。2)消息轉(zhuǎn)發(fā)器消息轉(zhuǎn)發(fā)器的主要功能是將消息轉(zhuǎn)發(fā)至指定的用戶和檢測(cè)用戶的狀態(tài),以及進(jìn)行用戶認(rèn)證。消息轉(zhuǎn)發(fā)器需要維護(hù)的數(shù)據(jù)有:登陸客戶端的“連接”信息和客戶端的訂閱列表。消息轉(zhuǎn)發(fā)器通過心跳消息告知負(fù)載均衡器其當(dāng)前的負(fù)載。當(dāng)用戶上線時(shí),消息轉(zhuǎn)發(fā)器向數(shù)據(jù)中心發(fā)起獲取離線消息請(qǐng)求。數(shù)據(jù)中心查詢是否有該用戶的離線消息,如果有,那么推送離線消息給消息轉(zhuǎn)發(fā)器,由消息轉(zhuǎn)發(fā)器轉(zhuǎn)發(fā)給用戶。當(dāng)用戶登錄時(shí),消息轉(zhuǎn)發(fā)器根據(jù)用戶的session id(會(huì)話標(biāo)識(shí))向認(rèn)證服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過那么就建立與該用戶的通信,否則拒絕該用戶登錄。3)負(fù)載均衡器主要功能是將客戶端均衡分發(fā)至消息轉(zhuǎn)發(fā)器和管理消息轉(zhuǎn)發(fā)器。消息轉(zhuǎn)發(fā)器向負(fù)載均衡器注冊(cè),和定時(shí)通報(bào)其自身的負(fù)載??蛻舳藭?huì)向負(fù)載均衡器發(fā)送獲取消息轉(zhuǎn)發(fā)器請(qǐng)求,負(fù)載均衡器會(huì)選擇一臺(tái)消息轉(zhuǎn)發(fā)器回復(fù)給客戶端,然后客戶端與相應(yīng)的消息轉(zhuǎn)發(fā)器進(jìn)行通信。基于前述實(shí)施例的離線消息集中處理系統(tǒng),本發(fā)明實(shí)施例還提供一種離線消息集中處理方法。圖2是本發(fā)明實(shí)施例離線消息集中處理方法的整體流程圖。如圖2所示:該方法包括:S201、數(shù)據(jù)中心接收應(yīng)用系統(tǒng)發(fā)送給用戶的消息,如果用戶離線,則將所述消息作為離線消息統(tǒng)一存儲(chǔ)和備份;S202、負(fù)載均衡器根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器;S202具體包括:所述負(fù)載均衡器與首次登錄的用戶建立連接,根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配最優(yōu)的消息轉(zhuǎn)發(fā)器;并在已分配的消息轉(zhuǎn)發(fā)器出現(xiàn)故障時(shí),為用戶重新分配消息轉(zhuǎn)發(fā)器;S203、當(dāng)用戶上線時(shí),與該用戶對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器向所述數(shù)據(jù)中心發(fā)起獲取離線消息的請(qǐng)求;S204、所述數(shù)據(jù)中心根據(jù)所述消息轉(zhuǎn)發(fā)器的請(qǐng)求,向所述消息轉(zhuǎn)發(fā)器發(fā)送對(duì)應(yīng)用戶的離線消息;S205、所述消息轉(zhuǎn)發(fā)器接收所述數(shù)據(jù)中心返回的該用戶的離線消息,將所述離線消息發(fā)送給對(duì)應(yīng)的用戶。具體地,所述方法還包括:在成功發(fā)送所述離線消息給用戶之后,所述消息轉(zhuǎn)發(fā)器向所述數(shù)據(jù)中心返回成功發(fā)送通知;所述數(shù)據(jù)中心根據(jù)所述成功發(fā)送通知,刪除已成功發(fā)送的離線消息。具體地,所述方法還包括:所述消息轉(zhuǎn)發(fā)器更新用戶當(dāng)前的在線狀態(tài),并將用戶當(dāng)前的在線狀態(tài)告知所述數(shù)據(jù)中心;所述數(shù)據(jù)中心維護(hù)整個(gè)系統(tǒng)中用戶當(dāng)前的在線狀態(tài),以提供查詢用戶狀態(tài)的接口,并根據(jù)系統(tǒng)中的用戶當(dāng)前的在線狀態(tài)對(duì)來自所述應(yīng)用系統(tǒng)的消息進(jìn)行處理。圖3是本發(fā)明實(shí)施例的離線消息發(fā)送處理流程圖。如圖3所示,離線消息發(fā)送處理過程包括:App產(chǎn)生消息,發(fā)送至DC,DC回復(fù)App表示數(shù)據(jù)發(fā)送成功;當(dāng)用戶離線時(shí),DC判斷消息是否需要存儲(chǔ),如果是,那么存儲(chǔ)離線消息至DC,否則進(jìn)行下一步;當(dāng)用戶登錄時(shí),DC選路,將離線消息分發(fā)給與該登錄用戶連接的MB,對(duì)于非定向一對(duì)多廣播消息,DC是將離線消息廣播至所有的MB ;然后MB將離線消息發(fā)送給對(duì)應(yīng)的登錄用戶,如果發(fā)送成功,那么MB通知DC刪除存儲(chǔ)的離線消息并結(jié)束該操作過程,否則丟棄該離線消息或不刪除該離線消息,留待下次用戶登錄時(shí)發(fā)送并結(jié)束該過程。圖4是本發(fā)明實(shí)施例的用戶獲取離線消息的處理流程圖。如圖4所示,離線消息處理過程包括:首先用戶登錄至為其分配的MB,然后MB向DC發(fā)送獲取對(duì)應(yīng)用戶的離線消息請(qǐng)求;然后DC查詢是否存在對(duì)應(yīng)用戶的離線消息,如果存在那么進(jìn)行下一步,否則結(jié)束該操作過程;DC將離線消息推送給對(duì)應(yīng)的MB,然后由MB發(fā)送給對(duì)應(yīng)的用戶,如果發(fā)送成功,那么MB通知DC刪除存儲(chǔ)的對(duì)應(yīng)的離線消息并結(jié)束該操作過程,否則不刪除離線消息并結(jié)束該過程。圖5是本發(fā)明實(shí)施例的用戶登錄流程圖,如圖5所示,用戶登錄過程包括:客戶端首先向LB發(fā)起獲取MB請(qǐng)求,LB返回相應(yīng)的MB地址信息給客戶端,然后客戶端向MB發(fā)起登錄請(qǐng)求,帶上自身的session id,然后MB根據(jù)該session id向認(rèn)證服務(wù)器發(fā)起驗(yàn)證請(qǐng)求,如果通過驗(yàn)證,那么MB接受該客戶端“連接”,否則拒絕該客戶端。圖6是本發(fā)明實(shí)施例的跨系統(tǒng)結(jié)構(gòu)原理圖,在跨系統(tǒng)結(jié)構(gòu)中需要將數(shù)據(jù)中心的離線用戶數(shù)據(jù)通過代理托管模塊(Proxy)同步至其它系統(tǒng)的機(jī)房,同時(shí)將在線用戶ID報(bào)告至Proxy,由Proxy提供查詢用戶狀態(tài)接口。數(shù)據(jù)中心與Proxy的連接是基于TCP的長(zhǎng)連接。數(shù)據(jù)中心將離線用戶數(shù)據(jù)發(fā)送至Proxy,由Proxy將該數(shù)據(jù)轉(zhuǎn)發(fā)至其它機(jī)房的數(shù)據(jù)中心。同時(shí),將在線用戶狀態(tài)提交給Proxy,由Proxy提供查詢用戶狀態(tài)的接口。當(dāng)用戶狀態(tài)變化時(shí),數(shù)據(jù)中心將通知Proxy做狀態(tài)更新。當(dāng)不是跨機(jī)房結(jié)構(gòu)時(shí),由數(shù)據(jù)中心提供查詢用戶狀態(tài)的接口。圖7是本發(fā)明實(shí)施例離線消息集中處理方法的詳細(xì)流程圖。如圖7所示:應(yīng)用系統(tǒng)產(chǎn)生離線消息,數(shù)據(jù)中心根據(jù)應(yīng)用系統(tǒng)參數(shù)判斷是否存儲(chǔ)離線消息。如果用戶在應(yīng)用系統(tǒng)的程序上進(jìn)行了離線消息存儲(chǔ)的設(shè)置,則由數(shù)據(jù)中心對(duì)離線消息進(jìn)行統(tǒng)一存儲(chǔ);如果目標(biāo)用戶上線,且離線消息在時(shí)限范圍內(nèi),則由消息轉(zhuǎn)發(fā)器向數(shù)據(jù)中心請(qǐng)求獲取該離線消息,并推送至目標(biāo)用戶;在成功發(fā)送給目標(biāo)用戶后,通知數(shù)據(jù)中心刪除該離線消息。如果用戶沒有進(jìn)行離線消息存儲(chǔ)的設(shè)置,則將該離線消息直接推送給與該用戶對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器,如果目標(biāo)用戶當(dāng)前的狀態(tài)為在線,則由消息轉(zhuǎn)發(fā)器將該離線消息轉(zhuǎn)發(fā)給目標(biāo)用戶,否則丟棄該離線消息。本發(fā)明實(shí)施例的離線消息集中處理方法與系統(tǒng)具有以下特點(diǎn):1、離線消息由數(shù)據(jù)中心集中統(tǒng)一管理,便于備份和防止數(shù)據(jù)丟失;2、數(shù)據(jù)中心可擴(kuò)展,數(shù)據(jù)中心之間由Proxy托管模塊對(duì)接;3、用戶鏈接分類,初次登錄用戶或者與消息轉(zhuǎn)發(fā)器連接失敗的用戶由負(fù)載均衡器進(jìn)行消息轉(zhuǎn)發(fā)器的再分配,消息轉(zhuǎn)發(fā)器僅用于維護(hù)用戶的網(wǎng)絡(luò)連接以及推送離線消息給用戶;具體地,負(fù)載均衡器用于與第一次登錄的用戶建立連接,為用戶選擇鏈路最優(yōu)的消息轉(zhuǎn)發(fā)器,同時(shí),在消息轉(zhuǎn)發(fā)器出現(xiàn)問題時(shí),為用戶再分配消息轉(zhuǎn)發(fā)器建立鏈路。本發(fā)明實(shí)施例的離線消息集中處理方法與系統(tǒng),通過對(duì)離線消息進(jìn)行統(tǒng)一管理和備份,避免了現(xiàn)有技術(shù)中離線消息分散存儲(chǔ)所帶來的弊端,提升了用戶的使用體驗(yàn)。以上實(shí)施例僅用以說明本發(fā)明實(shí)施例的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明實(shí)施例進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例各實(shí)施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種離線消息集中處理系統(tǒng),其特征在于,所述系統(tǒng)包括:數(shù)據(jù)中心、消息轉(zhuǎn)發(fā)器和負(fù)載均衡器; 所述數(shù)據(jù)中心,接收應(yīng)用系統(tǒng)發(fā)送給用戶的消息,如果用戶離線,則將所述消息作為離線消息統(tǒng)一存儲(chǔ)和備份;并根據(jù)所述消息轉(zhuǎn)發(fā)器的請(qǐng)求,向所述消息轉(zhuǎn)發(fā)器發(fā)送對(duì)應(yīng)用戶的離線消息; 所述負(fù)載均衡器,根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器; 所述消息轉(zhuǎn)發(fā)器,當(dāng)用戶上線時(shí),向所述數(shù)據(jù)中心發(fā)起獲取離線消息的請(qǐng)求,接收所述數(shù)據(jù)中心返回的該用戶的離線消息,將所述離線消息發(fā)送給對(duì)應(yīng)的用戶。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于, 所述消息轉(zhuǎn)發(fā)器,在成功發(fā)送所述離線消息給用戶之后,向所述數(shù)據(jù)中心返回成功發(fā)送通知; 所述數(shù)據(jù)中心,根據(jù)所述成功發(fā)送通知,刪除已成功發(fā)送的離線消息。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于, 所述消息轉(zhuǎn) 發(fā)器,還用于將其當(dāng)前的負(fù)載情況告知所述負(fù)載均衡器; 所述負(fù)載均衡器,具體用于與首次登錄的用戶建立連接,根據(jù)鏈路狀況以及所述消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配最優(yōu)的消息轉(zhuǎn)發(fā)器;并在已分配的消息轉(zhuǎn)發(fā)器出現(xiàn)故障時(shí),為用戶重新分配消息轉(zhuǎn)發(fā)器。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于, 所述消息轉(zhuǎn)發(fā)器,還用于當(dāng)用戶登錄時(shí),根據(jù)用戶的會(huì)話標(biāo)識(shí)向認(rèn)證服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過則建立與該用戶的連接,否則拒絕該用戶登錄。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于, 所述消息轉(zhuǎn)發(fā)器,還用于更新用戶當(dāng)前的在線狀態(tài),并將用戶當(dāng)前的在線狀態(tài)告知所述數(shù)據(jù)中心; 所述數(shù)據(jù)中心,還用于維護(hù)整個(gè)系統(tǒng)中用戶當(dāng)前的在線狀態(tài),以提供查詢用戶狀態(tài)的接口,并根據(jù)系統(tǒng)中的用戶當(dāng)前的在線狀態(tài)對(duì)來自所述應(yīng)用系統(tǒng)的消息進(jìn)行處理。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括:連接不同機(jī)房?jī)?nèi)的多個(gè)數(shù)據(jù)中心的代理托管模塊; 所述數(shù)據(jù)中心,還用于將存儲(chǔ)的離線消息通過所述代理托管模塊同步至其它機(jī)房;當(dāng)用戶當(dāng)前的在線狀態(tài)發(fā)生變化時(shí),通知所述代理托管模塊進(jìn)行用戶狀態(tài)更新。
7.一種離線消息集中處理方法,其特征在于,所述方法包括: 數(shù)據(jù)中心接收應(yīng)用系統(tǒng)發(fā)送給用戶的消息,如果用戶離線,則將所述消息作為離線消息統(tǒng)一存儲(chǔ)和備份; 負(fù)載均衡器根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器; 當(dāng)用戶上線時(shí),與該用戶對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器向所述數(shù)據(jù)中心發(fā)起獲取離線消息的請(qǐng)求; 所述數(shù)據(jù)中心根據(jù)所述消息轉(zhuǎn)發(fā)器的請(qǐng)求,向所述消息轉(zhuǎn)發(fā)器發(fā)送對(duì)應(yīng)用戶的離線消息;所述消息轉(zhuǎn)發(fā)器接收所述數(shù)據(jù)中心返回的該用戶的離線消息,將所述離線消息發(fā)送給對(duì)應(yīng)的用戶。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述方法還包括: 在成功發(fā)送所述離線消息給用戶之后,所述消息轉(zhuǎn)發(fā)器向所述數(shù)據(jù)中心返回成功發(fā)送通知; 所述數(shù)據(jù)中心根據(jù)所述成功發(fā)送通知,刪除已成功發(fā)送的離線消息。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述負(fù)載均衡器根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器具體包括: 所述負(fù)載均衡器與首次登錄的用戶建立連接,根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配最優(yōu)的消息轉(zhuǎn)發(fā)器;并在已分配的消息轉(zhuǎn)發(fā)器出現(xiàn)故障時(shí),為用戶重新分配消息轉(zhuǎn)發(fā)器。
10.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述方法還包括: 所述消息轉(zhuǎn)發(fā)器更新用戶當(dāng)前的在線狀態(tài),并將用戶當(dāng)前的在線狀態(tài)告知所述數(shù)據(jù)中心; 所述數(shù)據(jù)中心維護(hù)整個(gè)系統(tǒng)中用戶當(dāng)前的在線狀態(tài),以提供查詢用戶狀態(tài)的接口,并根據(jù)系統(tǒng)中的用戶當(dāng)前的在線狀 態(tài)對(duì)來自所述應(yīng)用系統(tǒng)的消息進(jìn)行處理。
全文摘要
一種離線消息集中處理方法與系統(tǒng),所述系統(tǒng)包括數(shù)據(jù)中心、消息轉(zhuǎn)發(fā)器和負(fù)載均衡器;所述數(shù)據(jù)中心,接收應(yīng)用系統(tǒng)發(fā)送給用戶的消息,如果用戶離線,則將所述消息作為離線消息統(tǒng)一存儲(chǔ)和備份;并根據(jù)所述消息轉(zhuǎn)發(fā)器的請(qǐng)求,向所述消息轉(zhuǎn)發(fā)器發(fā)送對(duì)應(yīng)用戶的離線消息;所述負(fù)載均衡器,根據(jù)鏈路狀況以及消息轉(zhuǎn)發(fā)器的負(fù)載情況,為用戶分配對(duì)應(yīng)的消息轉(zhuǎn)發(fā)器;所述消息轉(zhuǎn)發(fā)器,當(dāng)用戶上線時(shí),向所述數(shù)據(jù)中心發(fā)起獲取離線消息的請(qǐng)求,接收所述數(shù)據(jù)中心返回的該用戶的離線消息,將所述離線消息發(fā)送給對(duì)應(yīng)的用戶。本發(fā)明實(shí)施例的技術(shù)方案,通過對(duì)離線消息進(jìn)行統(tǒng)一管理和備份,避免了現(xiàn)有技術(shù)中離線消息分散存儲(chǔ)所帶來的弊端,提升了用戶的使用體驗(yàn)。
文檔編號(hào)H04L29/06GK103200214SQ20121000603
公開日2013年7月10日 申請(qǐng)日期2012年1月10日 優(yōu)先權(quán)日2012年1月10日
發(fā)明者曾毅, 伍正勇 申請(qǐng)人:深圳市快播科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1