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 消息模型。除了模板之外,我们还为“消息驱动的 POJO”提供了支持,其中包含 MessageListenerContainer 和 MessageListenerAdapter,它们与 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 框架之上。开发人员可以使用声明式、配置驱动的方法来解决集成问题,例如转换、路由、拆分和聚合,同时保持与易于单独测试的基于 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 社区所有即将举行的活动。

查看全部