我需要使用MSMQ(Microsoft消息隊列)。它是什麼,它是什麼,它是如何工作的?它與Web服務有什麼不同?什麼是Microsoft消息隊列(MSMQ)?它是如何工作的?
回答
正如其名稱所示,它只是一個隊列管理器。
您可以將對象(序列化)發送到它們將保留的隊列,直到您接收它們。 它通常用來發送應用程序之間的信息或對象處於分離的方式
它無關的Web服務,它們是兩個不同的東西
信息上MSMQ:
https://msdn.microsoft.com/en-us/library/ms711472(v=vs.85).aspx
Info on WebServices:
對@ Juan的回答充分尊重,都是在兩者之間交換數據的方式兩個斷開的過程,即進程間通信信道(IPC)。消息隊列是異步的,而Web服務是同步的。他們使用不同的協議和後端服務來執行此操作,因此它們在實現上完全不同,但目的相似。
當可能有其他通信過程可能不可用的情況下,您希望使用消息隊列,但您仍然希望在客戶端選擇時發送消息。當另一端的進程被喚醒並接收到消息到達的通知時,交付將發生。
感謝尊重=) 我將MSMQ作爲一種將應用程序發送到應用程序的方式,而不需要響應爲其他應用程序傳遞數據以執行任何想要的操作,並將Web服務作爲「調用遠程函數」的參數和結果,我使用這些函數具體目的 – juan 2008-12-30 12:26:39
請注意,您可以使用Windows Communication Foundation(WCF)作爲MSMQ上的抽象層。這給你一種使用服務的感覺 - 只有單向操作。
有關詳細信息,請參見: http://msdn.microsoft.com/en-us/library/ms789048.aspx
--larsw
事務隊列管理101
一個事務隊列是一箇中間件系統的一個排序之間的另一個的異步消息路由在任何給定時間可能連接或可能不連接的主機。這意味着它也必須能夠將消息保存在某個地方。這樣的系統的示例是MSMQ和IBM MQ
交易隊列也可以參與distributed transaction,並且回滾可以觸發消息的處理。這意味着如果未回滾,則保證將以at-most-once語義或保證投遞傳遞消息。該消息將不會傳遞,如果:
主機A帖子 未連接
東西(可能但不是必然 從主機A發起)消息,但主機B 回滾事務
B連接後的交易 回滾
在這種情況下,B將永遠不會意識到該消息甚至存在,除非通過其他介質通知。如果事務回滾了,這可能沒有關係。如果B在事務回滾之前連接並收集消息,則回滾還將反轉消息對B的影響。
請注意,A可以將消息發佈到隊列中,保證最多一次交貨。如果事務已提交,則主機A可以認爲該消息已被delivered by the reliable transport medium.如果事務回滾,則主機A可以認爲消息的任何影響已被逆轉。
Web服務
Web服務是remote procedure call或其他服務(例如RESTFul API's)由(通常)HTTP服務器發佈。它是一個同步的請求/響應協議,並不保證內置到協議中。客戶端需要驗證服務是否已正確運行。通常這將通過對呼叫的請求或超時的回覆。
在後一種情況下,Web服務不保證最多一次的語義。服務器可以完成服務並且無法提供響應(可能通過服務器外部的某些內容出錯)。應用程序必須能夠處理這種情況。
IIRC,REST風格的服務應該是冪等的(相同的狀態是任何數量的同一服務的調用後實現),這是對付這種缺乏成功的保證通知/失敗的Web服務架構的策略。這個想法是在概念上寫一個狀態而不是調用服務,所以可以寫任意次數。這意味着應用程序可以容忍缺乏關於成功的反饋,因爲它可以重新嘗試發佈,直到它從服務器獲得「成功」消息。
正如大家所解釋的,MSMQ被用作消息隊列。消息可以封裝實際的數據,對象和任何可以串行化並通過線路發送的內容。 MSMQ有其自身的侷限性。 MSMQ 1.0和MSMQ 2.0具有4MB的消息限制。 MSMQ 3.0解除了這個限制。面向消息的中間件(MOM)是一個很大程度上依賴於消息傳遞的概念。企業服務總線基礎建立在消息傳遞上。所有這些新技術都依賴於消息傳遞來提供可靠的異步數據傳輸。
其實MSMQ和WebService沒有關係。 使用MSMQ進行進程間通信(您也可以使用套接字,Windows消息傳遞,映射內存)。 它是一個Windows服務,負責保存消息,直到有人出列它們。 你可以說它比插座更可靠,因爲消息存儲在硬盤上,但比其他IPC技術慢。
您可以用小的代碼行DOTNET使用MSMQ,只是聲明你MessageQueue
對象,並調用Receive
和Send
方法。消息本身可以是正常的字符串或二進制數據。
MSMQ代表Microsoft Messaging Queue。
它只是將消息以合成的方式存儲以便它可以傳遞到DB的隊列(可以在同一臺機器上或服務器上)。在那裏有不同類型的隊列將消息分類。如果消息中有某個問題/錯誤或者無效消息被自動傳遞給Dead隊列,表示它沒有進一步處理。但是,在將消息傳遞給死隊列之前,它會重試最大計數,直到它不處理,然後將其發送到死隊列。它通常用於從客戶機向服務器或數據庫發送日誌消息,以便在客戶機上發生任何問題時,開發人員或支持團隊可以通過日誌解決問題。 MSMQ是由Microsoft提供的用於獲取日誌文件記錄並易於使用日誌文件獲取解決方案的服務。 你從這個博客http://msdn.microsoft.com/en-us/library/ms711472(v=vs.85).aspx
MSMQ-微軟消息隊列得到更好的主意: •MSMQ是由微軟開發的一個消息隊列實現。 •它部署在Windows Server操作系統中。 •它是一種消息傳遞協議,允許在單獨的服務器/進程上運行的應用程序以故障安全方式進行通信。 •MSMQ通常用於企業建立的軟件。 •MSMQ通過將無法到達其預定目的地的消息放入隊列中,然後在目標可達時重新發送它們來確保可靠傳遞。 •MSMQ也支持事務。它允許在多個隊列上執行多個操作,並將所有操作包裝在單個事務中,從而確保全部操作或全部操作都不會生效。 •消息隊列(MSMQ)技術使處於不同時間運行的應用程序能夠跨臨時脫機的異構網絡和系統進行通信。 下列端口用於Microsoft消息隊列操作: •TCP:1801 •RPC:135,2101 *,2103 *,2105 * •UDP:3527,1801
- 1. 是否有任何免費庫實現類似於MSMQ(Microsoft消息隊列)的消息隊列?
- 2. 監視MSMQ消息隊列
- 3. 如何查看出站MSMQ消息隊列中的消息?
- 4. Microsoft消息隊列。它是否被棄用?
- 5. MSMQ作爲工作隊列
- 6. 步驟來安裝Microsoft消息隊列(MSMQ)ActiveX?
- 7. iOS/iPad的消息隊列 - 類似MSMQ?
- 8. 編輯隊列中的MSMQ消息
- 9. .net不是MSMQ的消息隊列解決方案
- 10. 爲什麼消息放入死信隊列(MSMQ)?
- 11. MSMQ 4.0:消息隊列大小是否已被刪除?
- 12. MSMQ私人隊列消息丟失
- 13. MSMQ:遠程消息隊列訪問
- 14. MSMQ發送消息到遠程隊列
- 15. MSMQ - 消息隊列抽象和模式
- 16. MSMQ死信隊列消息恢復
- 17. Jenkins的種子工作是什麼?它是如何工作的?
- 18. 什麼是IOR文件,它是做什麼的,它是如何工作的?
- 19. 什麼是延遲後臺工作?它是如何工作的?
- 20. 消息如何從msmq中的毒隊列中清除
- 21. MSMQ:消息隊列服務不可用。錯誤消息
- 22. 什麼是單機最快的Perl IPC /消息隊列?
- 23. 什麼是好的SaaS消息隊列系統?
- 24. Microsoft WebMatrix:它是什麼?
- 25. PreparedStatement緩存 - 它是什麼意思(它是如何工作的)
- 26. Ext.net PageProxy:它是什麼,它是如何工作的?
- 27. 如何將msmq消息移動到子隊列中
- 28. Spring異常消息?它是什麼?
- 29. Microsoft消息隊列ReceiveCompleted事件
- 30. 消息從MSMQ隊列中出列時是否引發了一個事件?
上MSMQ上面的鏈接沒有工作(重定向到一些一般信息頁面),但這個網址爲我工作https://msdn.microsoft.com/en-us/library/ms711472(v=vs.85).aspx – 2015-11-30 11:51:51