两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

消息分發(fā)方法、裝置及系統(tǒng)的制作方法

文檔序號:10552775閱讀:477來源:國知局
消息分發(fā)方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種消息分發(fā)方法、裝置及系統(tǒng)。其中,消息分發(fā)方法包括:周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息;獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息,消息隊列中每個消息分區(qū)包含一組消息;根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將至少一個消息分區(qū)分配給各個消費端進行處理。本發(fā)明實現(xiàn)了靈活、合理地為消費端分配消息分區(qū),且使得消費端能夠并行處理消息隊列中的消息;而且結(jié)合了消費端的處理能力,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,對消費端的負(fù)載進行了均衡處理,提高了消費端整體的吞吐量,實現(xiàn)了消息分區(qū)的最優(yōu)分配。
【專利說明】
消息分發(fā)方法、裝置及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種消息分發(fā)方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]目前,對于業(yè)務(wù)前端生產(chǎn)者所產(chǎn)生的消息,通常是將待處理的消息存儲于消息隊列的消息分區(qū)中,然后交由后端的消費端進行處理。在消息分區(qū)的分配方面,通常是定期地將消息隊列中的消息分區(qū)平均分配給消費端,并未考慮到消費端的性能差別以及網(wǎng)絡(luò)狀況的好壞,這樣就容易造成性能較差或者網(wǎng)絡(luò)狀況不好的消費端,其并不能及時處理掉相應(yīng)的消息,而性能好的或者網(wǎng)絡(luò)狀況好的消費端在處理完分配給其的消息后,在消息隊列還未更新的情況下,這些消費端只能等待再次分配消息分區(qū),從而導(dǎo)致消費端處理效率低,吞吐量低。

【發(fā)明內(nèi)容】

[0003]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的消息分發(fā)方法、消息分發(fā)裝置和相應(yīng)的消息分發(fā)系統(tǒng)。
[0004]根據(jù)本發(fā)明的一個方面,提供了一種消息分發(fā)方法,其包括:
[0005]周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息;
[0006]獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息,消息隊列中每個消息分區(qū)包含一組消息;
[0007]根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將至少一個消息分區(qū)分配給各個消費端進行處理。
[0008]根據(jù)本發(fā)明的另一方面,提供了一種消息分發(fā)裝置,其包括:
[0009]收集模塊,適于周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息;
[0010]第一獲取模塊,適于獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息,消息隊列中每個消息分區(qū)包含一組消息;
[0011]分發(fā)模塊,適于根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將至少一個消息分區(qū)分配給各個消費端進行處理。
[0012]根據(jù)本發(fā)明的另一方面,提供了一種消息分發(fā)系統(tǒng),包括上述消息分發(fā)裝置、第三方模塊、消息隊列和多個消費端。
[0013]根據(jù)本發(fā)明提供的方案,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,向各個消費端分配至少一個消息分區(qū),供各個消費端對接收到的至少一個消息分區(qū)進行處理,實現(xiàn)了靈活、合理地為消費端分配消息分區(qū),且使得消費端能夠并行處理消息隊列中的消息;而且結(jié)合了消費端的處理能力,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,對消費端的負(fù)載進行了均衡處理,提高了消費端整體的吞吐量,實現(xiàn)了消息分區(qū)的最優(yōu)分配。
[0014]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0015]通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0016]圖1示出了根據(jù)本發(fā)明一個實施例的消息分發(fā)方法的流程示意圖;
[0017]圖2示出了根據(jù)本發(fā)明另一個實施例的消息分發(fā)方法的流程示意圖;
[0018]圖3示出了根據(jù)本發(fā)明另一個實施例的消息分發(fā)方法的流程示意圖;
[0019]圖4示出了根據(jù)本發(fā)明一個實施例的消息分發(fā)裝置的結(jié)構(gòu)框圖;
[0020]圖5示出了根據(jù)本發(fā)明另一個實施例的消息分發(fā)裝置的結(jié)構(gòu)框圖;
[0021]圖6示出了根據(jù)本發(fā)明另一個實施例的消息分發(fā)裝置的結(jié)構(gòu)框圖;
[0022]圖7示出了根據(jù)本發(fā)明一個實施例的消息分發(fā)系統(tǒng)的結(jié)構(gòu)框圖。
【具體實施方式】
[0023]下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0024]圖1示出了根據(jù)本發(fā)明一個實施例的消息分發(fā)方法的流程示意圖。如圖1所示,該方法包括以下步驟:
[0025]步驟S100,周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息。
[0026]其中,消費端可用于對消息分區(qū)中的消息進行處理,消費端的性能信息反映了消費端對消息的處理能力,網(wǎng)絡(luò)狀況信息反映了當(dāng)前網(wǎng)絡(luò)的好壞,網(wǎng)絡(luò)的好壞影響消費端對消息的處理能力。
[0027]步驟SlOl,獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息。
[0028]其中,消息隊列用于存儲待處理的消息,且消息隊列包含多個消息分區(qū),消息被存儲至消息分區(qū)中,也就是說,消息隊列中每個消息分區(qū)包含一組消息。
[0029]此外,消息分區(qū)的相關(guān)信息可以包括:消息分區(qū)的標(biāo)識,根據(jù)該標(biāo)識可以對多個消息分區(qū)進行區(qū)分。
[0030]步驟S102,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將至少一個消息分區(qū)分配給各個消費端進行處理。
[0031]具體地,根據(jù)步驟SlOO所收集到的各個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將所獲取到的至少一個消息分區(qū)分配給各個消費端,供各個消費端對接收到的至少一個消息分區(qū)進行處理。
[0032]根據(jù)本發(fā)明上述實施例提供的方法,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,向各個消費端分配至少一個消息分區(qū),供各個消費端對接收到的至少一個消息分區(qū)進行處理,實現(xiàn)了靈活、合理地為消費端分配消息分區(qū),且使得消費端能夠并行處理消息隊列中的消息;而且結(jié)合了消費端的處理能力,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,對消費端的負(fù)載進行了均衡處理,提高了消費端整體的吞吐量,實現(xiàn)了消息分區(qū)的最優(yōu)分配。
[0033]圖2示出了根據(jù)本發(fā)明另一個實施例的消息分發(fā)方法的流程示意圖。在本實施例中,以第三方模塊主動通知消息隊列信息為例,如圖2所示,該方法包括以下步驟:
[0034]步驟S200,向各個消費端發(fā)送數(shù)據(jù)包請求,接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng)。
[0035]其中,性能信息包含:CPU占用信息、內(nèi)存占用信息、I/O占用信息、和/或數(shù)據(jù)吞吐量;消費端的性能信息反映了消費端對消息的處理能力,網(wǎng)絡(luò)狀況信息反映了當(dāng)前網(wǎng)絡(luò)的好壞,網(wǎng)絡(luò)的好壞影響消費端對消息的處理能力。
[0036]具體地,可以通過第三方模塊獲取消費端的性能信息,以及通過第三方模塊確定消費端的網(wǎng)絡(luò)狀況,這里第三方模塊可以是zooke印er組件。
[0037]第三方模塊向各個消費端發(fā)送數(shù)據(jù)包請求,該數(shù)據(jù)包請求包含了需要從各個消費端獲取的信息,例如,各個消費端的性能信息,各個消費端在接收到該數(shù)據(jù)包請求后,將包含有各自性能信息的數(shù)據(jù)包返回給第三方模塊,第三方模塊從各個消費端返回的數(shù)據(jù)包中提取出各個消費端的性能信息。
[0038]步驟S201,根據(jù)發(fā)送數(shù)據(jù)包請求和接收數(shù)據(jù)包響應(yīng)的速度或時間確定網(wǎng)絡(luò)狀況信息。
[0039]具體地,各個消費端在接收到第三方模塊發(fā)送的數(shù)據(jù)包請求后,將會向第三方模塊返回接收成功的通知,第三方模塊根據(jù)該通知可以確定數(shù)據(jù)包請求被成功接收,從而確定發(fā)送數(shù)據(jù)包請求的速度或時間;第三方模塊接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng),并確定接收數(shù)據(jù)包響應(yīng)的速度或時間,從而確定網(wǎng)絡(luò)狀況信息。
[0040]步驟S202,接收第三方模塊發(fā)送的通知以獲取至少一個消息分區(qū)的相關(guān)信息。
[0041]其中,消息分區(qū)的相關(guān)信息可以包括:消息分區(qū)的標(biāo)識,根據(jù)該標(biāo)識可以對多個消息分區(qū)進行區(qū)分。
[0042]具體地,若消息隊列中的消息分區(qū)發(fā)生變化,第三方模塊將會發(fā)送消息分區(qū)發(fā)生變化的通知,在接收到該通知后,可以獲取發(fā)生變化的至少一個消息分區(qū)的相關(guān)信息,從而能夠及時對消息分區(qū)中的消息分配給消費端進行處理,提高了消息處理效率。
[0043]步驟S203,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù)。
[0044]具體地,在步驟S200和步驟S201中確定了多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,即,確定了各個消費端的處理能力,在本步驟中將根據(jù)各個消費端的處理能力,確定出各個消費端所能夠消費的消息分區(qū)的個數(shù),即,根據(jù)各個消費端的處理能力,對負(fù)載進行了均衡處理,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,實現(xiàn)了靈活、合理地為消費端分配消息分區(qū)。
[0045]步驟S204,將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理。
[0046]具體地,將步驟S203中所確定的響應(yīng)個數(shù)的消息分區(qū)分配給各個消費端,以使各個消費端進行處理。
[0047]在本發(fā)明優(yōu)選實施例中,還可以根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的權(quán)重;依據(jù)所述權(quán)重將所述至少一個消息分區(qū)分配給各個消費端進行處理。
[0048]根據(jù)本發(fā)明上述實施例提供的方法,根據(jù)第三方模塊的通知獲取至少一個消息分區(qū)的相關(guān)信息,從而能夠及時對消息分區(qū)中的消息分配給消費端進行處理,提高了消息處理效率,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù),將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理,即,根據(jù)各個消費端的處理能力,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,且使得消費端能夠并行處理消息隊列中的消息,實現(xiàn)了靈活、合理地為消費端分配消息分區(qū),提高了消費端整體的吞吐量,實現(xiàn)了消息分區(qū)的最優(yōu)分配。
[0049]圖3示出了根據(jù)本發(fā)明另一個實施例的消息分發(fā)方法的流程示意圖。如圖3所示,該方法包括以下步驟:
[0050]步驟S300,獲取多個消費端預(yù)先在第三方模塊中注冊的IP地址。
[0051]具體地,預(yù)先將多個消費端的IP地址注冊到第三方模塊中,當(dāng)需要收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息時,需要先獲取多個消費端預(yù)先在第三方模塊中注冊的IP地址,根據(jù)該IP地址能夠精確地收集各個消費端的性能信息和網(wǎng)絡(luò)狀況信息。其中,第三方模塊可以是zookeeper組件。
[0052]步驟S301,根據(jù)IP地址向各個消費端發(fā)送數(shù)據(jù)包請求,接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng)。
[0053]根據(jù)IP地址向各個消費端發(fā)送數(shù)據(jù)包請求,該數(shù)據(jù)包請求包含了需要從各個消費端獲取的信息,例如,各個消費端的性能信息,其中,性能信息包含:CPU占用信息、內(nèi)存占用信息、I/o占用信息、和/或數(shù)據(jù)吞吐量;各個消費端在接收到該數(shù)據(jù)包請求后,將包含有各自性能信息的數(shù)據(jù)包返回,從各個消費端返回的數(shù)據(jù)包中提取出各個消費端的性能信息。
[0054]步驟S302,根據(jù)發(fā)送數(shù)據(jù)包請求和接收數(shù)據(jù)包響應(yīng)的速度或時間確定網(wǎng)絡(luò)狀況信息。
[0055]具體地,各個消費端在接收到所發(fā)送的數(shù)據(jù)包請求后,將返回接收成功的通知,根據(jù)該通知可以確定數(shù)據(jù)包請求被成功接收,從而確定發(fā)送數(shù)據(jù)包請求的速度或時間;根據(jù)接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng),并確定接收數(shù)據(jù)包響應(yīng)的速度或時間,從而確定網(wǎng)絡(luò)狀況信息。
[0056]步驟S303,通過第三方模塊提供的訂閱機制訂閱消息隊列的相關(guān)通知。
[0057]具體地,利用第三方模塊提供的訂閱機制能夠及時獲知消息隊列的消息分區(qū)是否發(fā)生變化,當(dāng)發(fā)生變化時,通過第三方模塊提供的訂閱機制則能夠訂閱到消息隊列的相關(guān)通知,例如可以訂閱到新增了哪些分區(qū),或者哪些消息分區(qū)發(fā)生了更新。
[0058]步驟S304,當(dāng)消息隊列中的至少一個消息分區(qū)發(fā)生更新時,接收第三方模塊發(fā)送的訂閱通知以獲取至少一個消息分區(qū)的相關(guān)信息。
[0059]具體地,當(dāng)消息隊列中的至少一個消息分區(qū)發(fā)生更新時,第三方模塊將會發(fā)送消息分區(qū)發(fā)生變化的通知,在接收到該通知后,可以獲取發(fā)生變化的至少一個消息分區(qū)的相關(guān)信息,從而能夠及時對消息分區(qū)中的消息分配給消費端進行處理,提高了消息處理效率。
[0060]步驟S305,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的權(quán)重。
[0061]具體地,各個消費端的能夠消費的消息分區(qū)的權(quán)重反映了各個消費端的的處理能力,和所能處理消息分區(qū)的個數(shù)。
[0062]在步驟S301和步驟S302中確定了多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,S卩,確定了各個消費端的處理能力,在本步驟中將根據(jù)各個消費端的處理能力,確定各個消費端的能夠消費的消息分區(qū)的權(quán)重,即,根據(jù)各個消費端的處理能力,對負(fù)載進行了均衡處理,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,實現(xiàn)了靈活、合理地為消費端分配消息分區(qū)。
[0063]步驟S306,依據(jù)權(quán)重將至少一個消息分區(qū)分配給各個消費端進行處理。
[0064]具體地,根據(jù)步驟S305所確定的權(quán)重將至少一個消息分區(qū)分配給各個消費端,供各個消費端進行處理。
[0065]在本發(fā)明優(yōu)選實施例中,還可以根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù);將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理。
[0066]根據(jù)本發(fā)明上述實施例提供的方法,可以獲取多個消費端預(yù)先在第三方模塊中注冊的IP地址,根據(jù)該IP地址能夠精確地收集各個消費端的性能信息和網(wǎng)絡(luò)狀況信息,通過第三方模塊提供的訂閱機制訂閱消息隊列的相關(guān)通知,從而能夠及時對消息分區(qū)中的消息分配給消費端進行處理,提高了消息處理效率,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù),將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理,即,根據(jù)各個消費端的處理能力,對負(fù)載進行了均衡處理,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,且使得消費端能夠并行處理消息隊列中的消息,實現(xiàn)了靈活、合理地為消費端分配消息分區(qū),提高了消費端整體的吞吐量,實現(xiàn)了消息分區(qū)的最優(yōu)分配。
[0067]圖4示出了根據(jù)本發(fā)明一個實施例的消息分發(fā)裝置的結(jié)構(gòu)框圖。如圖4所示,該裝置400包括:收集模塊410、第一獲取模塊420和分發(fā)模塊430。
[0068]收集模塊410,適于周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息。
[0069]第一獲取模塊420,適于獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息,消息隊列中每個消息分區(qū)包含一組消息。
[0070]分發(fā)模塊430,適于根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將至少一個消息分區(qū)分配給各個消費端進行處理。
[0071]根據(jù)本發(fā)明上述實施例提供的裝置,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,向各個消費端分配至少一個消息分區(qū),供各個消費端對接收到的至少一個消息分區(qū)進行處理,實現(xiàn)了靈活、合理地為消費端分配消息分區(qū),且使得消費端能夠并行處理消息隊列中的消息;而且結(jié)合了消費端的處理能力,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,對消費端的負(fù)載進行了均衡處理,提高了消費端整體的吞吐量,實現(xiàn)了消息分區(qū)的最優(yōu)分配。
[0072]圖5示出了根據(jù)本發(fā)明另一個實施例的消息分發(fā)裝置的結(jié)構(gòu)框圖。如圖5所示,該裝置500包括:收集模塊510、第一獲取模塊520和分發(fā)模塊530。
[0073]收集模塊510,適于周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息。
[0074]其中,性能信息包含:CPU占用信息、內(nèi)存占用信息、I/O占用信息、和/或數(shù)據(jù)吞吐量。
[0075]第一獲取模塊520,適于獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息,消息隊列中每個消息分區(qū)包含一組消息。
[0076]分發(fā)模塊530,適于根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將至少一個消息分區(qū)分配給各個消費端進行處理。
[0077]可選地,第一獲取模塊520進一步適于:接收第三方模塊發(fā)送的通知以獲取至少一個消息分區(qū)的相關(guān)信息。
[0078]可選地,收集模塊510進一步適于:接收第三方模塊發(fā)送的各個消費端的性能信息和網(wǎng)絡(luò)狀況信息;其中,其中,各個消費端的性能信息是第三方模塊向各個消費端發(fā)送數(shù)據(jù)包請求,并接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng)得到的,網(wǎng)絡(luò)狀況信息是第三方模塊根據(jù)發(fā)送數(shù)據(jù)包請求和接收數(shù)據(jù)包響應(yīng)的速度或時間確定的。
[0079]可選地,分發(fā)模塊530進一步包括:第二確定單元531和分發(fā)單元532。
[0080]第二確定單元531,適于根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù);
[0081]分發(fā)單元532,適于將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理。
[0082]根據(jù)本發(fā)明上述實施例提供的裝置,根據(jù)第三方模塊的通知獲取至少一個消息分區(qū)的相關(guān)信息,從而能夠及時對消息分區(qū)中的消息分配給消費端進行處理,提高了消息處理效率,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù),將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理,即,根據(jù)各個消費端的處理能力,對負(fù)載進行了均衡處理,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,且使得消費端能夠并行處理消息隊列中的消息,實現(xiàn)了靈活、合理地為消費端分配消息分區(qū),提高了消費端整體的吞吐量,實現(xiàn)了消息分區(qū)的最優(yōu)分配。
[0083]圖6示出了根據(jù)本發(fā)明另一個實施例的消息分發(fā)裝置的結(jié)構(gòu)框圖。如圖6所示,該裝置600包括:收集模塊610、第一獲取模塊620和分發(fā)模塊630。
[0084]收集模塊610,適于周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息。
[0085]其中,性能信息包含:CPU占用信息、內(nèi)存占用信息、I/O占用信息、和/或數(shù)據(jù)吞吐量。
[0086]第一獲取模塊620,適于獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息,消息隊列中每個消息分區(qū)包含一組消息。
[0087]分發(fā)模塊630,適于根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將至少一個消息分區(qū)分配給各個消費端進行處理。
[0088]可選地,該裝置還包括:訂閱模塊640,適于通過第三方模塊提供的訂閱機制訂閱消息隊列的相關(guān)通知。
[0089]第一獲取模塊620進一步適于:當(dāng)消息隊列中的至少一個消息分區(qū)發(fā)生更新時,接收第三方模塊發(fā)送的訂閱通知以獲取至少一個消息分區(qū)的相關(guān)信息。
[0090]可選地,該裝置還包括:第二獲取模塊650,適于獲取多個消費端預(yù)先在第三方模塊中注冊的IP地址;
[0091 ]收集模塊610進一步包括:發(fā)送單元611、接收單元612和第一確定單元613。
[0092]發(fā)送單元611,適于根據(jù)IP地址向各個消費端發(fā)送數(shù)據(jù)包請求;
[0093]接收單元612,適于接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng);
[0094]第一確定單元613,適于根據(jù)發(fā)送數(shù)據(jù)包請求和接收數(shù)據(jù)包響應(yīng)的速度或時間確定網(wǎng)絡(luò)狀況信息。
[0095]可選地,分發(fā)模塊630進一步包括:第二確定單元631和分發(fā)單元632。
[0096]第二確定單元631,適于根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的權(quán)重;
[0097]分發(fā)單元632,適于依據(jù)權(quán)重將至少一個消息分區(qū)分配給各個消費端進行處理。
[0098]根據(jù)本發(fā)明上述實施例提供的裝置,獲取多個消費端預(yù)先在第三方模塊中注冊的IP地址,根據(jù)該IP地址能夠精確地收集各個消費端的性能信息和網(wǎng)絡(luò)狀況信息,通過第三方模塊提供的訂閱機制訂閱消息隊列的相關(guān)通知,從而能夠及時對消息分區(qū)中的消息分配給消費端進行處理,提高了消息處理效率,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù),將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理,即,根據(jù)各個消費端的處理能力,對負(fù)載進行了均衡處理,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,且使得消費端能夠并行處理消息隊列中的消息,實現(xiàn)了靈活、合理地為消費端分配消息分區(qū),提高了消費端整體的吞吐量,實現(xiàn)了消息分區(qū)的最優(yōu)分配。
[0099]圖7示出了根據(jù)本發(fā)明一個實施例的消息分發(fā)系統(tǒng)的結(jié)構(gòu)框圖。如圖7所示,該系統(tǒng)700包括:消息分發(fā)裝置600、第三方模塊710、消息隊列720和多個消費端730。
[0100]根據(jù)本發(fā)明上述實施例提供的系統(tǒng),獲取多個消費端預(yù)先在第三方模塊中注冊的IP地址,根據(jù)該IP地址能夠精確地收集各個消費端的性能信息和網(wǎng)絡(luò)狀況信息,通過第三方模塊提供的訂閱機制訂閱消息隊列的相關(guān)通知,從而能夠及時對消息分區(qū)中的消息分配給消費端進行處理,提高了消息處理效率,根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù),將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理,即,根據(jù)各個消費端的處理能力,對負(fù)載進行了均衡處理,從而避免了因消費端處理能力差而導(dǎo)致消息不能被及時處理的缺陷,且使得消費端能夠并行處理消息隊列中的消息,實現(xiàn)了靈活、合理地為消費端分配消息分區(qū),提高了消費端整體的吞吐量,實現(xiàn)了消息分區(qū)的最優(yōu)分配。
[0101]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0102]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0103]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
[0104]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0105]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
[0106]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的消息分發(fā)裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0107]應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
[0108]本發(fā)明公開了:A1、一種消息分發(fā)方法,其包括:
[0109]周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息;
[0110]獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息,所述消息隊列中每個消息分區(qū)包含一組消息;
[0111]根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將所述至少一個消息分區(qū)分配給各個消費端進行處理。
[0112]A2、根據(jù)Al所述的方法,其中,所述獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息進一步包括:
[0113]接收第三方模塊發(fā)送的通知以獲取至少一個消息分區(qū)的相關(guān)信息。
[0114]A3、根據(jù)A2所述的方法,其中,所述周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息進一步包括:
[0115]向各個消費端發(fā)送數(shù)據(jù)包請求,接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng);
[0116]根據(jù)發(fā)送數(shù)據(jù)包請求和接收數(shù)據(jù)包響應(yīng)的速度或時間確定所述網(wǎng)絡(luò)狀況信息。
[0117]A4、根據(jù)Al所述的方法,其中,所述方法還包括:通過第三方模塊提供的訂閱機制訂閱消息隊列的相關(guān)通知;
[0118]所述獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息進一步包括:當(dāng)消息隊列中的至少一個消息分區(qū)發(fā)生更新時,接收所述第三方模塊發(fā)送的訂閱通知以獲取至少一個消息分區(qū)的相關(guān)信息。
[0119]A5、根據(jù)A4所述的方法,其中,在所述周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息之前,所述方法還包括:獲取多個消費端預(yù)先在第三方模塊中注冊的IP地址;
[0120]所述周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息進一步包括:
[0121]根據(jù)IP地址向各個消費端發(fā)送數(shù)據(jù)包請求,接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng);
[0122]根據(jù)發(fā)送數(shù)據(jù)包請求和接收數(shù)據(jù)包響應(yīng)的速度或時間確定所述網(wǎng)絡(luò)狀況信息。
[0123]A6、根據(jù)A1-A5任一項所述的方法,其中,所述性能信息包含:CPU占用信息、內(nèi)存占用信息、I/o占用信息、和/或數(shù)據(jù)吞吐量。
[0124]A7、根據(jù)A1-A6任一項所述的方法,其中,所述根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將所述至少一個消息分區(qū)分配給各個消費端進行處理進一步包括:
[0125]根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù);
[0126]將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理。
[0127]AS、根據(jù)A1-A6任一項所述的方法,其中,所述根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將所述至少一個消息分區(qū)分配給各個消費端進行處理進一步包括:
[0128]根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的權(quán)重;
[0129]依據(jù)所述權(quán)重將所述至少一個消息分區(qū)分配給各個消費端進行處理。
[0130]本發(fā)明還公開了:B9、一種消息分發(fā)裝置,其包括:
[0131]收集模塊,適于周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息;
[0132]第一獲取模塊,適于獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息,所述消息隊列中每個消息分區(qū)包含一組消息;
[0133]分發(fā)模塊,適于根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將所述至少一個消息分區(qū)分配給各個消費端進行處理。
[0134]Bl0、根據(jù)B9所述的裝置,其中,所述第一獲取模塊進一步適于:接收第三方模塊發(fā)送的通知以獲取至少一個消息分區(qū)的相關(guān)信息。
[0135]B11、根據(jù)BlO所述的裝置,其中,所述收集模塊進一步適于:接收第三方模塊發(fā)送的各個消費端的性能信息和網(wǎng)絡(luò)狀況信息;其中,各個消費端的性能信息是第三方模塊向各個消費端發(fā)送數(shù)據(jù)包請求,并接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng)得到的,網(wǎng)絡(luò)狀況信息是第三方模塊根據(jù)發(fā)送數(shù)據(jù)包請求和接收數(shù)據(jù)包響應(yīng)的速度或時間確定的。
[0136]B12、根據(jù)B9所述的裝置,其中,所述裝置還包括:訂閱模塊,適于通過第三方模塊提供的訂閱機制訂閱消息隊列的相關(guān)通知;
[0137]所述第一獲取模塊進一步適于:當(dāng)消息隊列中的至少一個消息分區(qū)發(fā)生更新時,接收所述第三方模塊發(fā)送的訂閱通知以獲取至少一個消息分區(qū)的相關(guān)信息。
[0138]B13、根據(jù)B12所述的裝置,其中,所述裝置還包括:第二獲取模塊,適于獲取多個消費端預(yù)先在第三方模塊中注冊的IP地址;
[0139]所述收集模塊進一步包括:
[0140]發(fā)送單元,適于根據(jù)IP地址向各個消費端發(fā)送數(shù)據(jù)包請求;
[0141]接收單元,適于接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng);
[0142]第一確定單元,適于根據(jù)發(fā)送數(shù)據(jù)包請求和接收數(shù)據(jù)包響應(yīng)的速度或時間確定所述網(wǎng)絡(luò)狀況信息。
[0143]B14、根據(jù)B9-B13任一項所述的裝置,其中,所述性能信息包含:CPU占用信息、內(nèi)存占用信息、I/o占用信息、和/或數(shù)據(jù)吞吐量。
[0144]B15、根據(jù)B9-B14任一項所述的裝置,其中,所述分發(fā)模塊進一步包括:
[0145]第二確定單元,適于根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù);
[0146]分發(fā)單元,適于將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理。
[0147]B16、根據(jù)B9-B14任一項所述的裝置,其中,所述分發(fā)模塊進一步包括:
[0148]第二確定單元,適于根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的權(quán)重;
[0149]分發(fā)單元,適于依據(jù)所述權(quán)重將所述至少一個消息分區(qū)分配給各個消費端進行處理。
[0150]本發(fā)明還公開了:C17、一種消息分發(fā)系統(tǒng),包括B9-B16任一項所述的消息分發(fā)裝置、第三方模塊、消息隊列和多個消費端。
【主權(quán)項】
1.一種消息分發(fā)方法,其包括: 周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息; 獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息,所述消息隊列中每個消息分區(qū)包含一組消息; 根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將所述至少一個消息分區(qū)分配給各個消費端進行處理。2.根據(jù)權(quán)利要求1所述的方法,其中,所述獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息進一步包括: 接收第三方模塊發(fā)送的通知以獲取至少一個消息分區(qū)的相關(guān)信息。3.根據(jù)權(quán)利要求2所述的方法,其中,所述周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息進一步包括: 向各個消費端發(fā)送數(shù)據(jù)包請求,接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng); 根據(jù)發(fā)送數(shù)據(jù)包請求和接收數(shù)據(jù)包響應(yīng)的速度或時間確定所述網(wǎng)絡(luò)狀況信息。4.根據(jù)權(quán)利要求1所述的方法,其中,所述方法還包括:通過第三方模塊提供的訂閱機制訂閱消息隊列的相關(guān)通知; 所述獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息進一步包括:當(dāng)消息隊列中的至少一個消息分區(qū)發(fā)生更新時,接收所述第三方模塊發(fā)送的訂閱通知以獲取至少一個消息分區(qū)的相關(guān)信息。5.根據(jù)權(quán)利要求4所述的方法,其中,在所述周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息之前,所述方法還包括:獲取多個消費端預(yù)先在第三方模塊中注冊的IP地址; 所述周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息進一步包括: 根據(jù)IP地址向各個消費端發(fā)送數(shù)據(jù)包請求,接收各個消費端返回的包含各自性能信息的數(shù)據(jù)包響應(yīng); 根據(jù)發(fā)送數(shù)據(jù)包請求和接收數(shù)據(jù)包響應(yīng)的速度或時間確定所述網(wǎng)絡(luò)狀況信息。6.根據(jù)權(quán)利要求1-5任一項所述的方法,其中,所述性能信息包含:CPU占用信息、內(nèi)存占用信息、I/O占用信息、和/或數(shù)據(jù)吞吐量。7.根據(jù)權(quán)利要求1-6任一項所述的方法,其中,所述根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將所述至少一個消息分區(qū)分配給各個消費端進行處理進一步包括: 根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的個數(shù); 將相應(yīng)個數(shù)的消息分區(qū)分配給各個消費端進行處理。8.根據(jù)權(quán)利要求1-6任一項所述的方法,其中,所述根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將所述至少一個消息分區(qū)分配給各個消費端進行處理進一步包括: 根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,確定各個消費端的能夠消費的消息分區(qū)的權(quán)重; 依據(jù)所述權(quán)重將所述至少一個消息分區(qū)分配給各個消費端進行處理。9.一種消息分發(fā)裝置,其包括: 收集模塊,適于周期性的收集多個消費端的性能信息和網(wǎng)絡(luò)狀況信息; 第一獲取模塊,適于獲取消息隊列中至少一個消息分區(qū)的相關(guān)信息,所述消息隊列中每個消息分區(qū)包含一組消息; 分發(fā)模塊,適于根據(jù)多個消費端的性能信息和網(wǎng)絡(luò)狀況信息,將所述至少一個消息分區(qū)分配給各個消費端進行處理。10.—種消息分發(fā)系統(tǒng),包括權(quán)利要求9所述的消息分發(fā)裝置、第三方模塊、消息隊列和多個消費端。
【文檔編號】G06F9/54GK105912412SQ201610201563
【公開日】2016年8月31日
【申請日】2016年3月31日
【發(fā)明人】歐陽力多
【申請人】北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
诸暨市| 商城县| 威宁| 乌鲁木齐县| 栾城县| 平果县| 集贤县| 随州市| 高淳县| 牙克石市| 阿拉善右旗| 和硕县| 前郭尔| 辉县市| 罗甸县| 大兴区| 镇赉县| 佛山市| 普兰店市| 衡水市| 富平县| 湘潭市| 且末县| 三穗县| 萨迦县| 永嘉县| 巫溪县| 天全县| 拜泉县| 亳州市| 汝州市| 木里| 安吉县| 湛江市| 卓资县| 河南省| 读书| 长武县| 德保县| 墨江| 上思县|