MSMQ

Message Queue(微軟訊息佇列)是在多個不同的套用之間實現相互通信的一種異步傳輸模式,相互通信的套用可以分布於同一台機器上,也可以分布於相連的網路空間中的任一位置。它的實現原理是:訊息的傳送者把自己想要傳送的信息放入一個容器中(我們稱之為Message),然後把它保存至一個系統公用空間的訊息佇列(Message Queue)中;本地或者是異地的訊息接收程式再從該佇列中取出發給它的訊息進行處理。

簡介

Message Queue(微軟訊息佇列)是在多個不同的套用之間實現相互通信的一種異步傳輸模式,相互通信的套用可以分布於同一台機器上,也可以分布於相連的網路空間中的任一位置。它的實現原理是:訊息的傳送者把自己想要傳送的信息放入一個容器中(我們稱之為Message),然後把它保存至一個系統公用空間的訊息佇列(Message Queue)中;本地或者是異地的訊息接收程式再從該佇列中取出發給它的訊息進行處理。

實質

在訊息傳遞機制中,有兩個比較重要的概念。一個是訊息,一個是 佇列。訊息是由通信的雙方所需要傳遞的信息,它可以是各式各樣的媒體,如文本、聲音、圖象等等。訊息最終的理解方式,為訊息傳遞的雙方事先商定,這樣做的好處是,一是相當於對 數據進行了簡單的加密,二則採用自己定義的格式可以節省通信的傳遞量。訊息可以含有傳送和接收者的標識,這樣只有指定的用戶才能看到只傳遞給他的信息和返回是否操作成功的回執。訊息也可以含有 時間戳,以便於接收方對某些與時間相關的套用進行處理。訊息還可以含有到期時間,它表明如果在指定時間內訊息還未到達則作廢,這主要套用與時間性關聯較為緊密的套用。

訊息佇列是傳送和接收訊息的公用 存儲空間,它可以存在於記憶體中或者是物理檔案中。訊息可以以兩種方式傳送,即快遞方式(express)和可恢復模式(recoverable),它們的區別在於,快遞方式為了訊息的快速傳遞,把訊息放置於記憶體中,而不放於 物理磁碟上,以獲取較高的處理能力;可恢復模式在傳送過程的每一步驟中,都把訊息寫入物理磁碟中,以得到較好的故障恢復能力。 訊息佇列可以放置在傳送方、接收方所在的機器上,也可以單獨放置在另外一台機器上。正是由於 訊息佇列在放置方式上的靈活性,形成了 訊息傳送機制的可靠性。當保存 訊息佇列的機器發生故障而重新啟動以後,以可恢復模式傳送的訊息可以恢復到故障發生之前的狀態,而以快遞方式傳送的訊息則丟失了。另一方面,採用訊息傳遞機制,傳送方不必要再擔心接收方是否啟動、是否發生故障等等非必要因素,只要訊息成功傳送出去,就可以認為處理完成,而實際上對方可能甚至未曾開機,或者實際完成交易時可能已經是第二天了。

作用

採用MSMQ帶來的好處是:由於是異步通信,無論是傳送方還是接收方都不用等待對方返回成功訊息,就可以執行餘下的代碼,因而大大地提高了事物處理的能力;當信息傳送過程中,信息傳送機制具有一定功能的故障恢復能力;MSMQ的訊息傳遞機制使得訊息通信的雙方具有不同的物理平台成為可能。

在 微軟的.net平台上利用其提供的MSMQ功能,可以輕鬆創建或者刪除 訊息佇列、傳送或者接收訊息、甚至於對訊息佇列進行管理。

相關搜尋

熱門詞條

聯絡我們