訊息佇列 (也稱為 MSMQ) 是為 Microsoft Windows 建立分散式訊息應用程式的訊息基礎架構和開發工具。針對訊息佇列而開發的應用程式會將訊息傳送到佇列 (也是暫存位置),其中,可在情況允許時將訊息傳送到最後的目的地。此類的應用程式可透過性質相異的網路進行通訊,或是在暫時可能無法與另一台電腦連線的電腦之間傳送訊息。訊息佇列可提供下列好處:

  • 保證能夠傳遞訊息

  • 有效的路由

  • 改善的安全性

  • 支援在交易中傳送訊息

  • 按優先順序進行訊息傳遞

具備這些功能的軟體產品在產業中通常稱為:

  • 訊息佇列軟體

  • 儲存並轉送軟體

  • 訊息導向的中介軟體

使用者可以利用訊息佇列來跨網路進行通訊,並與可能暫時離線的電腦通訊,不論網路和電腦目前的狀態為何。系統管理員可以使用訊息佇列,有效地管理電腦的大型複雜網路和訊息佇列。

本主題說明訊息佇列中的可用功能。

訊息佇列伺服器

此功能是訊息佇列的核心元件,它可讓您執行基本的訊息佇列功能。如需訊息佇列伺服器功能的相關資訊,請參閱<什麼是訊息佇列>(https://go.microsoft.com/fwlink/?LinkId=93512 (可能為英文網頁))。

目錄服務整合

此功能可將佇列內容發佈到 Active Directory、使用 Active Directory 中登錄的憑證來驗證並加密訊息,以及跨站台間路由傳送訊息。如需目錄服務整合功能的相關資訊,請參閱<目錄服務整合功能>(https://go.microsoft.com/fwlink/?LinkId=93513 (可能為英文網頁))。

訊息佇列觸發程序

此功能可根據您針對指定佇列中之傳入訊息所定義的篩選器,叫用 COM 元件或可執行檔。如需訊息佇列觸發程序功能的相關資訊,請參閱<觸發程序概觀>(https://go.microsoft.com/fwlink/?LinkId=93514 (可能為英文網頁))。

HTTP 支援

此功能可以透過 HTTP 傳送和接收訊息。如需 HTTP 支援功能的相關資訊,請參閱<網際網路訊息>(https://go.microsoft.com/fwlink/?LinkId=93515 (可能為英文網頁))。

多點傳送支援

此功能可將多點傳送訊息佇列和傳送到多點傳送 IP 位址。如需多點傳送支援功能的相關資訊,請參閱<IP 多點傳送>(https://go.microsoft.com/fwlink/?LinkId=93516 (可能為英文網頁))。

路由服務

此功能可在不同站台或單一站台內路由傳送訊息。如需路由服務功能的相關資訊,請參閱<訊息佇列路由>(https://go.microsoft.com/fwlink/?LinkId=93517 (可能為英文網頁))。

訊息佇列 DCOM Proxy

此功能讓 MSMQ DCOM API 可以連線到遠端訊息佇列伺服器。

子佇列

這個功能可讓您以邏輯方式將佇列中的訊息分組,而不需要建立其他的實體佇列。子佇列是以隱含方式建立的本機佇列,而這類佇列是實體佇列的邏輯磁碟分割。應用程式可以使用子佇列將訊息分組。

移動訊息

您可以使用下列三種方法來移動訊息:

  • 使用 [移動訊息] 對話方塊。

  • 執行剪下和貼上操作。

  • 執行拖放操作。

您可以在同一個主要佇列的子佇列之間移動佇列,或是從主要佇列移動到子佇列中。您無法將主要佇列中的訊息移到另一個主要佇列的子佇列,也無法在兩個主要佇列之間,或是在分屬不同主要佇列的兩個子佇列之間移動訊息。

訊息會以原樣從來源佇列傳送到目標佇列。訊息內容會維持不變,但目前的移動計數除外。

每一應用程式無法傳送的信件佇列

Message Queuing 4.0 引進每一應用程式無法傳送的信件佇列,讓每個應用程式都可以使用自己的無法傳送的信件佇列。應用程式會使用 PROPID_M_DEADLETTER_QUEUE 屬性做為訊息的一部分,以要求自己的無法傳送的信件佇列。訊息並不會傳送到系統交易式無法傳送的信件佇列,而是會傳送到 PROPID_M_DEADLETTER_QUEUE 屬性中指定的佇列。

PROPID_M_DEADLETTER_QUEUE 可設定為交易式佇列的任何合法路徑。交易式佇列對於會將負認可訊息 (NACK) 訊息移動到佇列中的佇列管理員而言,必須是本機的。<佇列路徑名稱>(https://go.microsoft.com/fwlink/?LinkId=69583 (可能為英文網頁)) 會定義合法的路徑。

交易式遠端接收

交易式遠端接收是指以交易方式接收遠端佇列中的訊息。下列是必須有交易式遠端接收的案例。例如,必須在應用程式伺服器陣列之間處理來自遠端中央佇列的工作順序時,交易式遠端接收就會處理訊息,以達到跨伺服器陣列的負載平衡。

處理大量訊息佇列的佇列之能力

Message Queuing 5.0 引進下列新的功能,並與 Windows 7 和 Windows Server 2008 R2 同時發行:

Message Queuing 5.0 提供功能,以處理遠多於 Message Queuing 4.0 的佇列數。雖然 Message Queuing 4.0 並未特別限制可以建立的佇列數,但是如果建立幾千個佇列,則會嚴重影響效能。尤其是因為使用的佇列查閱演算法而必須將超大量的佇列載入記憶體時,Message Queuing 4.0 服務的啟動時間就會大幅增加。Message Queuing 5.0 在啟動時使用的佇列查閱演算法已經過最佳化,明顯改善 Message Queuing 在系統上裝載超大量的佇列時的啟動效能。

其他參考資料