国产精品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>

      一種消息發(fā)送和接收的方法及裝置的制作方法

      文檔序號(hào):7943376閱讀:189來源:國(guó)知局
      專利名稱:一種消息發(fā)送和接收的方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及通信領(lǐng)域,更具體的說,是涉及一種消息發(fā)送和接收的方法及裝置。
      背景技術(shù)
      隨著國(guó)內(nèi)信息化建設(shè)的日益深入,網(wǎng)絡(luò)通信技術(shù)也得到了快速的發(fā)展,其中,應(yīng)用于分布式環(huán)境下的消息中間件即為其成果之一。采用消息中間機(jī)制的系統(tǒng)中,不同對(duì)象之間通過傳遞消息來激活對(duì)方事件,完成相應(yīng)的操作,能夠?qū)崿F(xiàn)不同平臺(tái)之間的通信。消息中間件為大規(guī)模分布式環(huán)境下企業(yè)應(yīng)用集成任務(wù)中嚴(yán)峻的時(shí)間、空間解耦問題提供了一個(gè)高效、可靠的解決工具,能夠大大地減少開發(fā)人員的開發(fā)強(qiáng)度、縮短開發(fā)周期。但是,消息中間件的應(yīng)用面臨著一個(gè)重要的問題,就是在復(fù)雜的分布式環(huán)境中,一旦在消息傳輸?shù)倪^程中出現(xiàn)網(wǎng)絡(luò)故障,其傳輸?shù)臄?shù)據(jù)就會(huì)丟失,等網(wǎng)絡(luò)恢復(fù)正常時(shí)還需要重新發(fā)送,如果該消息為信息量較大的消息,重新發(fā)送則嚴(yán)重影響了業(yè)務(wù)系統(tǒng)的傳輸效率。 現(xiàn)有技術(shù)中還尚未存在一種比較好的基于消息中間件的消息傳輸方法,在網(wǎng)絡(luò)環(huán)境不穩(wěn)定的情況下,其數(shù)據(jù)傳輸效率低。因此,如何提供一種消息發(fā)送和接收的方法及裝置,能夠使得在不穩(wěn)定的網(wǎng)絡(luò)環(huán)境下依然保證消息傳輸?shù)膫鬏斝?,是本領(lǐng)域人員急需解決的問題。

      發(fā)明內(nèi)容
      有鑒于此,本發(fā)明提供了一種消息發(fā)送和接收的方法及裝置,以克服現(xiàn)有技術(shù)中由于網(wǎng)絡(luò)故障等原因而影響消息傳輸效率的問題。為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案—種消息發(fā)送方法,應(yīng)用于消息中間件之中,包括將待發(fā)送消息切分為至少一個(gè)消息分片,每一個(gè)所述消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí);按照所述標(biāo)識(shí)里的序號(hào)將第一個(gè)所述消息分片作為當(dāng)前消息分片,發(fā)送所述當(dāng)前消息分片,并在發(fā)送的同時(shí)檢測(cè)當(dāng)前網(wǎng)絡(luò)是否存在故障;在有網(wǎng)絡(luò)故障的情況下記錄當(dāng)前發(fā)送的消息分片;定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;若網(wǎng)絡(luò)恢復(fù)正常,將所述記錄的消息分片重新發(fā)送;判斷是否所有的消息分片均發(fā)送完畢,若否,則將還未發(fā)送的消息分片中的第一個(gè)消息分片作為當(dāng)前消息分片,進(jìn)入所述發(fā)送所述當(dāng)前消息分片的步驟,直至所有的消息分片均發(fā)送完畢。優(yōu)選的,所述將所述記錄的消息分片重新發(fā)送后還包括刪除所述記錄的消息分片。優(yōu)選的,所述消息分片中的最后一個(gè)消息分片的標(biāo)識(shí)還包括指示其為最后一個(gè)消息分片的結(jié)束標(biāo)識(shí)。其中,所述判斷是否所有的消息分片均發(fā)送完畢是根據(jù)是否發(fā)送完帶有所述結(jié)束標(biāo)識(shí)的消息分片來判斷的。一種消息接收方法,應(yīng)用于消息中間件之中,包括接收由待發(fā)送消息切分而成的至少一個(gè)消息分片,每一個(gè)所述消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí);檢測(cè)當(dāng)前的網(wǎng)絡(luò)是否存在故障;在有網(wǎng)絡(luò)故障的情況下定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;若網(wǎng)絡(luò)恢復(fù)正常,判斷是否所有的消息分片均接收完畢,若是,則將接收到的所有消息分片組合成所述待發(fā)送信息,若否,進(jìn)入接收由待發(fā)送消息切分而成的消息分片的步驟,直至所有的消息分片均接收完畢。其中,所述判斷是否所有的消息分片均接收完畢是根據(jù)是否接收到帶有所述結(jié)束標(biāo)識(shí)的消息分片來判斷的。一種消息發(fā)送裝置,存在于消息中間件之中,包括消息切分模塊,用于將待發(fā)送消息切分為至少一個(gè)消息分片,其中,每一個(gè)消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí);分片發(fā)送模塊,用于按照所述標(biāo)識(shí)里的序號(hào)將第一個(gè)所述消息分片作為當(dāng)前消息分片,發(fā)送所述當(dāng)前消息分片;網(wǎng)絡(luò)檢測(cè)模塊,用于在發(fā)送所述當(dāng)前消息分片的同時(shí)監(jiān)測(cè)當(dāng)前網(wǎng)絡(luò)是否存在故障,以及,定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;分片記錄模塊,用于在有網(wǎng)絡(luò)故障的情況下記錄當(dāng)前發(fā)送的消息分片;并在所述網(wǎng)絡(luò)檢測(cè)模塊檢測(cè)到網(wǎng)絡(luò)恢復(fù)正常時(shí),觸發(fā)所述分片發(fā)送模塊將所述記錄的消息分片重新發(fā)送;分片發(fā)送判斷模塊,用于判斷是否所有的消息分片均發(fā)送完畢,若否,就將還未發(fā)送的消息分片中的第一個(gè)消息分片作為當(dāng)前消息分片,并觸發(fā)所述分片發(fā)送模塊發(fā)送所述當(dāng)前消息分片,直至所有的消息分片均發(fā)送完畢。
      優(yōu)選的,還包括分片刪除模塊,用于將在所述記錄的消息分片重新發(fā)送后刪除所述記錄的消息分片。其中,所述分片發(fā)送判斷模塊在判斷是否所有的消息分片均發(fā)送完畢時(shí),具體是根據(jù)是否發(fā)送完帶有所述結(jié)束標(biāo)識(shí)的消息分片來判斷的。一種消息接收裝置,存在于消息中間件之中,包括分片接收模塊,用于接收由待發(fā)送消息切分而成的至少一個(gè)消息分片,每一個(gè)消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí);網(wǎng)絡(luò)檢測(cè)模塊,用于檢測(cè)當(dāng)前網(wǎng)絡(luò)是否存在故障,以及,定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;分片接收判斷模塊,用于在網(wǎng)絡(luò)恢復(fù)正常的情況下,判斷是否所有的消息分片均接收完畢,若否,觸發(fā)所述分片接收模塊繼續(xù)接收由待發(fā)送消息切分而成的消息分片,直至所有的消息分片均接收完畢;分片組合模塊,用于在所有的消息分片接收完畢的情況下將接收到的所有消息分片組裝成所述待發(fā)送信息。
      經(jīng)由上述的技術(shù)方案可知,與現(xiàn)有技術(shù)相比,本發(fā)明公開了一種消息發(fā)送和接收的方法及裝置,該消息發(fā)送方法首先將待發(fā)送消息切分為若干個(gè)消息分片,并給每一個(gè)消息分片設(shè)置特定的標(biāo)識(shí),以消息分片為單位進(jìn)行發(fā)送/接收,在發(fā)送/接收消息分片的過程中,實(shí)時(shí)檢測(cè)網(wǎng)絡(luò)是否存在故障,并在網(wǎng)絡(luò)存在故障時(shí)保存發(fā)送/接收斷點(diǎn)信息,待網(wǎng)絡(luò)恢復(fù)正常后,不需要重新發(fā)送整個(gè)待發(fā)送消息,只需要繼續(xù)從斷點(diǎn)處發(fā)送/接收消息分片,在接收到所有的消息分片后將其組合成所述待發(fā)送信息,通過該裝置,實(shí)現(xiàn)了在網(wǎng)絡(luò)環(huán)境不穩(wěn)定情況下依然能夠保證很好的消息傳輸效率的目的。


      為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例公開的一種消息發(fā)送方法的流程示意圖;圖2為本發(fā)明實(shí)施例公開的另一種消息發(fā)送方法的流程示意圖;圖3為本發(fā)明實(shí)施例公開的消息接收方法的流程示意圖;圖4為本發(fā)明實(shí)施例公開的消息發(fā)送裝置的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例公開的消息接收裝置的結(jié)構(gòu)示意圖。
      具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一本發(fā)明實(shí)施例公開的一種消息發(fā)送的方法應(yīng)用于消息中間件之中,其步驟可參見圖1,圖1為本發(fā)明實(shí)施例公開的一種消息發(fā)送方法的流程示意圖,如圖1所示,本實(shí)施例公開的消息發(fā)送的方法步驟可以包括步驟101 將待發(fā)送消息切分為至少一個(gè)消息分片;本步驟中,通過消息中間件將所述待發(fā)送消息,根據(jù)系統(tǒng)預(yù)先設(shè)定的長(zhǎng)度進(jìn)行切分,依據(jù)所述待發(fā)送消息的大小,可以將所述待發(fā)送消息切分為至少一個(gè)消息分片,每一個(gè)消息分片作為獨(dú)立的子消息,設(shè)置了帶有序號(hào)的標(biāo)識(shí),其中,序號(hào)可以采用自然數(shù)設(shè)置,例如1、2、3等。也可以采用其他方式設(shè)置,例如A、B、C等方式,只要能表示出各個(gè)消息分片進(jìn)行發(fā)送時(shí)的先后順序即可;步驟102 按照所述標(biāo)識(shí)里的序號(hào)將第一個(gè)所述消息分片作為當(dāng)前消息分片,發(fā)送所述當(dāng)前消息分片;本步驟中,將標(biāo)識(shí)里序號(hào)為1的消息分片作為當(dāng)前消息分片,并發(fā)送所述當(dāng)前消息分片,將其寫入到待接收隊(duì)列里;步驟103 檢測(cè)當(dāng)前網(wǎng)絡(luò)是否存在故障;
      本步驟中,在發(fā)送消息分片的同時(shí),檢查當(dāng)前的網(wǎng)絡(luò)狀況,判斷出是否存在網(wǎng)絡(luò)故障,在網(wǎng)絡(luò)中存在故障時(shí),進(jìn)入步驟104進(jìn)行相應(yīng)的操作,在網(wǎng)絡(luò)中不存在故障時(shí),按照正常的流程依次發(fā)送消息分片;步驟104 記錄當(dāng)前發(fā)送的消息分片;本步驟中,是在網(wǎng)絡(luò)存在故障的情況下,以防正在發(fā)送的消息分片丟失,記錄下當(dāng)前正在發(fā)送的消息分片;步驟105:定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;本步驟中,根據(jù)系統(tǒng)預(yù)先設(shè)置的時(shí)間長(zhǎng)度,對(duì)網(wǎng)絡(luò)進(jìn)行定時(shí)檢測(cè),判斷網(wǎng)絡(luò)是否恢復(fù)正常,在網(wǎng)絡(luò)恢復(fù)正常的情況下,進(jìn)入步驟106,如果網(wǎng)絡(luò)沒有恢復(fù)正常,繼續(xù)以預(yù)設(shè)的時(shí)間長(zhǎng)度檢測(cè)網(wǎng)絡(luò)是否已恢復(fù)連接,直至網(wǎng)絡(luò)恢復(fù)正常;步驟106 將所述記錄的消息分片重新發(fā)送;本步驟中,在網(wǎng)絡(luò)恢復(fù)正常的情況下,將網(wǎng)絡(luò)出現(xiàn)故障時(shí)記錄的消息分片重新發(fā)送;步驟107 判斷是否所有的消息分片均發(fā)送完畢,若是,則跳出流程,若否,進(jìn)入步驟 108 ;本步驟中,是根據(jù)所述消息分片上的標(biāo)識(shí)來判斷是否所有的消息分片都已發(fā)送完畢的,如果判斷結(jié)果為否,進(jìn)入步驟108進(jìn)行相應(yīng)的操作;步驟108 將還未發(fā)送的消息分片中的第一個(gè)消息分片作為當(dāng)前消息分片,進(jìn)入步驟102 ;本步驟中,在判斷出所有的消息分片沒有發(fā)送完畢的情況下,按所述標(biāo)識(shí)里的序號(hào)將尚未發(fā)送的消息分片中的第一個(gè)消息分片作為當(dāng)前消息分片,進(jìn)入步驟102發(fā)送當(dāng)前消息分片,這樣按所述標(biāo)識(shí)里的序號(hào)循環(huán)發(fā)送消息分片,直至所有的消息分片均發(fā)送完畢, 跳出流程。本實(shí)施例中,所述消息發(fā)送的方法首先將待發(fā)送消息切分為至少一個(gè)消息分片, 再按照所述消息分片在待發(fā)送消息中的位置順序,依次發(fā)送所述消息分片,并能在發(fā)送每一個(gè)消息分片的同時(shí)檢測(cè)當(dāng)前的網(wǎng)絡(luò)狀況,在網(wǎng)絡(luò)存在故障的時(shí)候,將正在發(fā)送的消息分片,即斷點(diǎn)處的消息分片記錄下來,待網(wǎng)絡(luò)連接恢復(fù)正常后重新發(fā)送記錄的斷點(diǎn)消息分片, 實(shí)現(xiàn)從斷點(diǎn)處接著發(fā)送未發(fā)送的消息分片,而不用將整個(gè)待發(fā)送消息進(jìn)行重新發(fā)送,保證了在網(wǎng)絡(luò)環(huán)境不穩(wěn)定狀況下很好的消息發(fā)送效率。實(shí)施例二本發(fā)明實(shí)施例公開的消息發(fā)送的方法應(yīng)用于消息中間件之中,其步驟可參見圖2, 圖2為本發(fā)明實(shí)施例公開的另一種消息發(fā)送方法的流程示意圖,如圖2所示,本實(shí)施例公開的消息發(fā)送的方法步驟可以包括步驟201 將待發(fā)送消息切分為至少一個(gè)消息分片;其中,每一個(gè)所述消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí),且最后一個(gè)消息分片上帶有指示其為最后一個(gè)消息分片的結(jié)束標(biāo)識(shí);步驟202 按照所述標(biāo)識(shí)里的序號(hào)將第一個(gè)所述消息分片作為當(dāng)前消息分片,發(fā)送所述當(dāng)前消息分片;步驟203 檢測(cè)當(dāng)前網(wǎng)絡(luò)是否存在故障,在有網(wǎng)絡(luò)故障的情況下,進(jìn)入步驟204 ;
      步驟204 記錄當(dāng)前發(fā)送的消息分片;步驟205 定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;步驟206 將所述記錄的消息分片重新發(fā)送;步驟207 刪除所述記錄的消息分片;本步驟中,將網(wǎng)絡(luò)出現(xiàn)故障時(shí)記錄的消息分片重新發(fā)送后,刪除記錄的消息分片內(nèi)容,以防被竊??;步驟208 判斷是否所有的消息分片均發(fā)送完畢,若是,則跳出流程,若否,進(jìn)入步驟 209 ;本步驟中,是根據(jù)是否發(fā)送完帶有所述結(jié)束標(biāo)識(shí)的消息分片來判斷是否所有的消息分片均發(fā)送完畢的;步驟209 將還未發(fā)送的消息分片中的第一個(gè)消息分片作為當(dāng)前消息分片,進(jìn)入步驟202 ;本實(shí)施例中,所述消息發(fā)送的方法首先將待發(fā)送消息切分為至少一個(gè)消息分片, 再按照所述消息分片在待發(fā)送消息中的位置順序,依次發(fā)送所述消息分片,并能夠根據(jù)結(jié)束標(biāo)識(shí)判斷是否所有的消息分片都已發(fā)送完畢,在發(fā)送每一個(gè)消息分片的同時(shí),檢測(cè)當(dāng)前的網(wǎng)絡(luò)狀況,在網(wǎng)絡(luò)存在故障的時(shí)候,記錄下正在發(fā)送的消息分片,待網(wǎng)絡(luò)連接恢復(fù)正常后重新發(fā)送記錄的消息分片,實(shí)現(xiàn)從斷點(diǎn)處接著發(fā)送未發(fā)送的消息分片,而不用將整個(gè)待發(fā)送消息進(jìn)行重新發(fā)送,保證了在網(wǎng)絡(luò)環(huán)境部穩(wěn)定狀況下很好的消息發(fā)送效率,且在重新發(fā)送記錄的消息分片后自動(dòng)刪除記錄的消息分片,保障了消息在發(fā)送過程中不易被竊取的安全問題。實(shí)施例三本發(fā)明實(shí)施例公開的消息接收的方法應(yīng)用于消息中間件中,其步驟可參見圖3,圖 3為本發(fā)明實(shí)施例公開的消息接收的方法流程示意圖,如圖3所示,本發(fā)明實(shí)施例公開的消息接收的方法可以包括步驟301 接收由待發(fā)送消息切分而成的至少一個(gè)消息分片;本步驟中,每一個(gè)消息分片作為一個(gè)獨(dú)立的消息從待接收隊(duì)列里被取出接收,每一個(gè)所述消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí),以便于識(shí)別該消息分片屬于哪一個(gè)待發(fā)送消息及其在所述待發(fā)送消息中的位置,其中最后一個(gè)消息分片上帶有指示其為最后一個(gè)消息分片的結(jié)束標(biāo)識(shí);步驟302 檢測(cè)當(dāng)前的網(wǎng)絡(luò)是否存在故障,若否,進(jìn)入步驟303 ;步驟303:判斷是否所有的消息分片均接收完畢,若否,進(jìn)入步驟301,若是,進(jìn)入步驟304 ;本步驟中,是根據(jù)是否接收完帶有所述結(jié)束標(biāo)識(shí)的消息分片來判斷是否所有的消息分片均接收完畢的,根據(jù)判斷結(jié)果進(jìn)入不同的步驟進(jìn)行相應(yīng)的操作;步驟304 將接收到的所有消息分片組合成所述待發(fā)送信息;本步驟中,在判斷出所有的消息分片都已接收完畢的情況下,將接收到的所有的來自同一待發(fā)送消息的消息分片組合成原待發(fā)送消息。本實(shí)施例中,所述消息接收方法依次接收由待發(fā)送消息切分而成的消息分片,并在接收所述消息分片的同時(shí),實(shí)時(shí)檢測(cè)網(wǎng)絡(luò)是否存在故障,在網(wǎng)絡(luò)連接正常的情況下判斷是否所有的消息分片是否已接收完畢,待所有的消息分片都接收完畢后,將所述所有的消息分片組合成原待發(fā)送消息,這種方法在網(wǎng)絡(luò)出現(xiàn)故障時(shí),停止消息分片的接收,在網(wǎng)絡(luò)恢復(fù)正常時(shí),又能夠按照消息分片的標(biāo)識(shí)繼續(xù)接收沒有接收到的消息分片,不必重新接收整個(gè)待發(fā)送消息,保證了在網(wǎng)絡(luò)環(huán)境不穩(wěn)定狀況下很好的消息接收效率。上述本發(fā)明公開的實(shí)施例中詳細(xì)描述了方法,對(duì)于本發(fā)明的方法可采用多種形式的裝置實(shí)現(xiàn),因此本發(fā)明還公開了一種裝置,下面給出具體的實(shí)施例進(jìn)行詳細(xì)說明。實(shí)施例四本實(shí)施例公開的消息發(fā)送裝置存在于消息中間件之中,圖4為本發(fā)明實(shí)施例公開的消息發(fā)送裝置的結(jié)構(gòu)示意圖,參見圖4,消息發(fā)送裝置40可以包括消息切分模塊401,用于將待發(fā)送消息切分為至少一個(gè)消息分片,其中,每一個(gè)消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí);分片發(fā)送模塊402,用于按照所述標(biāo)識(shí)里的序號(hào)將第一個(gè)所述消息分片作為當(dāng)前消息分片,發(fā)送所述當(dāng)前消息分片;網(wǎng)絡(luò)監(jiān)測(cè)模塊403,用于在發(fā)送所述當(dāng)前消息分片的同時(shí)監(jiān)測(cè)當(dāng)前網(wǎng)絡(luò)是否存在故障,以及,定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;分片記錄模塊404,用于在有網(wǎng)絡(luò)故障的情況下記錄當(dāng)前發(fā)送的消息分片;并在所述網(wǎng)絡(luò)檢測(cè)模塊檢測(cè)到網(wǎng)絡(luò)恢復(fù)正常時(shí),觸發(fā)所述分片發(fā)送模塊將所述記錄的消息分片重新發(fā)送;分片發(fā)送判斷模塊405,用于判斷是否所有的消息分片均發(fā)送完畢,若否,就將還未發(fā)送的消息分片中的第一個(gè)消息分片作為當(dāng)前消息分片,并觸發(fā)所述分片發(fā)送模塊發(fā)送所述當(dāng)前消息分片,直至所有的消息分片均發(fā)送完畢;則所述分片發(fā)送模塊402還用于在所有的消息分片沒有發(fā)送完畢的情況下,發(fā)送尚未發(fā)送的當(dāng)前消息分片。在其他的實(shí)施例中,還包括分片刪除模塊,用于將在所述記錄的消息分片重新發(fā)送后刪除所述記錄的消息分片。本實(shí)施例中,所述消息發(fā)送裝置首先將待發(fā)送消息切分為至少一個(gè)消息分片,再依次發(fā)送所述消息分片,并能在發(fā)送每一個(gè)消息分片的同時(shí)檢測(cè)當(dāng)前的網(wǎng)絡(luò)狀況,在網(wǎng)絡(luò)存在故障的時(shí)候,將正在發(fā)送的消息分片記錄下來,待網(wǎng)絡(luò)連接恢復(fù)正常后重新發(fā)送記錄的消息分片,實(shí)現(xiàn)從斷點(diǎn)處接著發(fā)送未發(fā)送的消息分片,而不用將整個(gè)待發(fā)送消息進(jìn)行重新發(fā)送,通過該消息發(fā)送裝置,保證了在網(wǎng)絡(luò)環(huán)境不穩(wěn)定狀況下很好的消息發(fā)送效率。實(shí)施例五本實(shí)施例公開的消息接收裝置存在于消息中間件之中,圖5為本發(fā)明實(shí)施例公開的消息接收裝置的結(jié)構(gòu)示意圖,參見圖5,消息接收裝置50可以包括分片接收模塊501,用于接收由待發(fā)送消息切分而成的至少一個(gè)消息分片,每一個(gè)消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí);網(wǎng)絡(luò)檢測(cè)模塊502,用于檢測(cè)當(dāng)前網(wǎng)絡(luò)是否存在故障,以及,定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;分片接收判斷模塊503,用于在網(wǎng)絡(luò)恢復(fù)正常的情況下,判斷是否所有的消息分片均接收完畢,若否,觸發(fā)所述分片接收模塊繼續(xù)接收由待發(fā)送消息切分而成的消息分片,直至所有的消息分片均接收完畢;則所述分片接收模塊501還用于在所有的消息分片未接收完畢的情況下,繼續(xù)接收由待發(fā)送消息切分而成的消息分片;分片組合模塊504,用于在所有的消息分片接收完畢的情況下將接收到的所有消息分片組裝成所述待發(fā)送信息。本實(shí)施例中,所述消息接收裝置依次接收由待發(fā)送消息切分而成的消息分片,并在接收所述消息分片的同時(shí),實(shí)時(shí)檢測(cè)網(wǎng)絡(luò)是否存在故障,在網(wǎng)絡(luò)連接正常的情況下判斷是否所有的消息分片是否已接收完畢,待所有的消息分片都接收完畢后,將所述所有的消息分片組合成原待發(fā)送消息,這種裝置在網(wǎng)絡(luò)出現(xiàn)故障時(shí),停止消息分片的接收,在網(wǎng)絡(luò)恢復(fù)正常時(shí),又能夠按照消息分片的標(biāo)識(shí)繼續(xù)接收沒有接收到的消息分片,不必重新接收整個(gè)待發(fā)送消息,保證了在網(wǎng)絡(luò)環(huán)境不穩(wěn)定狀況下很好的消息接收效率。對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
      權(quán)利要求
      1.一種消息發(fā)送方法,應(yīng)用于消息中間件之中,其特征在于,包括將待發(fā)送消息切分為至少一個(gè)消息分片,每一個(gè)所述消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí);按照所述標(biāo)識(shí)里的序號(hào)將第一個(gè)所述消息分片作為當(dāng)前消息分片,發(fā)送所述當(dāng)前消息分片,并在發(fā)送的同時(shí)檢測(cè)當(dāng)前網(wǎng)絡(luò)是否存在故障;在有網(wǎng)絡(luò)故障的情況下記錄當(dāng)前發(fā)送的消息分片;定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;若網(wǎng)絡(luò)恢復(fù)正常,將所述記錄的消息分片重新發(fā)送;判斷是否所有的消息分片均發(fā)送完畢,若否,則將還未發(fā)送的消息分片中的第一個(gè)消息分片作為當(dāng)前消息分片,進(jìn)入所述發(fā)送所述當(dāng)前消息分片的步驟,直至所有的消息分片均發(fā)送完畢。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述記錄的消息分片重新發(fā)送后還包括刪除所述記錄的消息分片。
      3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述消息分片中的最后一個(gè)消息分片的標(biāo)識(shí)還包括指示其為最后一個(gè)消息分片的結(jié)束標(biāo)識(shí)。
      4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述判斷是否所有的消息分片均發(fā)送完畢是根據(jù)是否發(fā)送完帶有所述結(jié)束標(biāo)識(shí)的消息分片來判斷的。
      5.一種消息接收方法,應(yīng)用于消息中間件之中,其特征在于,包括接收由待發(fā)送消息切分而成的至少一個(gè)消息分片,每一個(gè)所述消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí);檢測(cè)當(dāng)前的網(wǎng)絡(luò)是否存在故障; 在有網(wǎng)絡(luò)故障的情況下定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;若網(wǎng)絡(luò)恢復(fù)正常,判斷是否所有的消息分片均接收完畢,若是,則將接收到的所有消息分片組合成所述待發(fā)送信息,若否,進(jìn)入接收由待發(fā)送消息切分而成的消息分片的步驟,直至所有的消息分片均接收完畢。
      6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述判斷是否所有的消息分片均接收完畢是根據(jù)是否接收到帶有所述結(jié)束標(biāo)識(shí)的消息分片來判斷的。
      7.一種消息發(fā)送裝置,存在于消息中間件之中,其特征在于,包括消息切分模塊,用于將待發(fā)送消息切分為至少一個(gè)消息分片,其中,每一個(gè)消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí);分片發(fā)送模塊,用于按照所述標(biāo)識(shí)里的序號(hào)將第一個(gè)所述消息分片作為當(dāng)前消息分片,發(fā)送所述當(dāng)前消息分片;網(wǎng)絡(luò)檢測(cè)模塊,用于在發(fā)送所述當(dāng)前消息分片的同時(shí)監(jiān)測(cè)當(dāng)前網(wǎng)絡(luò)是否存在故障,以及,定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;分片記錄模塊,用于在有網(wǎng)絡(luò)故障的情況下記錄當(dāng)前發(fā)送的消息分片;并在所述網(wǎng)絡(luò)檢測(cè)模塊檢測(cè)到網(wǎng)絡(luò)恢復(fù)正常時(shí),觸發(fā)所述分片發(fā)送模塊將所述記錄的消息分片重新發(fā)送;分片發(fā)送判斷模塊,用于判斷是否所有的消息分片均發(fā)送完畢,若否,就將還未發(fā)送的消息分片中的第一個(gè)消息分片作為當(dāng)前消息分片,并觸發(fā)所述分片發(fā)送模塊發(fā)送所述當(dāng)前消息分片,直至所有的消息分片均發(fā)送完畢。
      8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括分片刪除模塊,用于將在所述記錄的消息分片重新發(fā)送后刪除所述記錄的消息分片。
      9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述分片發(fā)送判斷模塊在判斷是否所有的消息分片均發(fā)送完畢時(shí),具體是根據(jù)是否發(fā)送完帶有所述結(jié)束標(biāo)識(shí)的消息分片來判斷的。
      10.一種消息接收裝置,存在于消息中間件之中,其特征在于,包括分片接收模塊,用于接收由待發(fā)送消息切分而成的至少一個(gè)消息分片,每一個(gè)消息分片都設(shè)置了帶有序號(hào)的標(biāo)識(shí);網(wǎng)絡(luò)檢測(cè)模塊,用于檢測(cè)當(dāng)前網(wǎng)絡(luò)是否存在故障,以及,定時(shí)檢測(cè)網(wǎng)絡(luò)是否恢復(fù)正常;分片接收判斷模塊,用于在網(wǎng)絡(luò)恢復(fù)正常的情況下,判斷是否所有的消息分片均接收完畢,若否,觸發(fā)所述分片接收模塊繼續(xù)接收由待發(fā)送消息切分而成的消息分片,直至所有的消息分片均接收完畢;分片組合模塊,用于在所有的消息分片接收完畢的情況下將接收到的所有消息分片組裝成所述待發(fā)送信息。
      全文摘要
      本發(fā)明公開了一種消息發(fā)送和接收的方法及裝置,該消息發(fā)送方法首先將待發(fā)送消息切分為若干個(gè)消息分片,并給每一個(gè)消息分片設(shè)置特定的標(biāo)識(shí),以消息分片為單位進(jìn)行發(fā)送/接收,在發(fā)送/接收消息分片的過程中,實(shí)時(shí)檢測(cè)網(wǎng)絡(luò)是否存在故障,并在網(wǎng)絡(luò)存在故障時(shí)保存發(fā)送/接收斷點(diǎn)信息,待網(wǎng)絡(luò)恢復(fù)正常后,不需要重新發(fā)送/接收整個(gè)待發(fā)送消息,只需要繼續(xù)從斷點(diǎn)處發(fā)送/接收消息分片,該消息接收方法在接收到所有的消息分片后將其組合成所述待發(fā)送信息。通過本發(fā)明的消息發(fā)送和接收的方法及裝置實(shí)施例,實(shí)現(xiàn)了在網(wǎng)絡(luò)環(huán)境不穩(wěn)定情況下依然能夠保證很好的消息傳輸效率的目的。
      文檔編號(hào)H04L12/24GK102355342SQ20111031905
      公開日2012年2月15日 申請(qǐng)日期2011年10月19日 優(yōu)先權(quán)日2011年10月19日
      發(fā)明者劉春 , 皮開元, 聶秀志, 馬亮 申請(qǐng)人:山東中創(chuàng)軟件商用中間件股份有限公司, 山東中創(chuàng)軟件工程股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1