国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種降低消息中間件網(wǎng)絡(luò)負載的消息傳遞方法

      文檔序號:7749868閱讀:256來源:國知局
      專利名稱:一種降低消息中間件網(wǎng)絡(luò)負載的消息傳遞方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種優(yōu)化網(wǎng)絡(luò)性能的消息傳遞方法,尤其是涉及一種基于 XML(Extensible Markup Language,可擴展標記語言)相似性原理的可降低消息中間件網(wǎng) 絡(luò)負載的消息傳遞方法。
      背景技術(shù)
      消息中間件(MOM,Message Oriented Middleware)是一種提供松散耦合的靈活方 式來集成應用程序的機制。它基于消息隊列的存儲_轉(zhuǎn)發(fā)機制,并提供特有的異步傳輸機 制,能夠基于消息傳輸和異步事務處理實現(xiàn)應用整合與數(shù)據(jù)交換。消息中間件有兩種消息傳遞模式點對點模式和發(fā)布/訂閱模式。點對點模式用 于消息生產(chǎn)者和消息消費者之間點到點的通信,消息生產(chǎn)者將消息發(fā)送到由某個名字標識 的特定的消息消費者。發(fā)布/訂閱模式中定義了內(nèi)容節(jié)點,消息發(fā)布者可以向內(nèi)容結(jié)點發(fā) 布消息,消息訂閱者可以向內(nèi)容結(jié)點訂閱消息,而在發(fā)布/訂閱模式中這些內(nèi)容節(jié)點被稱 為主題,主題使得消息發(fā)布者和消息訂閱者保持互相獨立,兩者不需要接觸即可保證消息 的傳送。目前,大多數(shù)消息中間件均支持多種數(shù)據(jù)格式消息的傳輸,如字節(jié)流、輸入輸出 流、Map鍵值以及XML文本等。在這些數(shù)據(jù)格式之中,由于XML文本具有開放性、簡單性以 及互操作性等優(yōu)點,因此XML文本為MOM消息傳輸中最主要的數(shù)據(jù)格式。然而,XML文本是 一種基于文本的數(shù)據(jù),大量XML文本數(shù)據(jù)格式的消息將導致嚴重的網(wǎng)絡(luò)負載,降低了傳輸 效率。隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,物聯(lián)網(wǎng)產(chǎn)業(yè)鏈被重新提出,移動互聯(lián)網(wǎng)技術(shù)成為了 物聯(lián)網(wǎng)發(fā)展的基礎(chǔ)條件。消息中間件的部署也從傳統(tǒng)的互聯(lián)網(wǎng)延伸到了移動設(shè)備上。作為 移動互聯(lián)網(wǎng)上網(wǎng)絡(luò)傳輸?shù)男阅芷款i,網(wǎng)絡(luò)帶寬變得尤為寶貴。探索一種降低網(wǎng)絡(luò)負載的消 息傳遞方法成為了必要。針對XML文本數(shù)據(jù)格式的消息傳輸效率低下的問題,目前相關(guān)研究人員提出了多 種方法來優(yōu)化網(wǎng)絡(luò)性能??傮w來說,目前的多種優(yōu)化網(wǎng)絡(luò)性能的方法可歸納為以下幾種 (1)改變數(shù)據(jù)格式為二進制如轉(zhuǎn)化為XML文本可序列化對象、用Gzip等壓縮算法進行二 進制壓縮和采用Map鍵值對等;(2)消息隊列的緩存通過結(jié)合新接收到的消息和緩存在消 息隊列中的消息,來產(chǎn)生完整的消息,其中新接收的消息記錄著與上一條消息的不同點,因 而可以減少網(wǎng)絡(luò)流量。上述兩種網(wǎng)絡(luò)性能的優(yōu)化方法有效地減少了消息中間件消息傳輸過程中的網(wǎng)絡(luò) 流量,但仍然存在一些缺點,具體如下上述第(1)種方法通過采用壓縮等技術(shù)來減小用于 傳輸?shù)南⒌臄?shù)據(jù)大小,但該方法并沒有改變原消息(壓縮之前)的數(shù)據(jù)大小,當網(wǎng)絡(luò)中含 有大量相似的消息時,該方法的效果十分有限;上述第(2)種方法主要強調(diào)優(yōu)化單個消息 生產(chǎn)者與消息消費者之間點對點的傳輸,只考慮了同一消息消費者的一條消息與上一條消 息的相似性,并沒有考慮同一消息生產(chǎn)者發(fā)給多個消息消費者的消息也具有相似性。

      發(fā)明內(nèi)容
      本發(fā)明所要解決的技術(shù)問題是提供一種能夠有效降低中間件的網(wǎng)絡(luò)負載,降低帶 寬耗損的消息傳遞方法。本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為一種降低消息中間件網(wǎng)絡(luò)負載的 消息傳遞方法,包括以下步驟①組建一個基于XML文本數(shù)據(jù)格式消息傳遞的消息中間件,該消息中間件包括至 少兩個消息隊列服務器,將每個消息隊列服務器作為一個節(jié)點,在每個節(jié)點中設(shè)置具有能 夠根據(jù)目標節(jié)點的地址決定下一跳節(jié)點的地址且支持消息拆包和封包功能的應用層路由 模式;②在每個節(jié)點中設(shè)置一個用于計算消息收集時間的第一計時模塊和一個用于計 算消息等待時間的第二計時模塊,在第一計時模塊中設(shè)置一個最長原始消息收集時間,在 第二計時模塊中設(shè)置一個最長原始消息等待時間,每個節(jié)點接收消息生產(chǎn)者或者上一個節(jié) 點發(fā)出的多條原始消息,當消息收集時間大于最長原始消息收集時間時,認為原始消息已 經(jīng)被收集了足夠長的時間,節(jié)點完成一次消息收集,或當消息等待時間大于最長原始消息 等待時間時,認為原始消息等待超時,節(jié)點完成一次消息收集;在此,假設(shè)消息生產(chǎn)者具有 一個或多個功能,消息生產(chǎn)者的每個功能具有一個消息模板,對于消息生產(chǎn)者的同一個功 能發(fā)出的多條原始消息結(jié)構(gòu)基本相同;③定義當前完成一次消息收集的節(jié)點為當前節(jié)點;④計算當前節(jié)點中所有原始消息的結(jié)構(gòu)相似度,并根據(jù)結(jié)構(gòu)相似度對所有原始消 息進行一次分類,得到多個同類原始消息集;⑤當前節(jié)點根據(jù)每個同類原始消息集中各個原始消息的下一跳節(jié)點的地址,對每 個同類原始消息集中的所有原始消息進行二次分類,得到多個同類原始消息子集,每個同 類原始消息子集中的各條原始消息具有共同的下一跳節(jié)點的地址;⑥定義當前正在處理的同類原始消息子集為當前同類原始消息子集,提取當前同 類原始消息子集中所有原始消息的相同部分內(nèi)容,并在所有原始消息的相異部分內(nèi)容中標 上各個原始消息各自的目標節(jié)點的地址,將當前同類原始消息子集中的所有原始消息的相 同部分內(nèi)容與相異部分內(nèi)容進行差分編碼,并封包成一條已編碼消息,然后當前節(jié)點根據(jù) 共同的下一跳節(jié)點的地址,將已編碼消息發(fā)送給對應的下一跳節(jié)點;⑦將下一個待處理的同類原始消息子集作為當前同類原始消息子集,重復執(zhí)行步 驟⑥的過程,直至所有同類原始消息子集處理完畢;⑧下一跳節(jié)點接收已編碼消息,將該下一跳節(jié)點作為當前節(jié)點,該當前節(jié)點對已 編碼消息進行拆包解析,得到多條原始消息;⑨定義解析出的多條原始消息中當前正在處理的原始消息為當前原始消息,判斷 當前原始消息的目標節(jié)點的地址是否為當前節(jié)點,如果是,則當前節(jié)點將當前原始消息發(fā) 送給當前節(jié)點對應的消息消費者,并繼續(xù)執(zhí)行,否則,對當前原始消息不進行處理;⑩將解析出的多條原始消息中下一條待處理的原始消息作為當前原始消息,并返 回執(zhí)行步驟⑨,直至解析出的多條原始消息全部處理完畢;◎?qū)τ诋斍肮?jié)點解析出的多條原始消息中未處理的所有原始消息,重復執(zhí)行步驟④至⑩,以完成消息生產(chǎn)者發(fā)出的所有原始消息到達消息消費者。所述的步驟②中消息收集時間為第一計時模塊從節(jié)點完成一次消息收集以后開 始計時,節(jié)點完成下一次消息收集后第一計時模塊重新開始計時,該過程中第一計時模塊 所計的時間為消息收集時間;消息等待時間為第二計時模塊從上一條原始消息到達節(jié)點 后開始計時,在下一條原始消息到達節(jié)點后第二計時模塊重新開始計時,該過程中第二計 時模塊所計的時間為消息等待時間。所述的步驟④的具體過程為④-1、將當前節(jié)點中的每條原始消息看作一棵具有唯一根結(jié)點且具有若干個葉子 結(jié)點的樹,獲取當前節(jié)點收集到的所有原始消息各自具有的各個葉子結(jié)點的結(jié)點路徑;④_2、計算當前節(jié)點中的任意兩條原始消息的結(jié)構(gòu)相似度,記為
      Simstru(Messagel, Message2),Sim她(Message!,Message2) =,其中,Messagel
      表示其中一條原始消息,Message〗表示另一條原始消息,N1表示其中一條原始消息 Messagel中具有的所有葉子結(jié)點的結(jié)點路徑的總個數(shù),N2表示另一條原始消息Messagd 中具有的所有葉子結(jié)點的結(jié)點路徑的總個數(shù),MaxO為取最大值函數(shù),N-表示其中一條原 始消息Messagel和另一條原始消息Message2共有的結(jié)點路徑的個數(shù),Simstru(Messagel, Message2) e
      ;④_3、判斷任意兩條原始消息的結(jié)構(gòu)相似度Simsteu(Messagel,Message2)是否大 于設(shè)定的相似度閾值,如果是,則認為這兩條原始消息來自消息生產(chǎn)者的同一個功能,將這 兩條原始消息分入同一個同類原始消息集中。所述的步驟④-1中結(jié)點路徑為從樹根開始至各個葉子結(jié)點為每個結(jié)點標上XML 標記,從樹根到葉子結(jié)點的所有XML標記構(gòu)成的序列為該葉子結(jié)點的結(jié)點路徑。所述的步驟④-3中設(shè)定的相似度閾值的取值范圍為(0,1]。所述的步驟⑥中已編碼消息主要由消息頭和消息體兩部分組成,消息頭包括各個 原始消息的源地址,消息體包括相同部分內(nèi)容和相異部分內(nèi)容,相異部分內(nèi)容中附帶有各 個原始消息的目標地址。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于通過合理地利用XML文本數(shù)據(jù)格式的消息的 結(jié)構(gòu)相似性,及巧妙地使用差分編碼,有效地降低了消息中間件的網(wǎng)絡(luò)負載,具體優(yōu)點體現(xiàn) 如下1)、本發(fā)明方法區(qū)別于現(xiàn)有的改變消息數(shù)據(jù)格式形式的壓縮方法,本發(fā)明方法提 出了采用差分編碼對原始消息進行編碼,這樣可將網(wǎng)絡(luò)上結(jié)構(gòu)相似且具有共同的下一跳節(jié) 點的地址的原始消息的相同部分內(nèi)容的冗余數(shù)據(jù)去除,從而可大大地降低帶寬耗損。2)、利用消息生產(chǎn)者發(fā)出的原始消息具有相似性的這一特點,對XML文本數(shù)據(jù)格 式的消息進行相似度比較和歸類,提升差分編碼的有效性。3)、本發(fā)明與現(xiàn)有的消息隊列緩存的方法相比,本發(fā)明方法不局限于考慮點對點 數(shù)據(jù)傳輸?shù)膬?yōu)化,充分考慮了多個消息消費者將接收到的原始消息之間也存在相似性,從 而可有效降低中間件的網(wǎng)絡(luò)負載。4)、本發(fā)明方法中對消息的傳輸方式進行了改進,借鑒了類似于組播原理的傳輸 方式,如當一條消息傳遞給多個目標節(jié)點時,具有相同下一跳地址的消息將共用一條已編碼消息進行傳遞。


      圖1為消息中間件的結(jié)構(gòu)示意圖;圖2為消息收集時間和消息等待時間的關(guān)系示意圖;圖3a為一個原始消息示例;圖3b為另一個原始消息示例;圖4為差分編碼的簡要過程示意圖;圖5為已編碼消息的結(jié)構(gòu)示意圖。
      具體實施例方式以下結(jié)合附圖實施例對本發(fā)明作進一步詳細描述。本發(fā)明提出的降低消息中間件網(wǎng)絡(luò)負載的消息傳遞方法,涉及多個消息隊列服務 器(節(jié)點),每個消息隊列服務器(節(jié)點)擁有應用層路由模式,該應用層路由模式可以支 持消息的拆包和封包,在本方法中,消息生產(chǎn)者將某一時間間隔內(nèi)產(chǎn)生的原始消息交給其 對應的節(jié)點,節(jié)點中的應用層路由模式將多條原始消息根據(jù)其下一跳節(jié)點的地址進行差分 編碼并封包成為已編碼消息;下一跳節(jié)點接收到上一跳節(jié)點發(fā)來的已編碼消息,對該已編 碼消息進行拆包解析,同樣的,該下一跳節(jié)點中的應用層路由模式根據(jù)其下一跳節(jié)點的地 址進行差分編碼并封包成為已編碼消息;依據(jù)上述方式原始消息通過節(jié)點傳遞,直到到達 消息消費者。本發(fā)明方法具體包括以下步驟①組建一個基于XML文本數(shù)據(jù)格式消息傳遞的消息中間件,該消息中間件包括至 少兩個消息隊列服務器,各個消息隊列服務器之間通過網(wǎng)絡(luò)方式相互連接,將每個消息隊 列服務器作為一個節(jié)點,在每個節(jié)點中設(shè)置具有能夠根據(jù)目標節(jié)點的地址決定下一跳節(jié)點 的地址且支持消息拆包和封包功能的應用層路由模式,該應用層路由模式采用現(xiàn)有技術(shù), 常見的路由模式的核心為OSPF(Open Shortest Path First,開放式最短路徑優(yōu)先)路由協(xié) 議,OSPF核心使用的是Dijkstra算法。該消息中間件的結(jié)構(gòu)如圖1所示,圖1所示的消息中間件包括7個消息隊列服務 器,圖1中的客戶端表示消息生產(chǎn)者或消息消費者。②在每個節(jié)點中設(shè)置一個用于計算消息收集時間的第一計時模塊和一個用于計 算消息等待時間的第二計時模塊,在第一計時模塊中設(shè)置一個最長原始消息收集時間,在 第二計時模塊中設(shè)置一個最長原始消息等待時間,每個節(jié)點接收消息生產(chǎn)者或者上一個節(jié) 點發(fā)出的多條XML文本數(shù)據(jù)格式的原始消息,當消息收集時間大于最長原始消息收集時間 時,認為原始消息已經(jīng)被收集了足夠長的時間,節(jié)點完成一次消息收集,或當消息等待時間 大于最長原始消息等待時間時,認為原始消息等待超時,節(jié)點完成一次消息收集。在此,假 設(shè)每個消息生產(chǎn)者具有一個或多個相對固定的功能,對于消息生產(chǎn)者的同一個功能發(fā)出的 多條原始消息基本相同,即同一功能發(fā)出的多條原始消息具有相似性。在此具體實施例中,消息收集時間為第一計時模塊從節(jié)點完成一次消息收集以 后開始計時,節(jié)點完成下一次消息收集后第一計時模塊重新開始計時,該過程中第一計時 模塊所計的時間為消息收集時間;消息等待時間為第二計時模塊從上一條原始消息到達節(jié)點后開始計時,在下一條原始消息到達節(jié)點后第二計時模塊重新開始計時,該過程中第 二計時模塊所計的時間為消息等待時間。圖2給出了消息收集時間和消息等待時間的關(guān)系 示意圖,圖2中Trall表示消息收集時間,Twait表示消息等待時間。假設(shè)最長原始消息收集時 間為20秒,最長原始消息等待時間為5秒,節(jié)點將等待并收集一段時間,當一條原始消息的 消息等待時間超過5秒時,將完成一次消息收集;當消息收集時間超過20秒時,也將完成一 次消息收集。③定義當前完成一次消息收集的節(jié)點為當前節(jié)點。④計算當前節(jié)點中所有原始消息的結(jié)構(gòu)相似度,并根據(jù)結(jié)構(gòu)相似度對所有原始消 息進行一次分類,得到多個同類原始消息集。具體過程為④-1、將當前節(jié)點中的每條原始消息看作一棵具有唯一根結(jié)點且具有若干個葉子 結(jié)點的樹,獲取當前節(jié)點收集到的所有原始消息各自具有的各個葉子結(jié)點的結(jié)點路徑。④_2、計算當前節(jié)點中的任意兩條原始消息的結(jié)構(gòu)相似度,記為
      JV
      Simstru(Messagel,Message2),Simstru (Messagel,Message!)=胞(二 ^ ) ’其中,Messagel
      表示其中一條原始消息,Message〗表示另一條原始消息,N1表示其中一條原始消息 Messagel中具有的所有葉子結(jié)點的結(jié)點路徑的總個數(shù),N2表示另一條原始消息Messagd 中具有的所有葉子結(jié)點的結(jié)點路徑的總個數(shù),MaxO為取最大值函數(shù),N-表示其中一條原 始消息Messagel和另一條原始消息Message2共有的結(jié)點路徑的個數(shù),Simstru(Messagel, Message2) e
      0④-3、判斷任意兩條原始消息的結(jié)構(gòu)相似度Simsteu(Messagel,Message2)是否大 于設(shè)定的相似度閾值,如果是,則認為這兩條原始消息來自消息生產(chǎn)者的同一個功能,將這 兩條原始消息分入同一個同類原始消息集中。一般而言,消息生產(chǎn)者擁有相對固定的功能,為生成XML文本數(shù)據(jù)格式的消 息,每一個功能都存在一個相對應的消息模板,相同消息模板生成的XML文本數(shù)據(jù)格 式的消息具有較高的相似性。如圖3a與圖3b為同一消息模板生成的兩條原始消 息。對原始消息進行歸類時,可以對某一節(jié)點接收到的任意兩條原始消息進行結(jié)構(gòu)相 似度比較。圖3 a所示的原始消息a共有9個結(jié)點路徑,圖3 b所示的原始消息b共 有8個結(jié)點路徑,原始消息a和原始消息b兩者共有的結(jié)點路徑個數(shù)為7個,根據(jù)公式
      N
      ^(MewflgeLMmflg^) = ^^^,可以計算得到兩條原始消息的結(jié)構(gòu)相似
      度為0. 78。假定相似度閾值為0. 6,則該兩條原始消息結(jié)構(gòu)相似度大于設(shè)定的相似度閾值, 可以將該兩條原始消息歸為一類,屬于同一類別的原始消息才適合被差分編碼并封包。在此具體實施例中,結(jié)點路徑為從樹根開始至各個葉子結(jié)點為每個結(jié)點標上 XML標記,從樹根到葉子結(jié)點的所有XML標記構(gòu)成的序列為該葉子結(jié)點的結(jié)點路徑。在此具體實施例中,設(shè)定的相似度閾值的取值范圍為(0,1]。⑤當前節(jié)點根據(jù)每個同類原始消息集中各個原始消息的下一跳節(jié)點的地址,對每 個同類原始消息集中的所有原始消息進行二次分類,得到多個同類原始消息子集,每個同 類原始消息子集中的各條原始消息具有共同的下一跳節(jié)點的地址。⑥定義當前正在處理的同類原始消息子集為當前同類原始消息子集,提取當前同類原始消息子集中所有原始消息的相同部分內(nèi)容,并在所有原始消息的相異部分內(nèi)容中標 上各個原始消息各自的目標節(jié)點的地址,將當前同類原始消息子集中的所有原始消息的相 同部分內(nèi)容與相異部分內(nèi)容進行差分編碼,并封包成一條已編碼消息,然后當前節(jié)點根據(jù) 共同的下一跳節(jié)點的地址,將已編碼消息發(fā)送給對應的下一跳節(jié)點。步驟⑤至⑥過程如圖4所示,抽取同類原始消息子集中所有原始消息的相同部分 內(nèi)容和相異部分內(nèi)容,并將其封裝成XML文本數(shù)據(jù)格式的已編碼消息,已編碼消息的結(jié)構(gòu) 如圖5所示。在此具體實施例中,已編碼消息主要由消息頭和消息體兩部分組成,消息頭包 括各個原始消息的源地址等信息,消息體包括相同部分內(nèi)容和相異部分內(nèi)容,相異部分內(nèi) 容中附帶有各個原始消息的目標地址。⑦將下一個待處理的同類原始消息子集作為當前同類原始消息子集,重復執(zhí)行步 驟⑥的過程,直至所有同類原始消息子集處理完畢。⑧下一跳節(jié)點接收已編碼消息,將該下一跳節(jié)點作為當前節(jié)點,該當前節(jié)點對已 編碼消息進行拆包解析,通過相同部分內(nèi)容和相異部分內(nèi)容的結(jié)合可以還原得到多條原始 消息,各條原始消息中包含有各自對應的目標節(jié)點的地址。⑨定義解析出的多條原始消息中當前正在處理的原始消息為當前原始消息,判斷 當前原始消息的目標節(jié)點的地址是否為當前節(jié)點,如果是,則當前節(jié)點將當前原始消息發(fā) 送給當前節(jié)點對應的消息消費者,并繼續(xù)執(zhí)行,否則,對當前原始消息不進行處理。⑩將解析出的多條原始消息中下一條待處理的原始消息作為當前原始消息,并返 回執(zhí)行步驟⑨,直至解析出的多條原始消息全部處理完畢?!?qū)τ诋斍肮?jié)點解析出的多條原始消息中未處理的所有原始消息,重復執(zhí)行步驟 ④至⑩,以完成消息生產(chǎn)者發(fā)出的所有原始消息到達消息消費者。
      權(quán)利要求
      一種降低消息中間件網(wǎng)絡(luò)負載的消息傳遞方法,其特征在于包括以下步驟①組建一個基于XML文本數(shù)據(jù)格式消息傳遞的消息中間件,該消息中間件包括至少兩個消息隊列服務器,將每個消息隊列服務器作為一個節(jié)點,在每個節(jié)點中設(shè)置具有能夠根據(jù)目標節(jié)點的地址決定下一跳節(jié)點的地址且支持消息拆包和封包功能的應用層路由模式;②在每個節(jié)點中設(shè)置一個用于計算消息收集時間的第一計時模塊和一個用于計算消息等待時間的第二計時模塊,在第一計時模塊中設(shè)置一個最長原始消息收集時間,在第二計時模塊中設(shè)置一個最長原始消息等待時間,每個節(jié)點接收消息生產(chǎn)者或者上一個節(jié)點發(fā)出的多條原始消息,當消息收集時間大于最長原始消息收集時間時,認為原始消息已經(jīng)被收集了足夠長的時間,節(jié)點完成一次消息收集,或當消息等待時間大于最長原始消息等待時間時,認為原始消息等待超時,節(jié)點完成一次消息收集;在此,假設(shè)消息生產(chǎn)者具有一個或多個功能,消息生產(chǎn)者的每個功能具有一個消息模板,對于消息生產(chǎn)者的同一個功能發(fā)出的多條原始消息結(jié)構(gòu)基本相同;③定義當前完成一次消息收集的節(jié)點為當前節(jié)點;④計算當前節(jié)點中所有原始消息的結(jié)構(gòu)相似度,并根據(jù)結(jié)構(gòu)相似度對所有原始消息進行一次分類,得到多個同類原始消息集;⑤當前節(jié)點根據(jù)每個同類原始消息集中各個原始消息的下一跳節(jié)點的地址,對每個同類原始消息集中的所有原始消息進行二次分類,得到多個同類原始消息子集,每個同類原始消息子集中的各條原始消息具有共同的下一跳節(jié)點的地址;⑥定義當前正在處理的同類原始消息子集為當前同類原始消息子集,提取當前同類原始消息子集中所有原始消息的相同部分內(nèi)容,并在所有原始消息的相異部分內(nèi)容中標上各個原始消息各自的目標節(jié)點的地址,將當前同類原始消息子集中的所有原始消息的相同部分內(nèi)容與相異部分內(nèi)容進行差分編碼,并封包成一條已編碼消息,然后當前節(jié)點根據(jù)共同的下一跳節(jié)點的地址,將已編碼消息發(fā)送給對應的下一跳節(jié)點;⑦將下一個待處理的同類原始消息子集作為當前同類原始消息子集,重復執(zhí)行步驟⑥的過程,直至所有同類原始消息子集處理完畢;⑧下一跳節(jié)點接收已編碼消息,將該下一跳節(jié)點作為當前節(jié)點,該當前節(jié)點對已編碼消息進行拆包解析,得到多條原始消息;⑨定義解析出的多條原始消息中當前正在處理的原始消息為當前原始消息,判斷當前原始消息的目標節(jié)點的地址是否為當前節(jié)點,如果是,則當前節(jié)點將當前原始消息發(fā)送給當前節(jié)點對應的消息消費者,并繼續(xù)執(zhí)行,否則,對當前原始消息不進行處理;⑩將解析出的多條原始消息中下一條待處理的原始消息作為當前原始消息,并返回執(zhí)行步驟⑨,直至解析出的多條原始消息全部處理完畢;對于當前節(jié)點解析出的多條原始消息中未處理的所有原始消息,重復執(zhí)行步驟④至⑩,以完成消息生產(chǎn)者發(fā)出的所有原始消息到達消息消費者。FSA00000117552800021.tif
      2.根據(jù)權(quán)利要求1所述的一種降低消息中間件網(wǎng)絡(luò)負載的消息傳遞方法,其特征在于 所述的步驟②中消息收集時間為第一計時模塊從節(jié)點完成一次消息收集以后開始計時, 節(jié)點完成下一次消息收集后第一計時模塊重新開始計時,該過程中第一計時模塊所計的時 間為消息收集時間;消息等待時間為第二計時模塊從上一條原始消息到達節(jié)點后開始計時,在下一條原始消息到達節(jié)點后第二計時模塊重新開始計時,該過程中第二計時模塊所 計的時間為消息等待時間。
      3.根據(jù)權(quán)利要求1或2所述的一種降低消息中間件網(wǎng)絡(luò)負載的消息傳遞方法,其特征 在于所述的步驟④的具體過程為④-1、將當前節(jié)點中的每條原始消息看作一棵具有唯一根結(jié)點且具有若干個葉子結(jié)點 的樹,獲取當前節(jié)點收集到的所有原始消息各自具有的各個葉子結(jié)點的結(jié)點路徑;④-2、計算當前節(jié)點中的任意兩條原始消息的結(jié)構(gòu)相似度,記為Simstra(Messagel,Message2),Simstru (Message\,Message2) =N ),其中,Messagel 表示其中一條原始消息,Message〗表示另一條原始消息,N1表示其中一條原始消息Messagel中具有的所有 葉子結(jié)點的結(jié)點路徑的總個數(shù),N2表示另一條原始消息Message〗中具有的所有葉子結(jié)點的 結(jié)點路徑的總個數(shù),MaxO為取最大值函數(shù),N-表示其中一條原始消息Messagel和另一條 原始消息Message2共有的結(jié)點路徑的個數(shù),Simsteu(Messagel,Message2) e
      ;④-3、判斷任意兩條原始消息的結(jié)構(gòu)相似度Simsteu(Messagel,Message2)是否大于設(shè) 定的相似度閾值,如果是,則認為這兩條原始消息來自消息生產(chǎn)者的同一個功能,將這兩條 原始消息分入同一個同類原始消息集中。
      4.根據(jù)權(quán)利要求3所述的一種降低消息中間件網(wǎng)絡(luò)負載的消息傳遞方法,其特征在于 所述的步驟④-1中結(jié)點路徑為從樹根開始至各個葉子結(jié)點為每個結(jié)點標上XML標記,從 樹根到葉子結(jié)點的所有XML標記構(gòu)成的序列為該葉子結(jié)點的結(jié)點路徑。
      5.根據(jù)權(quán)利要求4所述的一種降低消息中間件網(wǎng)絡(luò)負載的消息傳遞方法,其特征在于 所述的步驟④-3中設(shè)定的相似度閾值的取值范圍為(0,1]。
      6.根據(jù)權(quán)利要求3所述的一種降低消息中間件網(wǎng)絡(luò)負載的消息傳遞方法,其特征在于 所述的步驟⑥中已編碼消息主要由消息頭和消息體兩部分組成,消息頭包括各個原始消息 的源地址,消息體包括相同部分內(nèi)容和相異部分內(nèi)容,相異部分內(nèi)容中附帶有各個原始消 息的目標地址。
      全文摘要
      本發(fā)明公開了一種降低消息中間件網(wǎng)絡(luò)負載的消息傳遞方法,其根據(jù)當前節(jié)點接收到的所有原始消息的結(jié)構(gòu)相似度進行一次分類,得到同類原始消息集,再根據(jù)同類原始消息集中原始消息的下一跳節(jié)點的地址進行二次分類,得到同類原始消息子集,分別提取子集中所有原始消息的相同和相異部分內(nèi)容,再進行差分編碼,并封包成已編碼消息發(fā)送給下一跳節(jié)點,下一跳節(jié)點拆包并解析,解析出的原始消息的目標節(jié)點的地址為該節(jié)點時,將該原始消息發(fā)送給消息消費者,該節(jié)點對未處理的所有原始消息再重復分類、封包的過程,直至發(fā)送給消息消費者,優(yōu)點在于通過合理地利用XML文本數(shù)據(jù)格式的消息的結(jié)構(gòu)相似性,及巧妙地使用差分編碼,有效地降低了消息中間件的網(wǎng)絡(luò)負載。
      文檔編號H04L29/08GK101917332SQ20101018422
      公開日2010年12月15日 申請日期2010年5月24日 優(yōu)先權(quán)日2010年5月24日
      發(fā)明者俞弘, 姜建生, 干紅華, 廖蘭新, 趙晨 申請人:寧波東海藍帆科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1