一種基于多集群的消息投遞系統(tǒng)和消息投遞方法
【技術領域】
[0001]本發(fā)明涉及消息調度領域,尤其涉及一種基于多集群的消息投遞系統(tǒng)和消息投遞方法。
【背景技術】
[0002]由于業(yè)務的增長以及市場的推廣,互聯網網站訪問用戶會有所增加,同時訪問量和并發(fā)量也會相應增多。原有單臺服務器可以滿足部分人群的訪問請求目前已遠遠無法滿足需求,網站從架構設計考慮會橫向擴展業(yè)務服務器形成服務器集群。因此在實際的生產環(huán)境一個大型網站會部署多個服務器集群,而服務器集群之間可能存在業(yè)務的通訊,集群之間通訊消息傳遞基本采用消息隊列模型。
[0003]目前消息隊列模型主要采用的是Topic模型(發(fā)布/訂閱模型)和Queue模型(點對點模型)。Queue模型意味著一個消息只會被一個應用接收,不會被多個應用所接收。Topic模型與Queue模型區(qū)別在與消息接收的時候是允許獨立接收到所有發(fā)送到Topic的消息的。
[0004]隨著數據使用的越來越全面,在實際的消息處理過程中,單條消息,特別是等待有后續(xù)流程的任務消息,往往需要多方對應處理各自的相關任務。例如對于消息服務器中的任務消息1,節(jié)點A需要對其進行a操作,節(jié)點B需要對其進行b操作。如果采用Queue模型,那么消息服務器將任務消息I分配給節(jié)點A之后,b操作無法實施;如果采用Topic模型,將所有的消息都發(fā)送到所有的節(jié)點,只是少量的消息處理,各個節(jié)點還可以拋棄不與自己相關的任務消息,但是對于大量的消息,對于各個節(jié)點將會產生龐大的數據壓力,并且造成這種數據壓力的任務消息中有很大一部分可能都不是與自身相關的,整個信息處理的效度和速度都降低。
【發(fā)明內容】
[0005]本發(fā)明的主要目的在于提出一種基于多集群的消息投遞系統(tǒng)和消息投遞方法,旨在將大批量的消息沒有冗余且沒有遺漏地發(fā)送到對應的節(jié)點對信息進行處理,提高信息處理的效度和速度。
[0006]為實現上述目的,本發(fā)明提出一種基于多集群的消息投遞系統(tǒng),包括:
[0007]消息服務器和至少兩個服務器集群,每個所述服務器集群包括至少兩個服務器節(jié)占.V,
[0008]所述消息服務器包括:
[0009]消息匯集單元,用于接收待處理的任務消息;
[0010]消息發(fā)送單元,用于將所述任務消息根據消息類型發(fā)送到對應的至少一個服務器集群;
[0011]所述服務器集群包括:
[0012]消息投遞單元,用于將所述任務消息投遞到一個服務器節(jié)點進行處理。
[0013]其中,所述消息服務器,還包括:
[0014]隊列生成單元,用于接收待處理的任務消息后,如果所述任務消息有明確的服務器節(jié)點,將該任務消息更新到消息隊列;
[0015]所述消息投遞單元,具體用于:
[0016]將所述任務消息投遞到所述消息隊列指定的服務器節(jié)點;或
[0017]根據所述服務器節(jié)點的任務請求投遞任務消息。
[0018]其中,所述服務器集群,還包括:
[0019]消息訂閱單元,用于向所述消息服務器發(fā)送用于訂閱所述任務消息的訂閱信息;
[0020]所述消息服務器還包括:
[0021]訂閱記錄單元,用于記錄所述訂閱信息。
[0022]其中,所述服務器集群,還包括:
[0023]節(jié)點更新單元,用于新增服務器節(jié)點,在新增的服務器節(jié)點的配置文件中配置所在服務器集群的集群ID。
[0024]其中,所述服務器集群,還包括:
[0025]第一確認單元,用于在接收到所述任務消息后向所述消息服務器發(fā)送確認消息;
[0026]所述服務器節(jié)點,包括:
[0027]第二確認單元,用于在接收到所述任務消息后向為其投遞任務消息的消息調度節(jié)點發(fā)送確認消息。
[0028]另一方面采用一種基于多集群的消息投遞方法,包括:
[0029]消息服務器接收待處理的任務消息;
[0030]消息服務器將所述任務消息根據消息類型發(fā)送到對應的至少一個服務器集群;
[0031]所述服務器集群將所述任務消息投遞到一個服務器節(jié)點進行處理。
[0032]其中,所述消息服務器接收待處理的任務消息之后,還包括:
[0033]如果所述任務消息有明確的服務器節(jié)點,將該任務消息更新到消息隊列;
[0034]所述服務器集群將所述任務消息投遞到單個服務器節(jié)點進行處理,具體為:
[0035]所述服務器集群將所述任務消息投遞到所述消息隊列指定的服務器節(jié)點;或
[0036]根據所述服務器節(jié)點的任務請求投遞任務消息。
[0037]其中,所述消息投遞方法,還包括:
[0038]所述服務器集群向所述消息服務器發(fā)送用于訂閱所述任務消息的訂閱信息,所述消息服務器記錄所述訂閱信息。
[0039]其中,所述消息投遞方法,還包括:
[0040]新增服務器節(jié)點,在新增的服務器節(jié)點的配置文件中配置所在服務器集群的集群ID0
[0041]其中,所述消息服務器將所述任務消息根據消息類型發(fā)送到對應的至少一個服務器集群之后,還包括:
[0042]所述服務器集群在接收到所述任務消息后向所述消息服務器發(fā)送確認消息;
[0043]所述服務器集群將所述任務消息投遞到一個服務器節(jié)點進行處理之后,還包括:
[0044]所述服務器節(jié)點在接收到所述任務消息后向為其投遞任務消息的消息調度節(jié)點發(fā)送確認消息。
[0045]本發(fā)明所提出的基于多集群的消息投遞系統(tǒng)和消息投遞方法,通過消息服務器匯集所有待處理的任務消息,將任務消息根據各服務器集群的訂閱進行發(fā)送,再由服務器集群點對點投遞到對應的服務器節(jié)點,實現了將大批量的消息沒有冗余且沒有遺漏地發(fā)送到對應的節(jié)點對信息進行處理,提高信息處理的效度和速度。
【附圖說明】
[0046]圖1為實現本發(fā)明各個實施例的移動終端的硬件結構示意圖;
[0047]圖2為如圖1所示的移動終端的無線通信系統(tǒng)示意圖;
[0048]圖3A為本發(fā)明的一種基于多集群的消息投遞方法的第一實施例的方法流程圖;
[0049]圖3B為Queue模型的消息投遞的過程示意圖;
[0050]圖3C為Topic模型的消息投遞的過程示意圖;
[0051]圖3D為本發(fā)明的一種基于多集群的消息投遞方法的第一實施例中消息投遞的過程圖;
[0052]圖4為本發(fā)明的一種基于多集群的消息投遞方法的第二實施例的方法流程圖;
[0053]圖5為本發(fā)明的一種基于多集群的消息投遞系統(tǒng)的第一實施例的結構方框圖;
[0054]圖6為本發(fā)明的一種基于多集群的消息投遞系統(tǒng)的第二實施例的結構方框圖。
[0055]本發(fā)明目的的實現、功能特點及優(yōu)點將結合實施例,參照附圖做進一步說明。
【具體實施方式】
[0056]應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0057]現在將參考附圖描述實現本發(fā)明各個實施例的移動終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,〃模塊〃與〃部件〃可以混合地使用。
[0058]移動終端可以以各種形式來實施。例如,本發(fā)明中描述的終端可以包括諸如移動電話、智能電話、筆記本電腦、數字廣播接收器、PDA(個人數字助理)、PAD(平板電腦)、PMP (便攜式多媒體播放器)、導航裝置等等的移動終端以及諸如數字TV、臺式計算機等等的固定終端。下面,假設終端是移動終端。然而,本領域技術人員將理解的是,除了特別用于移動目的的元件之外,根據本發(fā)明的實施方式的構造也能夠應用于固定類型的終端。
[0059]圖1為實現本發(fā)明各個實施例的移動終端的硬件結構示意。
[0060]移動終端100可以包括無線通信單元110、A/V (音頻/視頻)輸入單元120、用戶輸入單元130、感測單元140、輸出單元150、存儲器160、接口單元170、控制器180和電源單元190等等。圖1示出了具有各種組件的