一種大規(guī)模消息推送方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明包含數(shù)據(jù)推送領(lǐng)域,尤指一種大規(guī)模消息推送方法及系統(tǒng)。
【背景技術(shù)】
[0002]所謂信息推送,就是"web廣播〃,是通過一定的技術(shù)標(biāo)準(zhǔn)或協(xié)議,在互聯(lián)網(wǎng)上通過定期傳送用戶需要的信息來減少信息過載的一項(xiàng)新技術(shù)。推送技術(shù)通過自動(dòng)傳送信息給用戶,來減少用于網(wǎng)絡(luò)上搜索的時(shí)間。它根據(jù)用戶的興趣來搜索、過濾信息,并將其定期推給用戶,幫助用戶高效率地發(fā)掘有價(jià)值的信息。從技術(shù)而言,信息推送是一項(xiàng)以數(shù)據(jù)挖掘、自然語言處理以及互聯(lián)網(wǎng)等多門技術(shù)為基礎(chǔ)的綜合性方向。將合適的信息推送給合適的人,是一項(xiàng)極具挑戰(zhàn)的工作。這個(gè)過程需要對(duì)信息作充分的分析,并對(duì)人的興趣、行為做細(xì)致的刻畫,并對(duì)兩者進(jìn)行有效匹配。一般情況下,客戶端與服務(wù)器之間通訊客戶端是主動(dòng)的,但這就存在一個(gè)問題就是一旦服務(wù)器數(shù)據(jù)有更新或者服務(wù)器要下發(fā)通知給客戶端只能等客戶端連接的時(shí)候才能實(shí)現(xiàn)。這種方式使消息失去了實(shí)時(shí)性。有鑒于此,當(dāng)前較好的消息推送方式均采用由服務(wù)端主動(dòng)下發(fā)客戶端的方式來使得推送消息更具實(shí)時(shí)性。
[0003]采用上述方式勢(shì)必會(huì)涉及到面向多客戶端的連接服務(wù),在服務(wù)端的處理方式上,多是服務(wù)器fork子線程或者子進(jìn)程進(jìn)行一對(duì)一的請(qǐng)求服務(wù);而一個(gè)進(jìn)程或線程內(nèi)存占用量就可能高達(dá)數(shù)兆,無論是進(jìn)程還是線程,并發(fā)處理會(huì)涉及上下文切換,影響并發(fā)數(shù)目,這樣在高并發(fā)的場景下并不實(shí)用,由此無法有效實(shí)現(xiàn)大規(guī)模消息的推送。
【發(fā)明內(nèi)容】
[0004]為解決上述問題,本發(fā)明目的在于提供一種大規(guī)模消息推送方法及系統(tǒng),以此克服服務(wù)端無法有效實(shí)現(xiàn)大規(guī)模消息推送的問題。
[0005]為達(dá)上述目的,本發(fā)明所提供的大規(guī)模消息推送方法具體包含:客戶端發(fā)起連接請(qǐng)求,路由端接收所述連接請(qǐng)求后反饋節(jié)點(diǎn)地址;所述客戶端根據(jù)所述節(jié)點(diǎn)地址與聯(lián)機(jī)端建立長連接;所述客戶端向所述路由端發(fā)送離線消息請(qǐng)求,所述路由端將所述離線消息請(qǐng)求透傳至離線端,所述離線端根據(jù)所述離線消息請(qǐng)求從數(shù)據(jù)存儲(chǔ)端獲得離線消息;所述離線端將獲得的離線消息反饋至所述路由端,所述路由端將所述離線消息傳輸給所述客戶端;以及服務(wù)端將發(fā)布消息傳輸至所述路由端,所述路由端將所述發(fā)布消息傳輸至所述聯(lián)機(jī)端,所述聯(lián)機(jī)端將接收到的發(fā)布消息持久化處理到所述數(shù)據(jù)存儲(chǔ)端;當(dāng)所述客戶端在線時(shí),所述聯(lián)機(jī)端將所述發(fā)布消息傳輸至所述客戶端。
[0006]在上述大規(guī)模消息推送方法中,優(yōu)選的還包含:所述路由端接收所述連接請(qǐng)求后反饋節(jié)點(diǎn)地址還包含對(duì)所述連接請(qǐng)求進(jìn)行身份驗(yàn)證,當(dāng)所述身份通過驗(yàn)證后,反饋所述節(jié)點(diǎn)地址。
[0007]在上述大規(guī)模消息推送方法中,優(yōu)選的還包含:所述客戶端根據(jù)所述節(jié)點(diǎn)地址與聯(lián)機(jī)端建立長連接還包含:所述客戶端與所述聯(lián)機(jī)端按周期時(shí)間發(fā)送心跳包。
[0008]在上述大規(guī)模消息推送方法中,優(yōu)選的還包含:所述周期時(shí)間為50秒。
[0009]在上述大規(guī)模消息推送方法中,優(yōu)選的還包含:所述離線消息請(qǐng)求包含當(dāng)前客戶端離線時(shí)間與當(dāng)前時(shí)間標(biāo)識(shí)。
[0010]在上述大規(guī)模消息推送方法中,優(yōu)選的還包含:所述離線端將獲得的離線消息反饋至所述路由端包含:所述離線端根據(jù)所述離線消息請(qǐng)求提取有效的離線消息反饋至所述路由端。
[0011]在上述大規(guī)模消息推送方法中,優(yōu)選的還包含:所述路由端將所述發(fā)布消息傳輸至所述聯(lián)機(jī)端包含:所述路由端對(duì)所述服務(wù)端傳輸?shù)陌l(fā)布消息進(jìn)行身份驗(yàn)證,當(dāng)所述身份通過驗(yàn)證后,將所述發(fā)布消息傳輸至所述聯(lián)機(jī)端。
[0012]在上述大規(guī)模消息推送方法中,優(yōu)選的還包含:所述路由端對(duì)外通信連接都為短連接通信。
[0013]本發(fā)明還提供一種大規(guī)模消息推送系統(tǒng),所述推送系統(tǒng)具體包含:服務(wù)端、路由端、客戶端、聯(lián)機(jī)端、離線端和數(shù)據(jù)存儲(chǔ)端;所述服務(wù)端用于輸出發(fā)布消息;所述路由端與所述服務(wù)端相連,用于接收所述服務(wù)端輸出的發(fā)布消息并輸出,以及提供聯(lián)機(jī)端節(jié)點(diǎn)地址和轉(zhuǎn)傳離線消息;所述聯(lián)機(jī)端與所述路由端相連,用于接收路由端輸出的所述發(fā)布消息,將所述發(fā)布消息持久化處理和/或輸出;所述客戶端與所述路由端相連,用于獲取所述節(jié)點(diǎn)地址和/或接收所述離線消息;所述客戶端還與所述聯(lián)機(jī)端長相連,用于獲取所述發(fā)布消息;所述離線端與所述路由端相連,用于根據(jù)離線消息請(qǐng)求獲得離線消息,并將所述離線消息輸出;所述數(shù)據(jù)存儲(chǔ)端分別與所述聯(lián)機(jī)端和所述離線端相連,用于保存持久化處理后的發(fā)布消息并輸出。
[0014]在上述大規(guī)模消息推送系統(tǒng)中,優(yōu)選的還包含:所述數(shù)據(jù)存儲(chǔ)端周期清理過期發(fā)布消息。
[0015]本發(fā)明的有益技術(shù)效果在于:通過本發(fā)明所提供的大規(guī)模消息推送方法及系統(tǒng)在節(jié)約短信發(fā)送的成本,滿足很多需要后臺(tái)觸發(fā)交易的流程處理的同時(shí),還以單機(jī)的大并發(fā)節(jié)約硬件資源,降低硬件設(shè)備的成本。
【附圖說明】
[0016]此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,并不構(gòu)成對(duì)本發(fā)明的限定。在附圖中:
[0017]圖1為本發(fā)明所提供的大規(guī)模消息推送方法的流程圖;
[0018]圖2為本發(fā)明所提供的大規(guī)模消息推送系統(tǒng)的框架圖;
[0019]圖3為本發(fā)明所提供的大規(guī)模消息推送方法中客戶端與聯(lián)機(jī)端長連接的框架圖;
[0020]圖4為本發(fā)明所提供的大規(guī)模消息推送系統(tǒng)中推送在線消息的框架圖;
[0021]圖5為本發(fā)明所提供的大規(guī)模消息推送系統(tǒng)中推送離線消息的框架圖。
【具體實(shí)施方式】
[0022]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施例和附圖,對(duì)本發(fā)明做進(jìn)一步詳細(xì)說明。在此,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。
[0023]請(qǐng)參考圖1所示,圖1為本發(fā)明所提供的大規(guī)模消息推送方法的流程圖,具體包含:S101客戶端發(fā)起連接請(qǐng)求,路由端接收所述連接請(qǐng)求后反饋節(jié)點(diǎn)地址;S102所述客戶端根據(jù)所述節(jié)點(diǎn)地址與聯(lián)機(jī)端建立長連接;S103所述客戶端向所述路由端發(fā)送離線消息請(qǐng)求,所述路由端將所述離線消息請(qǐng)求透傳至離線端,所述離線端根據(jù)所述離線消息請(qǐng)求從數(shù)據(jù)存儲(chǔ)端獲得離線消息;S104所述離線端將獲得的離線消息反饋至所述路由端,所述路由端將所述離線消息傳輸給所述客戶端;以及S105服務(wù)端將發(fā)布消息傳輸至所述路由端,所述路由端將所述發(fā)布消息傳輸至所述聯(lián)機(jī)端,所述聯(lián)機(jī)端將接收到的發(fā)布消息持久化處理到所述數(shù)據(jù)存儲(chǔ)端;S106當(dāng)所述客戶端在線時(shí),所述聯(lián)機(jī)端將所述發(fā)布消息傳輸至所述客戶端。
[0024]在上述步驟SlOl中,優(yōu)選的還包含:所述路由端接收所述連接請(qǐng)求后反饋節(jié)點(diǎn)地址還包含對(duì)所述連接請(qǐng)求進(jìn)行身份驗(yàn)證,當(dāng)所述身份通過驗(yàn)證后,反饋所述節(jié)點(diǎn)地址。上述身份驗(yàn)證包含對(duì)當(dāng)前連接請(qǐng)求信息中的用戶身份標(biāo)識(shí)信息,客戶端位址標(biāo)識(shí)信息等進(jìn)行驗(yàn)證,判斷所述標(biāo)識(shí)信息是否合法和/或所述標(biāo)識(shí)信息為何類分組信息,根據(jù)判斷結(jié)果反饋對(duì)應(yīng)分配的節(jié)點(diǎn)地址;例如,當(dāng)前用戶身份標(biāo)識(shí)信息中標(biāo)記有VIP用戶,則分配節(jié)點(diǎn)地址時(shí),優(yōu)選的分配較即時(shí)的節(jié)點(diǎn)為該用戶提供消息推送服務(wù),當(dāng)客戶端位址標(biāo)識(shí)信息為本地客戶端,那么優(yōu)選的分配為本地用戶推送本地消息的節(jié)點(diǎn)位址。
[0025]在上述步驟S102中,優(yōu)選的還包含:所述客戶端根據(jù)所述節(jié)點(diǎn)地址與聯(lián)機(jī)端建立長連接還包含:所述客戶端與所述聯(lián)機(jī)端按周期時(shí)間發(fā)送心跳包。所述周期時(shí)間為50秒。
[0026]在上述大規(guī)模消息推送方法中,優(yōu)選的還包含:所述離線消息請(qǐng)求包含當(dāng)前客戶端離線時(shí)間與當(dāng)前時(shí)間標(biāo)識(shí)。
[0027]在上述步驟S104中,優(yōu)選的還包含:所述離線端根據(jù)所述離線消息請(qǐng)求提取有效的離線消息反饋至所述路由端。所述離線端分析當(dāng)前離線消息請(qǐng)求后獲得客戶端離線時(shí)間,將該離線時(shí)間與數(shù)據(jù)存儲(chǔ)端中的發(fā)布消息進(jìn)行比對(duì),獲得用戶缺失的離線消息;提前所述用戶缺失的離線消息并反饋輸出至所述路由端。
[0028]在上述步驟S105中,優(yōu)選的還包含:所述路由端將所述發(fā)布消息傳輸至所述聯(lián)機(jī)端包含:所述路由端對(duì)所述服務(wù)端傳輸?shù)陌l(fā)布消息進(jìn)行身份驗(yàn)證,當(dāng)所述身份通過驗(yàn)證后,將所述發(fā)布消息傳輸至所述聯(lián)機(jī)端。
[0029]在上述大規(guī)模消息推送方法中,優(yōu)選的還包含:所述路由端對(duì)外通信連接都為短連接通信。
[0030]請(qǐng)參考圖2所示,圖2為本發(fā)明所提供的大規(guī)模消息推送系統(tǒng),所述推送系統(tǒng)具體包含:服務(wù)端、路由