接關(guān)系的終端。
[0234]D30、根據(jù)D29所述的裝置,其特征在于,所述接收單元,用于當(dāng)更新失敗時(shí),接收所述主服務(wù)器重復(fù)分發(fā)的所述log日志;
[0235]所述更新單元,用于根據(jù)重復(fù)接收的所述log日志再次更新自身的log日志。
[0236]E31、一種消息推送的系統(tǒng),其特征在于,所述系統(tǒng)包括:推送平臺(tái)、主服務(wù)器、從服務(wù)器以及終端;其中,所述主服務(wù)器為分布式服務(wù)器集群中通過(guò)投票選舉出的服務(wù)器,所述從服務(wù)器為集群中除所述主服務(wù)器之外的其他服務(wù)器;
[0237]所述推送平臺(tái),用于向所述主服務(wù)器發(fā)送通知消息;
[0238]所述主服務(wù)器,用于接收所述推送平臺(tái)發(fā)送的所述通知消息,將所述通知消息寫(xiě)入到log日志中,并將所述log日志分發(fā)給所述從服務(wù)器;
[0239]所述從服務(wù)器,用于接收所述主服務(wù)器分發(fā)的所述log日志,根據(jù)所述log日志更新自身的log日志,并將所述log日志中的所述通知消息下發(fā)給建立有連接關(guān)系的終端;
[0240]所述終端,用于接收建立有連接關(guān)系的從服務(wù)器下發(fā)的所述通知消息。
[0241 ]在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
[0242]可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實(shí)施例中的“第一”、“第二”等是用于區(qū)分各實(shí)施例,而并不代表各實(shí)施例的優(yōu)劣。
[0243]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
[0244]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0245]在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
[0246]類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書(shū)由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0247]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
[0248]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
[0249]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的發(fā)明名稱(chēng)(如確定網(wǎng)站內(nèi)鏈接等級(jí)的裝置)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0250]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱(chēng)。
【主權(quán)項(xiàng)】
1.一種消息推送的方法,所述方法應(yīng)用于主服務(wù)器側(cè),其特征在于,所述方法包括: 主服務(wù)器接收推送平臺(tái)發(fā)送的通知消息,所述主服務(wù)器為分布式服務(wù)器集群中通過(guò)投票選舉出的服務(wù)器; 將所述通知消息寫(xiě)入到log日志中; 將所述log日志分發(fā)給集群中的從服務(wù)器,以使得所述從服務(wù)器更新自身的log日志并將所述通知消息下發(fā)給建立有連接關(guān)系的終端,所述從服務(wù)器為集群中除所述主服務(wù)器之外的其他服務(wù)器。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述接收推送平臺(tái)發(fā)送的通知消息之前,所述方法進(jìn)一步包括: 在一個(gè)投票周期內(nèi)為自身進(jìn)行投票;并且, 向集群中的其他服務(wù)器發(fā)送投票請(qǐng)求,以獲得所述其他服務(wù)器的投票; 當(dāng)在所述投票周期內(nèi)最先獲得最多票數(shù)時(shí),確定成為所述主服務(wù)器。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,每個(gè)投票周期對(duì)應(yīng)一個(gè)周期數(shù),所述周期數(shù)唯一并且隨時(shí)間推移單調(diào)遞增,每個(gè)服務(wù)器單獨(dú)維護(hù)自身的周期數(shù); 在確定成為所述主服務(wù)器之后,所述方法進(jìn)一步包括: 與所述從服務(wù)器交換周期數(shù); 若所述從服務(wù)器的周期數(shù)小于所述主服務(wù)器的周期數(shù),則使所述從服務(wù)器根據(jù)所述主服務(wù)器的周期數(shù)進(jìn)行周期數(shù)更新; 若所述從服務(wù)器的周期數(shù)大于所述主服務(wù)器的周期數(shù),則放棄主服務(wù)器地位。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,在確定成為所述主服務(wù)器之后,所述方法進(jìn)一步包括: 定期向所述從服務(wù)器發(fā)送心跳包,以便向所述從服務(wù)器通知自身的主服務(wù)器地位。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述通知消息寫(xiě)入到log日志中,包括: 在所述log日志中生成log操作記錄; 將所述通知消息作為變量寫(xiě)入到所述log操作記錄中。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述將所述log日志分發(fā)給集群中的從服務(wù)器之后,所述方法進(jìn)一步包括: 統(tǒng)計(jì)各個(gè)從服務(wù)器的更新?tīng)顟B(tài); 當(dāng)成功更新log日志的從服務(wù)器數(shù)量超過(guò)預(yù)設(shè)數(shù)量時(shí),指示成功更新log日志的從服務(wù)器向連接的終端下發(fā)所述通知消息。7.一種消息推送的方法,所述方法應(yīng)用于從服務(wù)器側(cè),其特征在于,所述方法包括: 從服務(wù)器接收主服務(wù)器分發(fā)的log日志,所述主服務(wù)器為分布式服務(wù)器集群中通過(guò)投票選舉出的服務(wù)器,所述從服務(wù)器為集群中除所述主服務(wù)器之外的其他服務(wù)器,所述log日志中記錄有推送平臺(tái)向所述主服務(wù)器發(fā)送的通知消息; 根據(jù)所述log日志更新自身的log日志; 將所述log日志中的所述通知消息下發(fā)給建立有連接關(guān)系的終端。8.一種消息推送的裝置,所述裝置位于主服務(wù)器側(cè),其特征在于,所述裝置包括: 接收單元,用于接收推送平臺(tái)發(fā)送的通知消息,所述主服務(wù)器為分布式服務(wù)器集群中通過(guò)投票選舉出的服務(wù)器; 寫(xiě)入單元,用于將所述通知消息寫(xiě)入到log日志中; 發(fā)送單元,用于將所述log日志分發(fā)給集群中的從服務(wù)器,以使得所述從服務(wù)器更新自身的log日志并將所述通知消息下發(fā)給建立有連接關(guān)系的終端,所述從服務(wù)器為集群中除所述主服務(wù)器之外的其他服務(wù)器。9.一種消息推送的裝置,所述裝置位于從服務(wù)器側(cè),其特征在于,所述裝置包括: 接收單元,用于接收主服務(wù)器分發(fā)的log日志,所述主服務(wù)器為分布式服務(wù)器集群中通過(guò)投票選舉出的服務(wù)器,所述從服務(wù)器為集群中除所述主服務(wù)器之外的其他服務(wù)器,所述log日志中記錄有推送平臺(tái)向所述主服務(wù)器發(fā)送的通知消息; 更新單元,用于根據(jù)所述log日志更新自身的log日志; 發(fā)送單元,用于將所述log日志中的所述通知消息下發(fā)給建立有連接關(guān)系的終端。10.—種消息推送的系統(tǒng),其特征在于,所述系統(tǒng)包括:推送平臺(tái)、主服務(wù)器、從服務(wù)器以及終端;其中,所述主服務(wù)器為分布式服務(wù)器集群中通過(guò)投票選舉出的服務(wù)器,所述從服務(wù)器為集群中除所述主服務(wù)器之外的其他服務(wù)器; 所述推送平臺(tái),用于向所述主服務(wù)器發(fā)送通知消息; 所述主服務(wù)器,用于接收所述推送平臺(tái)發(fā)送的所述通知消息,將所述通知消息寫(xiě)入到log日志中,并將所述log日志分發(fā)給所述從服務(wù)器; 所述從服務(wù)器,用于接收所述主服務(wù)器分發(fā)的所述log日志,根據(jù)所述log日志更新自身的log日志,并將所述log日志中的所述通知消息下發(fā)給建立有連接關(guān)系的終端; 所述終端,用于接收建立有連接關(guān)系的從服務(wù)器下發(fā)的所述通知消息。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種消息推送的方法、裝置及系統(tǒng),涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,為解決分布式服務(wù)器集群環(huán)境中推送平臺(tái)負(fù)荷壓力較大的問(wèn)題而發(fā)明。本發(fā)明的方法包括:主服務(wù)器接收推送平臺(tái)發(fā)送的通知消息,將通知消息寫(xiě)入到log日志中,并將log日志分發(fā)給從服務(wù)器;從服務(wù)器接收主服務(wù)器分發(fā)的log日志,根據(jù)log日志更新自身的log日志,并將log日志中的通知消息下發(fā)給建立有連接關(guān)系的終端;其中,主服務(wù)器為分布式服務(wù)器集群中通過(guò)投票選舉出的服務(wù)器,從服務(wù)器為集群中除主服務(wù)器之外的其他服務(wù)器。本發(fā)明能夠有效降低推送平臺(tái)的負(fù)荷壓力。
【IPC分類(lèi)】H04L29/08
【公開(kāi)號(hào)】CN105554142
【申請(qǐng)?zhí)枴緾N201510992832
【發(fā)明人】艾菲
【申請(qǐng)人】北京奇虎科技有限公司, 北京奇安信科技有限公司
【公開(kāi)日】2016年5月4日
【申請(qǐng)日】2015年12月24日