訊息佇列軟體產品大比拼(轉)

來源:互聯網
上載者:User

標籤:http   使用   java   ar   strong   資料   art   sp   問題   

轉自:外刊IT評論

我花了一周的時間評估比較了一下各種訊息佇列產品,非常的有趣。我做這個事的動機是因為一個客戶有一個很高效能需求。他們的訊息資訊突破了1百萬個並發。目前他們使用的是SQL server,並不理想,我建議他們使用訊息佇列伺服器。

為了對一些相似的候選產品獲得一個全面的但是粗淺的效能上的瞭解,我們它們放在一起做了個測試。我讓每個訊息產品各發送和接受1百萬千條1K的訊息。測試準備的有些倉促,我並沒有修改任何的配置,只是快速的看了一下它們的安裝文檔,安裝好每種軟體,然後就讓它們做這些最簡單的收發資訊的操作。所以這是一次真正的“開箱即裝即用”的效能表現。我完全理解,這對那些初始配置十分保守的訊息佇列產品將會是個懲罰。

候選產品有:

  • MSMQ.
    這是微軟的產品裡唯一被認為有價值的東西。對我的客戶來說,如果MSMQ能證明可以應對這種任務,他們將選擇使用它。關鍵是這個東西並不複雜,除了接收和發送,沒有別的;它有一些硬性限制,比如最大訊息體積是4MB。然而,通過和一些像MassTransit 或 NServiceBus這樣的軟體的串連,它完全可以解決這些問題。
  • ActiveMQ.
    Java世界的中堅力量。它有很長的曆史,而且被廣泛的使用。它還是跨平台的,給那些非微軟平台的產品提供了一個天然的整合存取點。然而,它只有跑過了MSMQ才有可能被考慮。
  • RabbitMQ.
    我聽說了很多關於這個用Erlang寫成的訊息中介軟體的優秀的特性。它支援開放的進階訊息佇列協議 (AMQP,Advanced Message Queuing Protocol),從根本上避免了生產廠商的封閉,使用任何語言的各種客戶都可以從中受益。這種協議提供了相當複雜的訊息傳輸模式,所以基本上不需要MassTransit 或 NServiceBus 的配合。它還具有“企業級”的適應性和穩定性。這些東西對我的客戶來說十分的有吸引力。
  • ZeroMQ.
    我在研究AMQP時從發現了這個產品。開發這個產品的公司是AMQP集團的一部分,並且還有一個叫做OpenAMQ的產品。然而,他們卻戲劇性的從AMQP分離的出去,並抱怨說這這個產品迷失了方向、變的越來越複雜。你可以到這裡閱讀Dear John的關於此事的文章。ZeroMQ具有一個獨特的非中介軟體的模式,也就是說,跟其它幾個接受測試的產品不同,你不需要安裝和運行一個Message Service器,或中介軟體。你只需要簡單的引用ZeroMQ程式庫,可以使用NuGet安裝,然後你就可以愉快的在應用程式之間發送訊息了。非常有趣的是,他們也同樣使用這方式在任何利用ZeroMQ進行強大的進程內通訊的語言裡建立Erlang風格的這種執行角色。

把這四個MQ產品裝上、跑起來是一個很有趣的工作。當你需要安裝一個非Windows平台的產品時,下一定的功夫那是必須的。ActiveMQ需要在目標機器上安裝Java,RabbitMQ需要Erlang環境。安裝這兩個產品都沒有遇到麻煩,但我想這是否給系統的維護增加了一層任務。如果這個中的一個被選中,我需要讓系統維護的人去理解和維護他們以前不熟悉的運行庫。ActiveMQ,
RabbitMQ 和 MSMQ 都需要啟動服務進程,這些都可以監控和配置,另外一個就有問題了。

ZeroMQ,它沒有中介軟體架構,不需要任何服務進程和運行時。事實上,你的應用程式端點扮演了這個服務角色。這讓部署起來非常簡單,但擔心的是,你沒有地方可以觀察它是否有問題出現。就目前我知道的,ZeroMQ僅提供非持久性的隊列。你可以在需要的地方實現自己的審計和資料恢複功能。老實說,我甚至不確信是否該把它列在此次測試中,它的運行原理和其它幾種差別太大了。

我就不瞎扯了,下面是測試結果。顯示的是發送和接受的每秒鐘的訊息數。整個過程共產生1百萬條1K的訊息。測試的執行是在一個Windows Vista上進行的。

就像你看到的,ZeroMQ和其它的不是一個層級。它的效能驚人的高。公平的說,ZeroMQ跟其它幾個比起來像頭巨獸,儘管這樣,結論很清楚:如果你希望一個應用程式發送訊息越快越好,你選擇ZeroMQ。當你不太在意偶然會丟失某些訊息的情況下更有價值。

老實講,我更希望使用Rabbit。但這種事情是應該做更多的測試,你最終會有一個最愛,我所聽到的、讀到的各種關於Rabbit的事情讓我覺得它應該是最佳選擇。但使用這個測試結果,我很難說服他們不去使用MSMQ。

如果你想自己跑一下這些測試,我的測試代碼都放在了GitHub上。我高度興趣(但不是非常非常感興趣)想知道如何最佳化這些測試,所以,如果你能做到一個更好的測試結果,請告訴我。謝謝。

訊息佇列軟體產品大比拼(轉)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.