午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種消息處理方法和設(shè)備與流程

文檔序號:11154192閱讀:524來源:國知局
一種消息處理方法和設(shè)備與制造工藝

本申請實施例涉及通信技術(shù)領(lǐng)域,特別涉及一種消息處理方法。本申請實施例同時還涉及一種消息處理設(shè)備。



背景技術(shù):

目前消息構(gòu)造方式有兩種,方式一是對消息進(jìn)行持久化構(gòu)造,方式二則是對消息進(jìn)行非持久化構(gòu)造。

其中持久化消息為可靠的傳輸模式,在提供者關(guān)閉、失敗或者異常的場景下能確保消息不會被丟棄或丟失,會緩存對應(yīng)的消息;但持久化的構(gòu)造方式存在資源的浪費,在某中情況下針對特定的不需要緩存或者說可容忍部分消息丟失的情況下,該種模式顯現(xiàn)出資源浪費,效率較低的缺陷;而非持久化構(gòu)造的方式不能保證消息的可靠性,在訂閱者不活動或者異常場景下即時持有的消息會被丟棄,不能確??煽啃?,但是資源占用少,效率相對高。

針對上述兩種情況,現(xiàn)有技術(shù)中,在對消息進(jìn)行處理時,要不就是將所有消息進(jìn)行持久化處理,要不就對所有消息進(jìn)行非持久化處理,導(dǎo)致無法很好的適應(yīng)需要,造成資源的浪費或者導(dǎo)致可靠性不足。



技術(shù)實現(xiàn)要素:

針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提出了一種消息處理方法,用以根據(jù)可靠性要求來選擇對消息的處理方式,滿足了實際的需要,克服現(xiàn)有技術(shù)中的缺陷,該包括:

獲取待發(fā)送的消息;

對所述待發(fā)送的各消息進(jìn)行可靠性評估,并根據(jù)可靠性評估結(jié)果為待發(fā) 送的各消息設(shè)置標(biāo)識,生成包含標(biāo)識與可靠性評估結(jié)果的對應(yīng)關(guān)系,以及基于所述對應(yīng)關(guān)系生成資源文件;

當(dāng)需要發(fā)送所述消息時,基于所述資源文件與所述消息進(jìn)行匹配,判斷是否需要進(jìn)行持久化處理;

若判斷結(jié)果為是,則對所述消息進(jìn)行持久化處理;

若判斷結(jié)果為否,則對所述消進(jìn)行非持久化處理。

優(yōu)選的,所述標(biāo)識具體為消息識別信息;

所述根據(jù)可靠性評估結(jié)果為待發(fā)送的各消息設(shè)置標(biāo)識,具體包括:

針對每個待發(fā)送的消息,重載所述消息的消息頭字段,并在所述消息中加入消息識別信息,用以標(biāo)識所述消息。

優(yōu)選的,所述對應(yīng)關(guān)系中的可靠性評估結(jié)果是可以修改的,當(dāng)對消息的可靠性評估結(jié)果變更時,對應(yīng)的對應(yīng)關(guān)系相應(yīng)的修改為變更后的可靠性評估結(jié)果與標(biāo)識的對應(yīng)關(guān)系。

優(yōu)選的,當(dāng)發(fā)送情況異常時,判斷待發(fā)送的消息隊列中是否存在進(jìn)行了持久化處理的消息;

若判斷結(jié)果為是,則將所述進(jìn)行了持久化處理的消息進(jìn)行緩存,以便發(fā)送情況正常時再次進(jìn)行發(fā)送。

本發(fā)明還提出了一種消息處理設(shè)備,包括:

獲取模塊,用于獲取待發(fā)送的消息;

評估模塊,用于對所述待發(fā)送的各消息進(jìn)行可靠性評估,并根據(jù)可靠性評估結(jié)果為待發(fā)送的各消息設(shè)置標(biāo)識,生成包含標(biāo)識與可靠性評估結(jié)果的對應(yīng)關(guān)系,以及基于所述對應(yīng)關(guān)系生成資源文件;

判斷模塊,用于當(dāng)需要發(fā)送所述消息時,基于所述資源文件與所述消息進(jìn)行匹配,判斷是否需要進(jìn)行持久化處理;

處理模塊,用于當(dāng)判斷結(jié)果為是時,對所述消息進(jìn)行持久化處理;以及當(dāng)判斷結(jié)果為否時,對所述消進(jìn)行非持久化處理。

優(yōu)選的,所述標(biāo)識具體為消息識別信息;

所述評估模塊根據(jù)可靠性評估結(jié)果為待發(fā)送的各消息設(shè)置標(biāo)識,具體包括:

針對每個待發(fā)送的消息,重載所述消息的消息頭字段,并在所述消息中加入消息識別信息,用以標(biāo)識所述消息。

優(yōu)選的,所述對應(yīng)關(guān)系中的可靠性評估結(jié)果是可以修改的,當(dāng)對消息的可靠性評估結(jié)果變更時,對應(yīng)的對應(yīng)關(guān)系相應(yīng)的修改為變更后的可靠性評估結(jié)果與標(biāo)識的對應(yīng)關(guān)系。

優(yōu)選的,該設(shè)備還包括:

緩存模塊,用于當(dāng)發(fā)送情況異常時,判斷待發(fā)送的消息隊列中是否存在進(jìn)行了持久化處理的消息;

若判斷結(jié)果為是,則將所述進(jìn)行了持久化處理的消息進(jìn)行緩存,以便發(fā)送情況正常時再次進(jìn)行發(fā)送。

與現(xiàn)有技術(shù)相比,本發(fā)明通過獲取待發(fā)送的消息;對所述待發(fā)送的各消息進(jìn)行可靠性評估,并根據(jù)可靠性評估結(jié)果為待發(fā)送的各消息設(shè)置標(biāo)識,生成包含標(biāo)識與可靠性評估結(jié)果的對應(yīng)關(guān)系,以及基于所述對應(yīng)關(guān)系生成資源文件;后續(xù)當(dāng)需要發(fā)送消息時,基于資源文件與所述消息進(jìn)行匹配,判斷是否需要進(jìn)行持久化處理;若判斷結(jié)果為是,則對所述消息進(jìn)行持久化處理;若判斷結(jié)果為否,則對所述消進(jìn)行非持久化處理;以此根據(jù)匹配結(jié)果來執(zhí)行相應(yīng)的操作,實現(xiàn)了根據(jù)需要來確定對消息是否進(jìn)行持久化的處理,優(yōu)化權(quán)衡系統(tǒng)開銷和確保消息可靠性兩個方面,使二者達(dá)到最優(yōu)配置。

附圖說明

圖1為本發(fā)明實施例提出的一種消息處理方法的流程示意圖;

圖2為本發(fā)明實施例提出的一種JIM消息的示意圖;

圖3為本發(fā)明實施例提出的一種消息頭部分的示意圖;

圖4為本發(fā)明實施例提出的一種消息屬性部分的示意圖;

圖5為本發(fā)明實施例提出的一種消息處理設(shè)備的結(jié)構(gòu)示意圖;

具體實施方式

如背景技術(shù)所述,本發(fā)明提出了一種消息處理方法,如圖1所示,包括以下步驟:

步驟101、獲取待發(fā)送的消息;

具體的,待發(fā)送的消息可以是JIM(Java Message Service,Java消息服務(wù))消息,當(dāng)然也可以是其他的消息。

步驟102、對所述待發(fā)送的各消息進(jìn)行可靠性評估,并根據(jù)可靠性評估結(jié)果為待發(fā)送的各消息設(shè)置標(biāo)識,生成包含標(biāo)識與可靠性評估結(jié)果的對應(yīng)關(guān)系,以及基于所述對應(yīng)關(guān)系生成資源文件;

具體的,針對系統(tǒng)中的各待發(fā)送的消息,都會進(jìn)行可靠性評估,以此來評述各待發(fā)送的消息需要的可靠性,也即是否需要進(jìn)行持久化的評估,當(dāng)可靠性評估為需要進(jìn)行持久化時,為該消息設(shè)置一個標(biāo)識,例如為0,用以表示該消息后續(xù)需要進(jìn)行可持久化處理,而若是不需要,為該消息設(shè)置另一個標(biāo)識,例如為1,表示該消息后續(xù)不需要進(jìn)行可持久化處理,也即進(jìn)行非持久化處理,并生成標(biāo)識與可靠性評估結(jié)果的對應(yīng)關(guān)系,后續(xù)基于該對應(yīng)關(guān)系生成資源文件,在該資源文件中保存有生成的標(biāo)識與可靠性評估結(jié)果的對應(yīng)關(guān)系。

在一個具體的實施例中,標(biāo)識可以為消息識別信息;在此情況下,根據(jù)可靠性評估結(jié)果為待發(fā)送的各消息設(shè)置標(biāo)識,具體包括:

針對每個待發(fā)送的消息,重載所述消息的消息頭字段,并在所述消息中 加入消息識別信息,用以標(biāo)識所述消息。

具體的,以JIM消息為例來進(jìn)行說明,JIM消息包含三個部分,消息頭、消息屬性、消息體,其結(jié)構(gòu)如圖2所示,其中消息頭字段用來提供消息在發(fā)送接收時的路由信息和類型以及識別消息的必要數(shù)據(jù),一個系統(tǒng)中的消息必須支持一套相同的頭字段規(guī)范;消息頭部分如圖3所示,各字段的詳細(xì)含義參照J(rèn)MS規(guī)范,其中JMS支持為消息增加可選頭信息的機(jī)制,而消息屬性部分為消息頭字段的擴(kuò)展部分,提供一種內(nèi)建的方法用于給消息添加可選的信息;具體的消息屬性部分結(jié)構(gòu)如圖4所示,消息體部分為消息實際荷載的特定信息,其中JMS消息體支持5中格式,具體為:

(1)、SreeamMwssage順序地填充和讀取的Java primitive流

(2)、MapMessage名字(String)和鍵值(Java primitive)對形式

(3)、TextMessage java.lang.String對象

(4)、ObjectMessage可序列化的Java對象

(5)、BytesMessage消息體部分為不間斷的字節(jié)流

具體添加消息識別信息的方式為通過重載消息頭字段,加入相應(yīng)的消息識別信息來標(biāo)識消息的屬性,針對需要緩存及恢復(fù)的消息選擇進(jìn)行持久化的處理,也即創(chuàng)建持久化的消息,以確保訂閱者不活動時該消息會被緩存起來或者在會話連接建立失敗或發(fā)送失敗時將其緩存在本地的緩存系統(tǒng)中,待連接恢復(fù)后重新推送至發(fā)送隊列進(jìn)行重發(fā),確保消息的可靠性;針對可靠性要求不高的消息通過識別信息自動創(chuàng)建非持久化的消息,從而提高資源利用率,提升效率,可靠性無強(qiáng)制要求的消息在異常場景下不緩存,即時丟棄,減少環(huán)境資源浪費,提升整體效率;

此外,所述對應(yīng)關(guān)系中的可靠性評估結(jié)果是可以修改的,當(dāng)對消息的可靠性評估結(jié)果變更時,對應(yīng)的對應(yīng)關(guān)系相應(yīng)的修改為變更后的可靠性評估結(jié)果與標(biāo)識的對應(yīng)關(guān)系;以此不需要每次都對消息進(jìn)行變動,只需要更改資源 文件中的對應(yīng)關(guān)系即可完成關(guān)于可靠性要求的變更。

步驟103、當(dāng)需要發(fā)送所述消息時,基于資源文件與消息進(jìn)行匹配,判斷是否需要進(jìn)行持久化處理;

具體的,以上述例子來進(jìn)行說明,由于資源文件中存在標(biāo)識與可靠性評估結(jié)果的對應(yīng)關(guān)系,而消息中預(yù)設(shè)設(shè)置有標(biāo)識,因此可以進(jìn)行匹配,若消息匹配的結(jié)果為需要進(jìn)行持久化處理,例如標(biāo)識為0,則執(zhí)行步驟103,而多匹配的結(jié)果為不需要進(jìn)行持久化處理,例如標(biāo)識為1,則執(zhí)行步驟104。

步驟104、若判斷結(jié)果為是,則對所述消息進(jìn)行持久化處理。

步驟105、若判斷結(jié)果為否,則對所述消進(jìn)行非持久化處理。

具體的,在對消息進(jìn)行持久化處理以及非持久化處理之后,會對應(yīng)的生成持久化的消息和非持久化的消息,需要將生成的消息發(fā)送出去,具體的,是將生成的消息放置的消息發(fā)送隊列中進(jìn)行發(fā)送,而具體的發(fā)送過程會受到其他因素,例如網(wǎng)絡(luò)環(huán)境等的影響,在此情況下,當(dāng)發(fā)送情況異常時,判斷待發(fā)送的消息隊列中是否存在進(jìn)行了持久化處理的消息;若判斷結(jié)果為是,則將所述進(jìn)行了持久化處理的消息進(jìn)行緩存,以便發(fā)送情況正常時再次進(jìn)行發(fā)送。以此,針對持久化處理的消息有兩重保護(hù),最大可能保障了在異常場景下的消息不被丟棄。

為了對本發(fā)明進(jìn)行進(jìn)一步的說明,本發(fā)明實施例還公開了一種消息處理設(shè)備,如圖5,包括:

獲取模塊501,用于獲取待發(fā)送的消息;

評估模塊502,用于對所述待發(fā)送的各消息進(jìn)行可靠性評估,并根據(jù)可靠性評估結(jié)果為待發(fā)送的各消息設(shè)置標(biāo)識,生成包含標(biāo)識與可靠性評估結(jié)果的對應(yīng)關(guān)系,以及基于所述對應(yīng)關(guān)系生成資源文件;

判斷模塊503,用于當(dāng)需要發(fā)送所述消息時,基于所述資源文件與所述消 息進(jìn)行匹配,判斷是否需要進(jìn)行持久化處理;

處理模塊504,用于當(dāng)判斷結(jié)果為是時,對所述消息進(jìn)行持久化處理;以及當(dāng)判斷結(jié)果為否時,對所述消進(jìn)行非持久化處理。

所述標(biāo)識具體為消息識別信息;

所述評估模塊根據(jù)可靠性評估結(jié)果為待發(fā)送的各消息設(shè)置標(biāo)識,具體包括:

針對每個待發(fā)送的消息,重載所述消息的消息頭字段,并在所述消息中加入消息識別信息,用以標(biāo)識所述消息。

所述對應(yīng)關(guān)系中的可靠性評估結(jié)果是可以修改的,當(dāng)對消息的可靠性評估結(jié)果變更時,對應(yīng)的對應(yīng)關(guān)系相應(yīng)的修改為變更后的可靠性評估結(jié)果與標(biāo)識的對應(yīng)關(guān)系。

具體的,該設(shè)備還包括:

緩存模塊,用于當(dāng)發(fā)送情況異常時,判斷待發(fā)送的消息隊列中是否存在進(jìn)行了持久化處理的消息;

若判斷結(jié)果為是,則將所述進(jìn)行了持久化處理的消息進(jìn)行緩存,以便發(fā)送情況正常時再次進(jìn)行發(fā)送。

本發(fā)明通過獲取待發(fā)送的消息;對所述待發(fā)送的各消息進(jìn)行可靠性評估,并根據(jù)可靠性評估結(jié)果為待發(fā)送的各消息設(shè)置標(biāo)識,生成包含標(biāo)識與可靠性評估結(jié)果的對應(yīng)關(guān)系,以及基于所述對應(yīng)關(guān)系生成資源文件;后續(xù)當(dāng)需要發(fā)送消息時,基于資源文件與所述消息進(jìn)行匹配,判斷是否需要進(jìn)行持久化處理;若判斷結(jié)果為是,則對所述消息進(jìn)行持久化處理;若判斷結(jié)果為否,則對所述消進(jìn)行非持久化處理;以此根據(jù)匹配結(jié)果來執(zhí)行相應(yīng)的操作,實現(xiàn)了根據(jù)需要來確定對消息是否進(jìn)行持久化的處理,優(yōu)化權(quán)衡系統(tǒng)開銷和確保消息可靠性兩個方面,使二者達(dá)到最優(yōu)配置。

通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)。基于這樣的理解,本申請的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施場景所述的方法。

本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施場景的示意圖,附圖中的模塊或流程并不一定是實施本申請所必須的。

本領(lǐng)域技術(shù)人員可以理解實施場景中的裝置中的模塊可以按照實施場景描述進(jìn)行分布于實施場景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實施場景的一個或多個裝置中。上述實施場景的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。

上述本申請序號僅僅為了描述,不代表實施場景的優(yōu)劣。

以上公開的僅為本申請的幾個具體實施場景,但是,本申請并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本申請的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1