SpringSource 加入 RabbitMQ,躍上雲端訊息傳遞

工程 | Rod Johnson | 2010 年 4 月 13 日 | ...

我很高興宣布 VMware 的 SpringSource 部門已收購 Rabbit Technologies Ltd.,這家公司是熱門開源雲端訊息傳遞技術 RabbitMQ 的幕後推手。此次收購將增強我們的中介軟體產品組合,並加速我們的雲端計畫。

雲端中的訊息傳遞演進

隨著組織越來越多地在雲端環境中建置和部署應用程式,支援此新模型的基礎架構也在不斷發展。需要一種新型的輕量、可靠、可擴展和可攜式的訊息傳遞系統,以支援將使用者請求路由到適當的資源,無論這些資源位於何處。RabbitMQ 是這個領域的領導者,並在雲端訊息傳遞方面展現了顯著的創新。

RabbitMQ 非常適合雲端,原因有三

  • 開放性:RabbitMQ 是開源的,擁有開放且活躍的社群,並且基於開放標準。開放性將是成功雲端平台的關鍵因素,因為如果轉向雲端最終只是另一種形式的供應商鎖定,那麼轉向雲端的吸引力就會大打折扣。
  • 彈性擴展性:RabbitMQ 能夠以多種不同的方式進行擴展,不僅僅是技術上的水平擴展,還有跨服務擴展到地理位置分散的擴展的聯合訊息傳遞。
  • 基於協定:RabbitMQ 是一種基於協定而非基於 API 的訊息傳遞系統。這表示訊息傳遞用戶端不會受限於供應商安裝的程式庫,這提高了應用程式的可攜性,並允許來自各種不同平台的用戶端訊息傳遞。這種方法也讓 RabbitMQ 能夠支援多種協定,從而提高其在雲端等異質環境中的實用性。

事實上,Rabbit 適用於雲端情境已在實務中得到證實,雲端服務提供商和建置私有雲的組織(例如 NASA Nebula)已採用它。

這對您有什麼意義?

如果您是 RabbitMQ 社群的成員,這是一個好消息,也是對您的技術選擇的進一步重大驗證。RabbitMQ 將繼續保持開源,並以與之前相同的方式發布。社群可以期待看到對這項傑出技術的更多投資,這應會顯著改進開源版本。RabbitMQ 社群還可以期待看到 SpringSource 對其其他開源社群(如 Spring、Grails、Groovy 和基於 Apache 的技術)所給予的相同奉獻和支援。

我們熱愛並致力於開發人員使用 Rabbit 的多樣化語言和平台(Java 以外)。訊息傳遞技術的部分價值在於其跨平台的觸及範圍。

您可以預期,我們將為 Spring 社群打造特別引人入勝的體驗。直接使用 Spring 或透過 Grails 使用 Spring 的企業開發人員可以期待與 RabbitMQ 作為訊息傳遞系統的一流整合。這將為開發人員提供更大的彈性和選擇,讓他們可以更靈活地建構應用程式,同時確保他們開發的應用程式可以更輕鬆地從開發人員桌面移動到虛擬或實體資料中心,再到雲端。

此 Spring 整合將包含兩個要素

  • 類似於 Spring 的 JMS 支援的低階整合。這將包括一個 RabbitTemplate,它提供簡單的傳送和接收操作,並委派給 MessageConverter 以支援 POJO 訊息傳遞模型。除了範本之外,我們還透過 MessageListenerContainer 和 MessageListenerAdapter 支援「訊息驅動的 POJO」,它們與 Spring 的 JMS 支援中的同名元件非常相似。當然,我們將管理低階資源以及交易。所有這些都將適用於 Java 和 .NET,並且我們正在設計高階 AMQP 層,以便它將來可以支援多種實作。
  • Spring Integration 支援。 這將包括通道配接器,用於將 Spring Integration 訊息通道連接到傳送端的 AMQP 交換器和接收端的 AMQP 佇列。雖然這些配接器建立在上述低階支援之上,但它們進一步抽象了程式設計模型,以便最終使用者可以依賴純 POJO 服務層之上的 Spring Integration 組態。

後者尤其重要。Spring Integration 是最令人興奮的 Spring 專案之一,並且提供了自然的 Spring POJO 程式設計模型擴展,以處理企業整合模式。我們看到社群和客戶對 Spring Integration 的興趣日益濃厚,並且正在大幅增加對其開發的投資。正如 Spring 相依性注入提供了一種抽象,避免了使用 JNDI 等低階 API 的需要,簡化了應用程式程式碼並使其與部署問題分離一樣,我相信許多(如果不是大多數)非同步模式最好在更概念層次上表達,例如使用 Spring Integration,而不是直接使用訊息傳遞 API 和協定。

Spring Integration 允許開發人員利用同步和非同步訊息傳遞,甚至無需實作接聽器介面或編寫依賴範本的程式碼。它支援 企業整合模式 (Hohpe/Woolf),直接建立在 Spring Framework 之上。開發人員可以使用宣告式、組態驅動的方法來解決整合問題,例如轉換、路由、分割和聚合,同時保持與基於 POJO 的業務邏輯的清晰分離,這些邏輯可以輕鬆地單獨測試。Spring Integration 的訊息通道抽象在進程內和進程間訊息傳遞之間提供了一致性。它還將應用程式程式碼與任何特定傳輸或協定分離。這非常符合 Spring 的一般理念,即可攜性不應需要程式碼變更,並且技術選擇不應導致鎖定。透過將 RabbitMQ 新增到傳輸選項中,開發人員將有更多選擇,並且可以立即橋接 RabbitMQ 和任何其他支援的傳輸。

我發布這篇部落格文章有點晚了。新聞界、部落格圈和 Twitter(它已成為熱門話題)已經在熱烈討論 SpringSource/Rabbit。(這提醒了我:我最近在 Twitter 上比在我的部落格上活躍得多,我鼓勵您在 springrod 上關注我。)

但是,請允許我首先歡迎 RabbitMQ 社群加入 SpringSource 大家庭,並鼓勵 SpringSource 社群了解如何 開始使用 RabbitMQ。

取得 Spring 電子報

隨時掌握 Spring 電子報的最新資訊

訂閱

領先一步

VMware 提供培訓和認證,以加速您的進展。

瞭解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

瞭解更多

即將到來的活動

查看 Spring 社群中所有即將到來的活動。

檢視全部