freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)交換平臺(tái)中消息中間件的研究與實(shí)現(xiàn)碩士論-資料下載頁

2025-01-06 06:55本頁面
  

【正文】 中應(yīng)用程序數(shù)據(jù)屬性和消息體。消息頭攜帶了消息在消息系統(tǒng)中傳送時(shí)所需 要的 信息,包含對(duì)消息的一個(gè)宏觀描述,對(duì)于消息的正確發(fā)送和接受至關(guān)重要。 I 應(yīng)用程序數(shù) I 消息頭 消息屬性 消息體 I 據(jù)屬性 圖 3. 2 消息示意圖 1)消息頭包含的信息如下: 消息標(biāo)識(shí)符:消息標(biāo)識(shí)符在消息系統(tǒng)中唯一地標(biāo)識(shí)了一條消息,消息生產(chǎn)者 負(fù)責(zé)創(chuàng)建消息的標(biāo)識(shí)符,并且保證其全局唯一。消息標(biāo)識(shí)符可以使消息代理能夠 檢測出重復(fù)的消息,并根據(jù)是否正確處理此消息決定是否丟棄當(dāng)前重復(fù)消息。消 息標(biāo)識(shí)符用一個(gè) long 類型的變量表示。 消息目的地址:每條消息都有 一個(gè)目的地,該目的地與一個(gè)消息隊(duì)列相關(guān)聯(lián)。 該地址標(biāo)識(shí)了消息最終到達(dá)的地點(diǎn),此消息的消費(fèi)者就在對(duì)應(yīng)的目的地消費(fèi)消息。 消息目的地用一個(gè) String 類型的變量表示。 消息的類型:根據(jù)消息的用途將消息分為三類,一類用于傳達(dá)遠(yuǎn)程方法調(diào)用 這種指令,本文稱之為指令消息,一類用于傳送普通業(yè)務(wù)數(shù)據(jù),本文稱之為數(shù)據(jù) 消息,另一類用于傳送文件的通知消息,本文稱之為文件消息。消息類型用一個(gè) 枚舉類型的變量表示。 消息的優(yōu)先級(jí):有些消息需要比其它消息更早地發(fā)送出去,否則會(huì)失去意義, 因此我們給每條消息設(shè)置一個(gè)優(yōu) 先級(jí),優(yōu)先級(jí)高的消息比優(yōu)先級(jí)低的消息優(yōu)先被 發(fā)送、投遞出去。優(yōu)先級(jí)用一個(gè) byte 類型的變量表示,取值范圍為整數(shù) 0 到 9, 分別代表從低到高的 lO 個(gè)優(yōu)先級(jí)。 , n 東華大學(xué)碩士研究生學(xué)位論文 消息的存活時(shí)間:我們給每條消息設(shè)定一個(gè)存活時(shí)間,消息在存活時(shí)間被認(rèn) 為是有效的消息,超過存活時(shí)間的消息被認(rèn)為是無效的,將會(huì)被刪除。消息存活 時(shí)間用一個(gè) long 類型的變量表示。 消息的時(shí)間戳:我們?cè)谛陆ㄒ粭l消息時(shí)給新建的消息設(shè)置一個(gè)時(shí)間戳,記錄 消息創(chuàng)建的時(shí)間,隨后消息系統(tǒng)就能知道消息到目前為止已產(chǎn) 生多長時(shí)間,進(jìn)而 可以判斷消息是否還有有效。消息的時(shí)間戳用一個(gè) long 類型的變量來表示。 2)消息屬性 消息屬性用于描述一種與具體類型的消息 (指令消息、數(shù)據(jù)消息、文件消息 中的一種 )相關(guān)的信息。 3)消息中應(yīng)用程序數(shù)據(jù)屬性 消息屬性是應(yīng)用程序創(chuàng)建消息時(shí)給消息設(shè)置的與業(yè)務(wù)數(shù)據(jù)相關(guān)的屬性值,每 一個(gè)屬性用一個(gè)鍵值對(duì)表示。每個(gè)屬性的鍵為字符串類型,即 String 類型,屬性 的值的類型可以為布爾類型 Boolean,字節(jié)類型 Byte,字節(jié)數(shù)組類型 Byte[1,短 整型 Short,整形 Integer, 長整型 Long,浮點(diǎn)型 Float,雙精度浮點(diǎn)型 Double, 字符串類型 String。 4)消息體 消息體是應(yīng)用程序需要發(fā)送的應(yīng)用程序數(shù)據(jù),是整個(gè)消息的負(fù)載,也是整個(gè) 消息的核心數(shù)據(jù),消息體用一個(gè)字節(jié)數(shù)組 Byte 口來表示。在創(chuàng)建消息時(shí),任何結(jié) 構(gòu)化的業(yè)務(wù)數(shù)據(jù)都先編碼成一個(gè)字節(jié)數(shù)據(jù),然后將字節(jié)數(shù)組復(fù)制到消息體中。 表 3. 1和 3. 2 分別列出了具體類型消息中的數(shù)據(jù)消息和文件消息的消息屬性 名稱、消息屬性類型以及該屬性的作用。 表 3. 1 數(shù)據(jù)消息■性 屬性名稱 類型 作用 dataType String 描述數(shù)據(jù)類型 encoding String 描述數(shù)據(jù)編碼類型 表 3. 2 文件洧息晨性 屬性名稱 類型 作用 srcldentifior String 文件發(fā)送方節(jié)點(diǎn)名稱 centerldentifier String 文件轉(zhuǎn)發(fā)方節(jié)點(diǎn)名稱 destldentifier String 文件接受方節(jié)點(diǎn)名稱 filename String 文件名稱 東華大學(xué)碩士研究生學(xué)位論文 filesize Long 文件大小 fileChecksum String 文件消息摘要 sendFilePath String 待發(fā)送文件路徑 receivedFilePath String 已接受文件路徑 消息類層次圖如圖 3. 3 所示,抽象消息類定義了三種具體類型的消息的共同 的東西。指令消息類繼承自抽象消息類,添加了指令消息特定的消息屬性,用于 分布式系統(tǒng)之間傳送指令。數(shù)據(jù)消息類繼承自抽象消息類,添加了數(shù)據(jù)消息類特 定的消息屬性,用于分布式系統(tǒng)之間傳送業(yè)務(wù)數(shù)據(jù)。文件消息類繼承自抽象消息 類,添加了文件消息類特定的屬性,用于分布式系統(tǒng)之間傳送文件傳輸請(qǐng)求消息 或文件傳輸己完成消息 。 圖 3. 3 消息類層次圖 3. 2. 3 消息生產(chǎn)者 消息生產(chǎn)者負(fù)責(zé)消息的創(chuàng)建。應(yīng)用程序需要發(fā)送消息時(shí),首先要確保消息代 理已經(jīng)啟動(dòng)并就緒,然后獲取消息代理類的實(shí)例。消息代理服務(wù)類實(shí)例采用單實(shí) 例模式,即程序運(yùn)行過程中只有一個(gè)消息代理類實(shí)例。取得消息代理類實(shí)例后, 通過消息代理類實(shí)例創(chuàng)建出消息生產(chǎn)者。消息生產(chǎn)者是一個(gè)工廠類,負(fù)責(zé)各種具 體類型的消息的原型創(chuàng)建。因?yàn)樯a(chǎn)者創(chuàng)建出的消息只是設(shè)置好了消息頭,消息 的其它部分如消息屬性,應(yīng)用程序特定的屬性,消息體需要應(yīng)用程序代碼完成 設(shè) 置。應(yīng)用程序發(fā)送一條消息的處理流程如圖 3. 4 所示。消息生產(chǎn)者是一個(gè)工廠類, 具有三個(gè)工廠方法,分別對(duì)應(yīng)指令消息、數(shù)據(jù)消息和文件消息。創(chuàng)建消息的三個(gè) 工廠方法代碼如下: 砒方法創(chuàng)建出一條指令消息的方法接口。 CommandMessage createCommandMessage(String Address); //此方法創(chuàng)建一條數(shù)據(jù)消息的方法接口。 DataMessagc createDataMessage(String Address); /,此方法創(chuàng)建一條文件消息的方法接口。 FileMessage crcatcFileMessage(String Address); 獲取消息代理服務(wù)類實(shí)例 上 從消息代理服務(wù)類實(shí)例創(chuàng)建消息生產(chǎn)者 、 L 使用消息生產(chǎn)者創(chuàng)建消息 土 I使用消息生產(chǎn)者推送消息到本地消息發(fā)送地址 3. 2. 4 消息消費(fèi)者 消息消費(fèi)者是消息的最終歸宿點(diǎn)。消息消費(fèi)者負(fù)責(zé)從指定消息隊(duì)列中取出消 息,然后將消息交給應(yīng)用程序處理。消息消費(fèi)者獲取消息的方式分為主動(dòng)輪詢方 式、阻塞調(diào)用方式和消息監(jiān)聽方式三種。主動(dòng)輪詢方式中,消息消費(fèi)者定期查詢 消息隊(duì)列是否已經(jīng)收到消息,如果收到消息,則取出消息,交給應(yīng)用程序處理, 否則,立即或者睡眠一段時(shí)間再去輪詢消息隊(duì)列,如此往復(fù)。主動(dòng)輪詢方式的一 個(gè)最大缺點(diǎn)是會(huì)在消息較少的情況下浪費(fèi)很多資源做一些無用功。主動(dòng)輪詢方式 的工作流程圖如圖 3. 5 所示,應(yīng)用程序先取得消息服務(wù)類實(shí)例,此消息服務(wù)類實(shí) 例與消息生產(chǎn)者中一樣,也是單實(shí)例模式,及整個(gè)應(yīng)用程序中只存在一個(gè)實(shí)例。 取得消息服務(wù)類實(shí)例后,通過消息服務(wù)類實(shí)例創(chuàng)建一個(gè)消息消費(fèi)者,然后消息消 費(fèi)者不斷輪詢對(duì)應(yīng)接收地址時(shí)候有消息,直到收到消息為止。 東華大學(xué)碩士研究生學(xué)位論文 圖 3. 5 輪詢方式接受消息 輪詢方式的一個(gè)變種為阻塞方式,就是消費(fèi)者調(diào)用獲取消息方法后,不像輪 詢方式那樣,不管有沒有消息,都返回,而是一直阻塞調(diào)用,直到有消息時(shí)才返 回。這種方式的一個(gè)缺點(diǎn)就是消息消費(fèi)者會(huì)阻塞應(yīng)用。 消息監(jiān)聽方式與前面兩種都不同,消息消費(fèi)者并不主動(dòng)去獲取消息,而是在 特定地址的消息接收隊(duì)列注冊(cè)一個(gè)消息監(jiān)聽器,消息接收隊(duì)列一旦收到消息立馬 通知消息監(jiān)聽器,即調(diào)用監(jiān)聽器的方法。應(yīng)用程序在監(jiān)聽器中的 onMessage 方法 中實(shí)現(xiàn)具體的業(yè)務(wù)邏輯。這種方法的一個(gè)好處就是,只有真正有消息時(shí)才會(huì)觸發(fā) 應(yīng)用的代碼執(zhí)行。消息監(jiān)聽器的接口如下面代碼所示: r, ubiie巹磚 si 黼晦薛 i 辯矗赫{(diào)一 一 j;爹 _I≯|} “| 臌收割 _條消患后作也反應(yīng) i j; l vOid onMessage(AbstractMessage message); 一 ■ 0 ≯ _||__i。; _|o : 3. 3消息地址與隊(duì)列 消息地址是消息的一個(gè) 目的地。一條消息在其生命周期內(nèi)在消息系統(tǒng)中從一 個(gè)地址轉(zhuǎn)移到另一個(gè)地址。當(dāng)一條消息被消息消費(fèi)者消費(fèi)或者從被創(chuàng)建開始已經(jīng) 存在的時(shí)間超過消息最大生存時(shí)間而失效時(shí),消息從對(duì)應(yīng)地址被刪除。 3. 3. 1 消息地址 24 _______●_____________●_● 一 _. ●●———奎 I竺 奎 蘭 ———————————堡主堡壅 一一 圭蘭篁笙莖 —— 消息地址按用途可以分為發(fā)送地址、接收地址、中轉(zhuǎn)地址。 1)發(fā)送地址 發(fā)送地址,是指消息發(fā)送時(shí)進(jìn)入的地址,發(fā)送地址的消息將會(huì)由 消息發(fā)送器 發(fā)送出去,消息可能被發(fā)送到一個(gè)接收地址,也可能被發(fā)送到一個(gè)中轉(zhuǎn)地址。發(fā) 送地址一般由消息生產(chǎn)者使用,消息生產(chǎn)者將消息推入本地的發(fā)送隊(duì)列,此后該 隊(duì)列的發(fā)送器將會(huì)將該消息投遞到對(duì)應(yīng)的目的隊(duì)列。 2)接收地址 接收地址,是指消息被接收時(shí)進(jìn)入的地址,消息接收器從網(wǎng)絡(luò)上收到一條消 息后根據(jù)其目的地址決定消息進(jìn)入到哪個(gè)接收地址。消息消費(fèi)從對(duì)應(yīng)的消息接收 地址消費(fèi)消息。 3)中轉(zhuǎn)地址 中轉(zhuǎn)地址,是指消息中轉(zhuǎn)時(shí)進(jìn)入的地址,消息只是在此中轉(zhuǎn),這里并不是消 息的最終目的地。消息接收者根據(jù)其消息的目 的地址為哪個(gè)中轉(zhuǎn)地址將消息進(jìn)入 到對(duì)應(yīng)的中轉(zhuǎn)地址。中轉(zhuǎn)地址的消息發(fā)送器從中轉(zhuǎn)地址取出消息,然后將其投遞 到最終目的地。 3. 3. 2 隊(duì)列 隊(duì)列是消息的實(shí)際存放地點(diǎn)。隊(duì)列按用途可以分為發(fā)送隊(duì)列和接收隊(duì)列。發(fā) 送隊(duì)列位于消息生產(chǎn)者所在節(jié)點(diǎn),接收隊(duì)列位于消息消費(fèi)者所在節(jié)點(diǎn)。發(fā)送隊(duì)列 是接收隊(duì)列的一個(gè)影子隊(duì)列,即從邏輯上看,消息生產(chǎn)者將消息放入發(fā)送隊(duì)列即 相當(dāng)于消息生產(chǎn)者將消息放入其對(duì)應(yīng)的接收隊(duì)列,消息消費(fèi)者從接收隊(duì)列接收消 息。消息發(fā)送器負(fù)責(zé)將消息從接收隊(duì)列的影子隊(duì)列發(fā)送到接收隊(duì)列。每個(gè)地址與 一個(gè)發(fā)送隊(duì)列和一個(gè)接收隊(duì)列相關(guān)聯(lián)。消息生產(chǎn)者根據(jù)消息地址將消息放入對(duì)應(yīng) 的發(fā)送隊(duì)列,消息消費(fèi)者根據(jù)地址從接收隊(duì)列獲取消息。 3. 4消息發(fā)送器 消息發(fā)送隊(duì)列的消息發(fā)送器負(fù)責(zé)從發(fā)送隊(duì)列中取出消息通過網(wǎng)絡(luò)投遞到目 的地。每個(gè)消息發(fā)送隊(duì)列一個(gè)消息發(fā)送器,消息發(fā)送器的生命周期與消息發(fā)送隊(duì) 列直接相關(guān)。消息發(fā)送器隨著消息發(fā)送隊(duì)列的創(chuàng)建而創(chuàng)建,創(chuàng)建之后根據(jù)消息發(fā) 送隊(duì)列找到相應(yīng)的節(jié)點(diǎn)唯一標(biāo)識(shí),然后根據(jù)節(jié)點(diǎn)唯一標(biāo)識(shí)找到連接器配置信息。 消息發(fā)送器根據(jù)連接器配置信息創(chuàng)建網(wǎng)絡(luò)連接器,建立與消息發(fā)送隊(duì)列對(duì)應(yīng)的遠(yuǎn) 程消息接收隊(duì)列所在節(jié)點(diǎn)的網(wǎng)絡(luò)連接,建立好網(wǎng)絡(luò)連接后啟動(dòng)會(huì)話,啟動(dòng)會(huì)話成 功后,消息發(fā)送器就開始從消息發(fā)送隊(duì)列中取出消息,依次將其發(fā)送到消息發(fā)送 服務(wù)器發(fā)送一個(gè)會(huì)話創(chuàng)建響應(yīng)數(shù)據(jù)包給客戶端,客戶端收到會(huì)話響應(yīng)數(shù)據(jù)包后, 在客戶端也建一個(gè)與此會(huì)話通道相關(guān)的會(huì)話對(duì)象。如果一切正常,至此,客戶端 與服務(wù)器端的會(huì)話建立成功。 會(huì)話創(chuàng)建響應(yīng)數(shù)據(jù)包的字段內(nèi)容如表 3. 4 所示。 表 3. 4 會(huì)話刨建響應(yīng)數(shù)據(jù)包 字段 類型 作用 Version $1ring 服務(wù)器支持的協(xié)議版本號(hào) 3)數(shù)據(jù)發(fā)送 數(shù)據(jù)包 數(shù)據(jù)發(fā)送數(shù)據(jù)包,用于承載實(shí)際的消息數(shù)據(jù),消息發(fā)送器將消息編碼成一個(gè) 字節(jié)數(shù)組后,將這個(gè)字節(jié)數(shù)組作為數(shù)據(jù)發(fā)送數(shù)據(jù)包的數(shù)據(jù)包體。 數(shù)據(jù)發(fā)送數(shù)據(jù)包的字段內(nèi)容如表 3. 5 所示。 表 3. 5 數(shù)據(jù)發(fā)送數(shù)據(jù)包 字段 類型 作用 Message Message 持有要發(fā)送的消息 4)數(shù)據(jù)發(fā)送確認(rèn)數(shù)據(jù)包 為了保證數(shù)據(jù)包傳輸?shù)目煽啃?,服?wù)器收到數(shù)據(jù)包后,需要確認(rèn)那些數(shù)據(jù)包 已經(jīng)收到。 數(shù)據(jù)發(fā)送確認(rèn)數(shù)據(jù)包的字段如表 3. 6 所示。 表 3. 6 數(shù)據(jù)發(fā)送確認(rèn)數(shù)據(jù)包 字段 類型 作用 SequencelD Long 指示 SequenceID 之前的數(shù)據(jù)包都已收到 5)會(huì)話關(guān)閉數(shù)據(jù)包 客戶端想關(guān)閉會(huì)話時(shí),向服務(wù)器發(fā)送一個(gè)會(huì)話關(guān)閉數(shù)據(jù)包,服務(wù)器收到會(huì)話 關(guān)閉數(shù)據(jù)包后,清除所有此會(huì)話相關(guān)的資源。然后回應(yīng)一個(gè)會(huì)話關(guān)閉響應(yīng)數(shù)據(jù)包 給客戶端。 6)會(huì)話關(guān)閉響應(yīng)數(shù)據(jù)包 客戶端發(fā)送一個(gè)會(huì)話關(guān)閉數(shù)據(jù)包后,服務(wù)器關(guān)閉好會(huì)話后,給客戶端發(fā)送會(huì) 話己關(guān)閉的響應(yīng)數(shù)據(jù)包,通知客戶端服務(wù)器端會(huì)話已關(guān)閉,客戶端收到此響應(yīng)后, 將客戶端會(huì)話也關(guān)閉。 28 3. 7客戶端會(huì)話 客戶端會(huì)話是客戶端與服務(wù)器端建立連接后,通 過發(fā)送一個(gè)會(huì)話創(chuàng)建數(shù)據(jù)包, 服務(wù)器收到一個(gè)會(huì)話創(chuàng)建數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1