OpenCredo宣布为Spring Integration增加AMQP支持

kyle00 2010-03-09

引用
Spring可以和RabbitMQ更好的结合,使得Javaer们可以多了一个队列开源产品的选择。没有这个开源项目前,其实RabbitMQ肯定也可以用在Java上,只不过就需要自己多点工作了。现在OpenCredo把这个工作做了,而且开源,可喜可贺。有兴趣研究一下源代码,自己写这样的东西也很有帮助

下载地址:http://www.opencredo.com/technologies/opencredo-amq

http://www.infoq.com/cn/news/2010/03/amqp_support_spring_integration

OpenCredo是一家咨询公司,由JonasPartner和RussMiles创建,近日发布了一个开源的适配器——可以让SpringIntegration应用与AMQP端点协同工作。

AdvancedMessageQueuingProtocol(AMQP)是个平台中立的规范,描述了面向客户的消息中间件,作为一个线级协议(wire-level,该协议是对以八进制数据流在网络上进行传输的数据格式的描述——译者注),它并没有规定API的实现细节。大家可以将其看作是适合于异步消息的特定协议。任何客户端都可以实现它,包括JMSAPI。

RabbitMQ是个面向消息的中间件(MOM)产品,使用Erlang开发,因此能够充分利用Erlang语言优秀的线程和多核能力,可以无缝地将单VM上的并发代码转换为跨越多个物理节点的分布式应用。RabbitMQ并没有提供JMS客户端,但却提供了AMQP客户端。RabbitMQ并不是唯一一个考虑到可伸缩性而使用Erlang进行开发的中间件产品,ejbabberd(XMPP远程消息服务器)、CouchDB(文档数据库)以及Amazon的SimpleDB(分布式数据库)都是使用Erlang进行开发的。

虽然JMS是Java客户端与消息中间件进行互联的标准机制,使用也非常广泛,但它却并非是唯一之选。AMQP也为Java用户提供了优秀的消息解决方案。OpenCredo的声明——集成AMQP与SpringIntegration框架——阐明了如何通过Spring框架将基于AMQP的消息系统引入到企业当中。

SpringIntegration构建在Spring框架之上,提供了面向消息的解决方案,非常类似于ESB;它提供的适配器可以让代码响应外部系统事件,这与EJB中的MessageDrivenBean或是Spring中的MessageDrivenPOJO非常像。OpenCredo框架的目标在于为各种不同的本地JavaAMQP客户端提供一致的使用方式,同时将其挂接(hook)到SpringIntegration总线上。目前,该支持包装了RabbitMQAMQPJava客户端并通过SpringIntegration创建了一个间接层以将逻辑与消息系统进行解耦。重要的是,AMQP是个开放、线级协议,这样一个客户端就能与多个厂商协同工作,而JMS客户端则只能绑定到固定版本的JMS服务器上。

OpenCredo与RabbitMQCEOAlexisRichardson和RabbitMQ团队通力合作实现了该支持并计划对其进行不断升级。其任务列表中还准备提供对事件驱动(与基于轮询的方式相反)客户端的支持以及为客户端提供声明式的Spring事务管理支持。最近OpenCredo宣布联合SpringIntegration以提供对Esper(一个ComplexEventProcessing方案)的支持。OpenCredo通过与简单、以POJO为中心的SpringIntegration的联手合作,为Esper的支持提供了强大的消息与监控能力。

相关推荐