一種消息推送方法、裝置及系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明適用于消息推送領(lǐng)域,提供了一種消息推送方法、裝置及系統(tǒng)。所述方法包括:接收推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容;所述推送命令攜帶了需推送消息的終端的唯一標(biāo)識(shí);在所述需推送消息的終端的唯一標(biāo)識(shí)對(duì)應(yīng)的終端網(wǎng)絡(luò)在線時(shí),通過(guò)與所述終端建立的TCP長(zhǎng)連接將所述推送內(nèi)容發(fā)送至所述終端。本發(fā)明實(shí)施例能夠降低服務(wù)器的能耗。
【專(zhuān)利說(shuō)明】一種消息推送方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于消息推送領(lǐng)域,尤其涉及一種消息推送方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]目前,智能終端及網(wǎng)絡(luò)技術(shù)正處于高速發(fā)展時(shí)期,為了實(shí)現(xiàn)信息的及時(shí)傳遞,各智能終端平臺(tái)都推出了消息推送服務(wù),即服務(wù)端主動(dòng)向智能終端發(fā)送信息,該智能終端再接收服務(wù)端發(fā)送的信息。這樣,在服務(wù)端產(chǎn)生新的信息后,智能終端無(wú)需主動(dòng)向服務(wù)端請(qǐng)求就能接收到服務(wù)器產(chǎn)生的新的信息。
[0003]現(xiàn)有的消息推送方法中:終端通過(guò)與服務(wù)器建立的臨時(shí)TCP連接接收服務(wù)器推送的消息。但由于這種方法每次都需要終端發(fā)起http請(qǐng)求,與服務(wù)器重新建立一個(gè)臨時(shí)的TCP連接,因此導(dǎo)致請(qǐng)求操作和連接操作過(guò)多,從而消耗過(guò)多的服務(wù)器以及終端的資源。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種消息推送方法,旨在解決現(xiàn)有方法在推送消息時(shí)消耗資源過(guò)多的的問(wèn)題。
[0005]本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種消息推送方法,所述方法包括下述步驟:
[0006]接收推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容;所述推送命令攜帶了需推送消息的終端的唯一標(biāo)識(shí);
[0007]在所述需推送消息的終端的唯一標(biāo)識(shí)對(duì)應(yīng)的終端網(wǎng)絡(luò)在線時(shí),通過(guò)與所述終端建立的TCP長(zhǎng)連接將所述推送內(nèi)容發(fā)送至所述終端。
[0008]本發(fā)明實(shí)施例的另一目的在于提供一種消息推送裝置,所述裝置包括:
[0009]消息接收單元,用于接收推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容;所述推送命令攜帶了需推送消息的終端的唯一標(biāo)識(shí);
[0010]消息推送單元,用于在所述需推送消息的終端的唯一標(biāo)識(shí)對(duì)應(yīng)的終端網(wǎng)絡(luò)在線時(shí),通過(guò)與所述終端建立的TCP長(zhǎng)連接將所述推送內(nèi)容發(fā)送至所述終端。
[0011]本發(fā)明實(shí)施例的另一目的在于提供一種消息推送系統(tǒng),所述系統(tǒng)包括分發(fā)服務(wù)器、接入服務(wù)器以及推送服務(wù)器;
[0012]所述分發(fā)服務(wù)器與所述接入服務(wù)器連接,用于定時(shí)從所述接入服務(wù)器獲取所有IP地址的終端接入負(fù)載量;所述分發(fā)服務(wù)器與終端連接,用于在接收終端的http請(qǐng)求后,將終端接入負(fù)載量最少的IP地址發(fā)送給所述終端;
[0013]所述接入服務(wù)器分別與所述終端和所述推送服務(wù)器連接,用于接收所述終端通過(guò)所述終端接入負(fù)載量最少的IP地址和端口發(fā)送的TCP長(zhǎng)連接建立請(qǐng)求,并與所述終端建立TCP長(zhǎng)連接;以及用于接收推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容;所述推送命令攜帶了需推送消息的終端的唯一標(biāo)識(shí);所述接入服務(wù)器還用于在所述需推送消息的終端的唯一標(biāo)識(shí)對(duì)應(yīng)的終端網(wǎng)絡(luò)在線時(shí),通過(guò)與所述終端建立的TCP長(zhǎng)連接將所述推送內(nèi)容發(fā)送至所述終端。[0014]在本發(fā)明實(shí)施例中,由于終端與接入服務(wù)器建立的是TCP長(zhǎng)連接,因此后續(xù)接入服務(wù)器向該終端發(fā)送推送內(nèi)容時(shí),終端無(wú)需重新發(fā)起連接建立請(qǐng)求,從而不會(huì)消耗過(guò)多的服務(wù)器以及終端的資源。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0015]圖1是本發(fā)明第一實(shí)施例提供的一種消息推送方法的流程圖;
[0016]圖2是本發(fā)明第二實(shí)施例提供的一種消息推送裝置的結(jié)構(gòu)圖;
[0017]圖3是本發(fā)明第三實(shí)施例提供的一種消息推送系統(tǒng)的結(jié)構(gòu)圖;
[0018]圖4是本發(fā)明第三實(shí)施例提供的另一種消息推送系統(tǒng)的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0019]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]本發(fā)明實(shí)施例中,終端向分發(fā)服務(wù)器發(fā)送http請(qǐng)求后,該分發(fā)服務(wù)器將查找到的終端接入負(fù)載量最少的IP地址及對(duì)應(yīng)的端口發(fā)送給該終端,終端再訪問(wèn)該IP地址,請(qǐng)求與該IP地址對(duì)應(yīng)的接入服務(wù)器建立TCP長(zhǎng)連接,在TCP長(zhǎng)連接建立成功后,接入服務(wù)器每次接收到推送服務(wù)器發(fā)送的推送內(nèi)容,則將該推送內(nèi)容通過(guò)建立的TCP長(zhǎng)連接推送給終端。
[0021]為了說(shuō)明本發(fā)明所述的技術(shù)方案,下面通過(guò)具體實(shí)施例來(lái)進(jìn)行說(shuō)明。
[0022]實(shí)施例一:
[0023]圖1示出了本發(fā)明第一實(shí)施例提供的一種消息推送方法的流程圖,在本實(shí)施例中,接入服務(wù)器從推送服務(wù)器接收到推送內(nèi)容,并將接收的內(nèi)容通過(guò)與終端建立的TCP長(zhǎng)連接發(fā)送給終端,詳述如下:
[0024]步驟S11,接收推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容;所述推送命令攜帶了需推送消息的終端的唯一標(biāo)識(shí)。
[0025]該步驟中,需推送消息的終端通常指與網(wǎng)絡(luò)正常連接的,上線的終端。推送服務(wù)器獲取接入服務(wù)器配置的各個(gè)主IP地址和各個(gè)虛擬IP地址的終端接入負(fù)載量及終端的唯一標(biāo)識(shí),并根據(jù)獲取的各個(gè)主IP地址和各個(gè)虛擬IP地址的終端接入負(fù)載量及終端的唯一標(biāo)識(shí)發(fā)送推送命令和推送內(nèi)容。其中,一個(gè)主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址,虛擬IP地址的個(gè)數(shù)根據(jù)需接入的終端個(gè)數(shù)進(jìn)行配置,通常來(lái)說(shuō),一個(gè)虛擬IP地址能夠接入6萬(wàn)個(gè)終端。
[0026]步驟S12,在所述需推送消息的終端的唯一標(biāo)識(shí)對(duì)應(yīng)的終端網(wǎng)絡(luò)在線時(shí),通過(guò)與所述終端建立的TCP長(zhǎng)連接將所述推送內(nèi)容發(fā)送至所述終端。
[0027]該步驟中,若終端不在線,則緩存推送內(nèi)容或緩存推送內(nèi)容對(duì)應(yīng)的標(biāo)識(shí),通過(guò)該標(biāo)識(shí)能夠準(zhǔn)確查找到對(duì)應(yīng)的推送內(nèi)容,等到終端上線后再重新推送。
[0028]該步驟中的TCP長(zhǎng)連接是指終端向接入服務(wù)器發(fā)起TCP長(zhǎng)連接請(qǐng)求,服務(wù)器接受終端的TCP長(zhǎng)連接請(qǐng)求,雙方建立連接。終端與接入服務(wù)器完成一次讀寫(xiě)之后,它們之間的連接并不會(huì)主動(dòng)關(guān)閉,后續(xù)的讀寫(xiě)操作會(huì)繼續(xù)使用這個(gè)連接。在該步驟中,接入服務(wù)器和終端通過(guò)互發(fā)心跳信息判斷建立的TCP長(zhǎng)連接是否仍有效。由于終端與接入服務(wù)器建立的是TCP長(zhǎng)連接,因此后續(xù)接入服務(wù)器向該終端發(fā)送推送內(nèi)容時(shí),終端無(wú)需重新發(fā)起連接建立請(qǐng)求,從而不會(huì)消耗過(guò)多的服務(wù)器以及終端的資源。
[0029]作為本發(fā)明一優(yōu)選實(shí)施例,在所述接收推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容的步驟之前,包括下述步驟:
[0030]Al、分發(fā)服務(wù)器偵聽(tīng)終端連接請(qǐng)求,將終端接入負(fù)載量最小的接入服務(wù)器IP地址和端口反饋給終端,所述IP地址包括主IP地址和虛擬IP地址,所述主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址。
[0031]在該步驟之前,可執(zhí)行以下操作:設(shè)置接入服務(wù)器中用戶進(jìn)程和系統(tǒng)可打開(kāi)的文件數(shù)的限制,增加單個(gè)進(jìn)程和系統(tǒng)可以打開(kāi)的文件數(shù),例如達(dá)到100萬(wàn)。同時(shí),修改網(wǎng)絡(luò)內(nèi)核對(duì)TCP連接的有關(guān)限制,包括修改可以打開(kāi)的端口數(shù)量,例如增加到65535,以及擴(kuò)大內(nèi)存等。
[0032]A2、接入服務(wù)器偵聽(tīng)到終端通過(guò)獲取的IP地址和端口發(fā)送的TCP長(zhǎng)連接建立請(qǐng)求時(shí),接收所述TCP長(zhǎng)連接建立請(qǐng)求,以與所述終端建立TCP長(zhǎng)連接。
[0033]上述步驟中,啟用一個(gè)線程負(fù)責(zé)偵聽(tīng)終端是否向接入服務(wù)器發(fā)起TCP長(zhǎng)連接建立請(qǐng)求,啟用另一個(gè)線程負(fù)責(zé)接收終端發(fā)送的TCP長(zhǎng)連接建立請(qǐng)求。由于啟用了不同的線程處理不同的事件,因此能夠最大限度地利用非阻塞輸入輸出(Nonblocking Input, Output,NIO)的異步和通知特性。并且,由于預(yù)先修改了接入服務(wù)器的用戶進(jìn)程和系統(tǒng)可打開(kāi)的文件數(shù)等參數(shù),因此,接入服務(wù)器可同時(shí)與終端建立多個(gè)TCP長(zhǎng)連接,從而可同時(shí)向多個(gè)終端發(fā)送推送消息,節(jié)省了接入服務(wù)器的數(shù)量,節(jié)約了成本。
[0034]作為本發(fā)明一優(yōu)選實(shí)施例,步驟Al、分發(fā)服務(wù)器偵聽(tīng)終端連接請(qǐng)求,將終端接入負(fù)載量最小的接入服務(wù)器IP地址和端口反饋給終端,所述IP地址包括主IP地址和虛擬IP地址,所述主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址具體包括:
[0035]步驟All,接收到終端發(fā)送的http請(qǐng)求后,查找終端接入負(fù)載量最小的接入服務(wù)器配置的IP地址,所述IP地址包括所述接入服務(wù)器配置的主IP地址和虛擬IP地址,所述主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址。
[0036]其中,分發(fā)服務(wù)器與接入服務(wù)器處于連接狀態(tài),用于定時(shí)查詢接入服務(wù)器配置的各個(gè)IP地址的終端接入負(fù)載量,并將查詢結(jié)果存入內(nèi)存,以便在接收到終端發(fā)送的http請(qǐng)求后,查找終端接入負(fù)載量最小的接入服務(wù)器。該步驟的http請(qǐng)求指從終端到分發(fā)服務(wù)器端的請(qǐng)求消息,在該步驟中,終端發(fā)送的http請(qǐng)求用于請(qǐng)求分發(fā)服務(wù)器為其分配接入服務(wù)器的一個(gè)IP地址。由于預(yù)先查詢了接入服務(wù)器配置的各個(gè)IP地址的終端接入負(fù)載量,因此在接收到終端發(fā)送的http請(qǐng)求后,能夠及時(shí)查找出終端接入負(fù)載量最小的IP地址。
[0037]作為本發(fā)明一優(yōu)選實(shí)施例,在所述查找終端接入負(fù)載量最小的接入服務(wù)器配置的IP地址的步驟之前,包括下述步驟:
[0038]B1、判斷接入服務(wù)器配置的主IP地址是否被標(biāo)識(shí)為異常。
[0039]B2、在所述接入服務(wù)器配置的主IP地址沒(méi)有被標(biāo)識(shí)為異常時(shí),統(tǒng)計(jì)所述主IP地址的終端接入負(fù)載量,以及所述主IP地址對(duì)應(yīng)的所有虛擬IP地址的終端接入負(fù)載量。
[0040]B3、在所述接入服務(wù)器配置的主IP地址標(biāo)識(shí)為異常時(shí),不統(tǒng)計(jì)所述主IP地址的終端接入負(fù)載量,以及所述主IP地址對(duì)應(yīng)的所有虛擬IP地址的終端接入負(fù)載量。
[0041]上述步驟的分發(fā)服務(wù)器與接入服務(wù)器的主IP地址之間建立心跳機(jī)制,分發(fā)服務(wù)器通過(guò)建立的心跳機(jī)制對(duì)接入服務(wù)器集群進(jìn)行管理。如果分發(fā)服務(wù)器與接入服務(wù)器的某個(gè)主IP地址之間的心跳異常,則分發(fā)服務(wù)器將此主IP地址以及該主IP地址對(duì)應(yīng)的所有虛擬IP地址進(jìn)行屏蔽,不返回這些IP地址給終端。例如,分發(fā)服務(wù)器與接入服務(wù)器的主IP地址相互發(fā)送心跳信息,如果分發(fā)服務(wù)器在發(fā)送了心跳信息給接入服務(wù)器的某個(gè)主IP地址之后,超過(guò)預(yù)設(shè)的心跳時(shí)間(例如I秒)還沒(méi)收到該主IP地址發(fā)送的心跳信息,則標(biāo)識(shí)該主IP地址為異常的地址。當(dāng)分發(fā)服務(wù)器判定一個(gè)主IP地址為異常地址之后,該分發(fā)服務(wù)器不統(tǒng)計(jì)該主IP地址的終端接入負(fù)載量及該主IP地址對(duì)應(yīng)的虛擬IP地址的終端接入負(fù)載量;反之,該分發(fā)服務(wù)器統(tǒng)計(jì)該主IP地址的終端接入負(fù)載量,以及統(tǒng)計(jì)該主IP地址對(duì)應(yīng)的虛擬IP地址的終端接入負(fù)載量。例如,假設(shè)主IP地址為m,該主IP對(duì)應(yīng)的虛擬IP地址為X、n,則在m為正常地址時(shí),統(tǒng)計(jì)該m的終端接入負(fù)載量、統(tǒng)計(jì)X的終端接入負(fù)載量,以及統(tǒng)計(jì)η的終端接入負(fù)載量。進(jìn)一步地,在分發(fā)服務(wù)器判定一個(gè)主IP地址異常時(shí),斷開(kāi)與該主IP地址以及該主IP地址對(duì)應(yīng)的虛擬IP地址的心跳連接,接入服務(wù)器中的這些地址發(fā)現(xiàn)與分發(fā)服務(wù)器的連接斷開(kāi)后,主動(dòng)斷開(kāi)與終端的連接,以使終端重新請(qǐng)求分發(fā)服務(wù)器發(fā)送其他IP地址。
[0042]步驟Α12,將查找到的終端接入負(fù)載量最少的IP地址以及所述終端接入負(fù)載量最少的IP地址的端口發(fā)送給所述終端。
[0043]該步驟中,分發(fā)服務(wù)器將查找到的終端接入負(fù)載量最少的IP地址以及接入服務(wù)器的端口發(fā)送給終端。這里的IP地址可以為主IP地址,也可以為虛擬IP地址,只要其終端接入負(fù)載量最少即可。
[0044]本實(shí)施例中,分發(fā)服務(wù)器將終端接入負(fù)載量最少的IP地址以及所述終端接入負(fù)載量最少的IP地址的端口發(fā)送給終端,以使終端通過(guò)接收的信息訪問(wèn)接入服務(wù)器。由于分發(fā)服務(wù)器發(fā)送的IP地址是終端接入負(fù)載量最少的,因此在后續(xù)終端訪問(wèn)所述IP地址時(shí)能得到更及時(shí)的響應(yīng),加快響應(yīng)速度。
[0045]作為本發(fā)明一優(yōu)選實(shí)施例,在所述統(tǒng)計(jì)所述主IP地址的終端接入負(fù)載量,以及所述主IP地址對(duì)應(yīng)的所有虛擬IP地址的終端接入負(fù)載量的步驟之后,包括下述步驟:
[0046]判斷接入服務(wù)器配置的所有IP地址的終端接入負(fù)載量是否都超過(guò)預(yù)設(shè)的接入負(fù)載最大值,并在所述接入服務(wù)器配置的所有IP地址的終端接入負(fù)載量都超過(guò)預(yù)設(shè)的接入負(fù)載最大值時(shí),發(fā)送反饋信息至所述終端,以使所述終端在預(yù)設(shè)時(shí)間過(guò)后重新發(fā)送http請(qǐng)求。
[0047]該步驟中,預(yù)設(shè)的接入負(fù)載最大值根據(jù)經(jīng)驗(yàn)設(shè)定,例如,設(shè)定接入的終端最大值為6萬(wàn)個(gè),當(dāng)然,也可以設(shè)定為其他值,此處不作限定。當(dāng)接入服務(wù)器配置的所有IP地址的終端接入負(fù)載量都超過(guò)預(yù)設(shè)的接入負(fù)載最大值時(shí),發(fā)送反饋信息至發(fā)送http請(qǐng)求的終端,告知該終端接入服務(wù)器已超載,其可以在預(yù)設(shè)時(shí)間過(guò)后再重試請(qǐng)求,例如在一個(gè)小時(shí)之后再重試。
[0048]實(shí)施例二:
[0049]圖2示出了本發(fā)明第二實(shí)施例提供的一種消息推送裝置的結(jié)構(gòu)圖,為了便于說(shuō)明,僅不出了與本發(fā)明實(shí)施例相關(guān)的部分。
[0050]該消息推送裝置可以用于通過(guò)有線或者無(wú)線網(wǎng)絡(luò)連接服務(wù)器的各種信息處理終端,例如移動(dòng)電話、口袋計(jì)算機(jī)(Pocket Personal Computer, PPC)、掌上電腦、計(jì)算機(jī)、筆記本電腦、個(gè)人數(shù)字助理(Personal Digital Assistant, PDA)等,可以是運(yùn)行于這些信息處理終端內(nèi)的軟件單元、硬件單元或者軟硬件相結(jié)合的單元,也可以作為獨(dú)立的掛件集成到這些信息處理終端中或者運(yùn)行于這些信息處理終端的應(yīng)用系統(tǒng)中。
[0051]該消息推送裝置包括:消息接收單元31和消息推送單元32。
[0052]消息接收單元31,用于接收推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容;所述推送命令攜帶了需推送消息的終端的唯一標(biāo)識(shí)。
[0053]上述的推送服務(wù)器根據(jù)獲取的各個(gè)主IP地址和各個(gè)虛擬IP地址的終端接入負(fù)載量及終端的唯一標(biāo)識(shí),向消息推送裝置發(fā)送推送命令和推送內(nèi)容。其中,一個(gè)主IP地址可對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址。
[0054]消息推送單元32,用于在所述需推送消息的終端的唯一標(biāo)識(shí)對(duì)應(yīng)的終端網(wǎng)絡(luò)在線時(shí),通過(guò)與所述終端建立的TCP長(zhǎng)連接將所述推送內(nèi)容發(fā)送至所述終端。
[0055]當(dāng)消息推送裝置判斷終端處于網(wǎng)絡(luò)連接狀態(tài)時(shí),發(fā)送推送內(nèi)容給所述終端。
[0056]本實(shí)施例中,由于終端與消息推送裝置建立的是TCP長(zhǎng)連接,因此后續(xù)消息推送裝置向該終端發(fā)送推送內(nèi)容時(shí),終端無(wú)需重新發(fā)起連接建立請(qǐng)求,從而不會(huì)消耗過(guò)多的資源。
[0057]作為本發(fā)明一優(yōu)選實(shí)施例,所述消息推送裝置包括:
[0058]請(qǐng)求偵聽(tīng)單元,用于偵聽(tīng)終端連接請(qǐng)求,將終端接入負(fù)載量最小的接入服務(wù)器IP地址和端口反饋給終端,所述IP地址包括主IP地址和虛擬IP地址,所述主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址。
[0059]連接建立單元,用于偵聽(tīng)到終端通過(guò)獲取的IP地址和端口發(fā)送的TCP長(zhǎng)連接建立請(qǐng)求時(shí),接收所述TCP長(zhǎng)連接建立請(qǐng)求,以與所述終端建立TCP長(zhǎng)連接。
[0060]其中,請(qǐng)求偵聽(tīng)單元和連接建立單元可通過(guò)不同的線程實(shí)現(xiàn),由于每個(gè)線程負(fù)責(zé)不同的事件,最大限度地利用NIO的異步和通知特性,因此能夠偵聽(tīng)多個(gè)IP地址,并與多個(gè)IP地址建立TCP長(zhǎng)連接。
[0061]作為本發(fā)明一優(yōu)選實(shí)施例,所述消息推送裝置包括:
[0062]接入負(fù)載量統(tǒng)計(jì)單元,用于接收到終端發(fā)送的http請(qǐng)求后,查找終端接入負(fù)載量最小的接入服務(wù)器配置的IP地址,所述IP地址包括所述接入服務(wù)器配置的主IP地址和虛擬IP地址,所述主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址。
[0063]該接入負(fù)載量統(tǒng)計(jì)單元將存儲(chǔ)的接入服務(wù)器配置的各個(gè)IP地址的終端接入負(fù)載量進(jìn)行比較,查找出終端接入負(fù)載量最小的接入服務(wù)器配置的IP地址。
[0064]地址發(fā)送單元,用于將查找到的終端接入負(fù)載量最少的IP地址以及所述終端接入負(fù)載量最少的IP地址的端口發(fā)送給所述終端。
[0065]這里的IP地址可以為主IP地址,也可以為虛擬IP地址,只要其終端接入負(fù)載量最少即可。
[0066]本實(shí)施例中,由于分發(fā)服務(wù)器發(fā)送的IP地址是終端接入負(fù)載量最少的,因此在后續(xù)終端訪問(wèn)所述IP地址時(shí)能得到更及時(shí)的響應(yīng),加快響應(yīng)速度。
[0067]作為本發(fā)明一優(yōu)選實(shí)施例,所述消息推送裝置包括:
[0068]地址異常判斷單元,用于判斷接入服務(wù)器配置的主IP地址是否被標(biāo)識(shí)為異常。
[0069]接入負(fù)載量選擇統(tǒng)計(jì)單元,用于在所述接入服務(wù)器配置的主IP地址沒(méi)有被標(biāo)識(shí)為異常時(shí),統(tǒng)計(jì)所述主IP地址的終端接入負(fù)載量,以及所述主IP地址對(duì)應(yīng)的所有虛擬IP地址的終端接入負(fù)載量。
[0070]當(dāng)?shù)刂樊惓E袛鄦卧卸ㄒ粋€(gè)主IP地址為異常地址之后,接入負(fù)載量選擇統(tǒng)計(jì)單元不統(tǒng)計(jì)該主IP地址的終端接入負(fù)載量及該主IP地址對(duì)應(yīng)的虛擬IP地址的終端接入負(fù)載量;反之,統(tǒng)計(jì)。進(jìn)一步地,在地址異常判斷單元判定一個(gè)主IP地址異常時(shí),分發(fā)服務(wù)器斷開(kāi)與該主IP地址以及該主IP地址對(duì)應(yīng)的虛擬IP地址的心跳連接,接入服務(wù)器中的這些地址發(fā)現(xiàn)與分發(fā)服務(wù)器的連接斷開(kāi)后,主動(dòng)斷開(kāi)與終端的連接,以使終端重新請(qǐng)求分發(fā)服務(wù)器發(fā)送其他IP地址。
[0071]作為本發(fā)明一優(yōu)選實(shí)施例,所述消息推送裝置包括:包括:
[0072]接入負(fù)載量判斷單元,用于判斷接入服務(wù)器配置的所有IP地址的終端接入負(fù)載量是否都超過(guò)預(yù)設(shè)的接入負(fù)載最大值,并在所述接入服務(wù)器配置的所有IP地址的終端接入負(fù)載量都超過(guò)預(yù)設(shè)的接入負(fù)載最大值時(shí),發(fā)送反饋信息至所述終端,以使所述終端在預(yù)設(shè)時(shí)間過(guò)后重新發(fā)送http請(qǐng)求。
[0073]其中,預(yù)設(shè)的接入負(fù)載最大值根據(jù)經(jīng)驗(yàn)設(shè)定,例如,設(shè)定接入的終端最大值為6萬(wàn)個(gè),當(dāng)然,也可以設(shè)定為其他值,此處不作限定。
[0074]實(shí)施例三:
[0075]圖3示出了本發(fā)明第三實(shí)施例提供的一種消息推送系統(tǒng)的結(jié)構(gòu)圖,本實(shí)施例中,分發(fā)服務(wù)器、接入服務(wù)器以及推送服務(wù)器可以集成在同一個(gè)智能終端上,也可以分別集成在獨(dú)立的智能終端上。為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。
[0076]其中,所述消息推送系統(tǒng)5包括分發(fā)服務(wù)器51、接入服務(wù)器52以及推送服務(wù)器53。
[0077]所述分發(fā)服務(wù)器51與所述接入服務(wù)器52連接,用于定時(shí)從所述接入服務(wù)器52獲取所有IP地址的終端接入負(fù)載量;所述分發(fā)服務(wù)器51與終端54連接,用于在接收終端54的http請(qǐng)求后,將終端54接入負(fù)載量最少的IP地址發(fā)送給所述終端54。
[0078]所述接入服務(wù)器52分別與所述終端54和所述推送服務(wù)器53連接,用于接收所述終端54通過(guò)所述終端接入負(fù)載量最少的IP地址和端口發(fā)送的TCP長(zhǎng)連接建立請(qǐng)求,并與所述終端54建立TCP長(zhǎng)連接;以及用于接收推送服務(wù)器53發(fā)送的推送命令和推送內(nèi)容;所述推送命令攜帶了需推送消息的終端的唯一標(biāo)識(shí);所述接入服務(wù)器52還用于在所述需推送消息的終端的唯一標(biāo)識(shí)對(duì)應(yīng)的終端54網(wǎng)絡(luò)在線時(shí),通過(guò)與所述終端54建立的TCP長(zhǎng)連接將所述推送內(nèi)容發(fā)送至所述終端54。
[0079]圖4為本發(fā)明第五實(shí)施提供的另一種消息推送系統(tǒng)的結(jié)構(gòu)圖圖。在圖4中,接入服務(wù)器包括多個(gè)主IP地址每個(gè)IP地址對(duì)應(yīng)多個(gè)虛擬IP地址,當(dāng)然,在實(shí)際情況中,主IP地址也可以只有I個(gè),此處不作限定,虛擬IP地址同理推斷。
[0080]本實(shí)施例中,分發(fā)服務(wù)器51包括:請(qǐng)求偵聽(tīng)單元、接入負(fù)載量統(tǒng)計(jì)單元、地址發(fā)送單元、地址異常判斷單元、接入負(fù)載量選擇統(tǒng)計(jì)單元、接入負(fù)載量判斷單元。接入服務(wù)器52包括消息接收單元31、消息推送單元32、連接建立單元。分發(fā)服務(wù)器51和接入服務(wù)器52的結(jié)構(gòu)及功能詳見(jiàn)實(shí)施例二的描述,此處不再贅述。推送服務(wù)器53主要用于建立推送任務(wù),比如定時(shí)向接入服務(wù)器52分發(fā)推送任務(wù),以使該接入服務(wù)器52將推送內(nèi)容推送給終端。
[0081]本發(fā)明實(shí)施例中,通過(guò)在接入服務(wù)器配置虛擬IP地址及采用多線程處理不同的事件,提高了接入服務(wù)器的終端接入負(fù)載量,以及提高了推送內(nèi)容的推送速度。
[0082]本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以在存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如R0M/RAM、磁盤(pán)、光盤(pán)等。
[0083]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種消息推送方法,其特征在于,所述方法包括下述步驟: 接收推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容;所述推送命令攜帶了需推送消息的終端的唯一標(biāo)識(shí); 在所述需推送消息的終端的唯一標(biāo)識(shí)對(duì)應(yīng)的終端網(wǎng)絡(luò)在線時(shí),通過(guò)與所述終端建立的TCP長(zhǎng)連接將所述推送內(nèi)容發(fā)送至所述終端。
2.如權(quán)利要求1所述的方法,其特征在于,在所述接收推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容的步驟之前,包括下述步驟: 分發(fā)服務(wù)器偵聽(tīng)終端連接請(qǐng)求,將終端接入負(fù)載量最小的接入服務(wù)器IP地址和端口反饋給終端,所述IP地址包括主IP地址和虛擬IP地址,所述主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址; 接入服務(wù)器偵聽(tīng)到終端通過(guò)獲取的IP地址和端口發(fā)送的TCP長(zhǎng)連接建立請(qǐng)求時(shí),接收所述TCP長(zhǎng)連接建立請(qǐng)求,以與所述終端建立TCP長(zhǎng)連接。
3.如權(quán)利要求2所述的方法,其特征在于,所述分發(fā)服務(wù)器偵聽(tīng)終端連接請(qǐng)求,將終端接入負(fù)載量最小的接入服務(wù)器IP地址和端口反饋給終端,所述IP地址包括主IP地址和虛擬IP地址,所述主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址步驟包括下述步驟: 接收到終端發(fā)送的http請(qǐng)求后,查找終端接入負(fù)載量最小的接入服務(wù)器配置的IP地址,所述IP地址包括所述接入服務(wù)器配置的主IP地址和虛擬IP地址,所述主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址; 將查找到的終端接入負(fù)載量最少的IP地址以及所述終端接入負(fù)載量最少的IP地址的端口發(fā)送給所述終端。
4.如權(quán)利要求3所述的方法,其特征在于,在所述查找終端接入負(fù)載量最小的接入服務(wù)器配置的IP地址的步驟之前,包括下述步驟: 判斷接入服務(wù)器配置的主IP地址是否被標(biāo)識(shí)為異常; 在所述接入服務(wù)器配置的主IP地址沒(méi)有被標(biāo)識(shí)為異常時(shí),統(tǒng)計(jì)所述主IP地址的終端接入負(fù)載量,以及所述主IP地址對(duì)應(yīng)的所有虛擬IP地址的終端接入負(fù)載量。
5.如權(quán)利要求3所述的方法,其特征在于,在所述統(tǒng)計(jì)所述主IP地址的終端接入負(fù)載量,以及所述主IP地址對(duì)應(yīng)的所有虛擬IP地址的終端接入負(fù)載量的步驟之后,包括下述步驟: 判斷接入服務(wù)器配置的所有IP地址的終端接入負(fù)載量是否都超過(guò)預(yù)設(shè)的接入負(fù)載最大值,并在所述接入服務(wù)器配置的所有IP地址的終端接入負(fù)載量都超過(guò)預(yù)設(shè)的接入負(fù)載最大值時(shí),發(fā)送反饋信息至所述終端,以使所述終端在預(yù)設(shè)時(shí)間過(guò)后重新發(fā)送http請(qǐng)求。
6.一種消息推送裝置,其特征在于,所述裝置包括: 消息接收單元,用于接收推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容;所述推送命令攜帶了需推送消息的終端的唯一標(biāo)識(shí); 消息推送單元,用于在所述需推送消息的終端的唯一標(biāo)識(shí)對(duì)應(yīng)的終端網(wǎng)絡(luò)在線時(shí),通過(guò)與所述終端建立的TCP長(zhǎng)連接將所述推送內(nèi)容發(fā)送至所述終端。
7.如權(quán)利要求6所述的裝置,其特征在于,所述裝置包括: 請(qǐng)求偵聽(tīng)單元,用于偵聽(tīng)終端連接請(qǐng)求,將終端接入負(fù)載量最小的接入服務(wù)器IP地址和端口反饋給終端,所述IP地址包括主IP地址和虛擬IP地址,所述主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址; 連接建立單元,用于偵聽(tīng)到終端通過(guò)獲取的IP地址和端口發(fā)送的TCP長(zhǎng)連接建立請(qǐng)求時(shí),接收所述TCP長(zhǎng)連接建立請(qǐng)求,以與所述終端建立TCP長(zhǎng)連接。
8.如權(quán)利要求7所述的裝置,其特征在于,所述裝置包括: 接入負(fù)載量統(tǒng)計(jì)單元,用于接收到終端發(fā)送的http請(qǐng)求后,查找終端接入負(fù)載量最小的接入服務(wù)器配置的IP地址,所述IP地址包括所述接入服務(wù)器配置的主IP地址和虛擬IP地址,所述主IP地址對(duì)應(yīng)一個(gè)或多個(gè)虛擬IP地址; 地址發(fā)送單元,用于將查找到的終端接入負(fù)載量最少的IP地址以及所述終端接入負(fù)載量最少的IP地址的端口發(fā)送給所述終端。
9.如權(quán)利要求8所述的裝置,其特征在于,所述裝置包括: 地址異常判斷單元,用于判斷接入服務(wù)器配置的主IP地址是否被標(biāo)識(shí)為異常; 接入負(fù)載量選擇統(tǒng)計(jì)單元,用于在所述接入服務(wù)器配置的主IP地址沒(méi)有被標(biāo)識(shí)為異常時(shí),統(tǒng)計(jì)所述主IP地址的終端接入負(fù)載量,以及所述主IP地址對(duì)應(yīng)的所有虛擬IP地址的終端接入負(fù)載量。
10.如權(quán)利要求9所述的裝置,其特征在于,所述裝置包括: 接入負(fù)載量判斷單元,用于判斷接入服務(wù)器配置的所有IP地址的終端接入負(fù)載量是否都超過(guò)預(yù)設(shè)的接入負(fù)載最大值,并在所述接入服務(wù)器配置的所有IP地址的終端接入負(fù)載量都超過(guò)預(yù)設(shè)的接入負(fù)載最大值時(shí),發(fā)送反饋信息至所述終端,以使所述終端在預(yù)設(shè)時(shí)間過(guò)后重新發(fā)送http請(qǐng)求。
11.一種消息推送系統(tǒng),其特征在于,所述系統(tǒng)包括分發(fā)服務(wù)器、接入服務(wù)器以及推送服務(wù)器; 所述分發(fā)服務(wù)器與所述接入服務(wù)器連接,用于定時(shí)從所述接入服務(wù)器獲取所有IP地址的終端接入負(fù)載量;所述分發(fā)服務(wù)器與終端連接,用于在接收終端的http請(qǐng)求后,將終端接入負(fù)載量最少的IP地址發(fā)送給所述終端; 所述接入服務(wù)器分別與所述終端和所述推送服務(wù)器連接,用于接收所述終端通過(guò)所述終端接入負(fù)載量最少的IP地址和端口發(fā)送的TCP長(zhǎng)連接建立請(qǐng)求,并與所述終端建立TCP長(zhǎng)連接;以及用于接收 推送服務(wù)器發(fā)送的推送命令和推送內(nèi)容;所述推送命令攜帶了需推送消息的終端的唯一標(biāo)識(shí);所述接入服務(wù)器還用于在所述需推送消息的終端的唯一標(biāo)識(shí)對(duì)應(yīng)的終端網(wǎng)絡(luò)在線時(shí),通過(guò)與所述終端建立的TCP長(zhǎng)連接將所述推送內(nèi)容發(fā)送至所述終端。
【文檔編號(hào)】H04L29/08GK103944979SQ201410140766
【公開(kāi)日】2014年7月23日 申請(qǐng)日期:2014年4月9日 優(yōu)先權(quán)日:2014年4月9日
【發(fā)明者】吳艷春 申請(qǐng)人:Tcl集團(tuán)股份有限公司