BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Spring AMQP 1.0 GA发布了

| 作者 Bienvenido David III 关注 0 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2012年2月7日. 估计阅读时间: 7 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

近日,SpringSource(VMware下的一个部门)发布Spring AMQP 1.0 GA(1.0.0.RELEASE)。Spring AMQP项目将Spring核心概念应用到了基于AMQP的消息解决方案的开发上,并且提供了Java与.NET两个版本。要想了解Spring AMQP与AMQP,请阅读文章“Introduction to SpringSource's Advanced Message Queuing Protocol Support”。

Spring AMQP提供了org.springframework.amqp.core.AmqpTemplate来发送与接收消息。AMQP模板实现支持发送与接收POJOs而非javax.jms.Message实例。他们还提供了一种方式来自定义用于编排对象的MessageConverter。Spring与JMS用户会发现JmsTemplate与新的AmqpTemplate之间的相似性。

下面的代码片段介绍了如何联合使用Spring AMQP与RabbitMQ处理同步消息。RabbitMQ是VMware的产品,并且是官方Spring AMQP示例中所用的默认AMQP实现。

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:rabbit="http://www.springframework.org/schema/rabbit"
	xsi:schemaLocation="http://www.springframework.org/schema/rabbit
		http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	<rabbit:connection-factory id="connectionFactory"/>
	<rabbit:template id="amqpTemplate" connection-factory="connectionFactory"/>
	<rabbit:admin connection-factory="connectionFactory"/>
	<rabbit:queue name="helloworld.queue"/>
</beans>

上述Spring配置xml引用了ConnectionFactory,创建了一个RabbitTemplate来访问消息broker,创建了一个RabbitAdmin来管理交换、查询与绑定,最后创建了队列。下面的Java代码片段用于发送与接收消息。

Producer.java

import org.springframework.amqp.core.AmqpTemplate;
...

AmqpTemplate amqpTemplate = context.getBean(AmqpTemplate.class);
amqpTemplate.convertAndSend("helloworld.queue", "Hello World");

Consumer.java

import org.springframework.amqp.core.AmqpTemplate;
...

AmqpTemplate amqpTemplate = context.getBean(AmqpTemplate.class);
System.out.println(amqpTemplate.receiveAndConvert("helloworld.queue"));

要想上手,请下载Spring AMQP for Java或是Spring AMQP for .NET。Spring AMQP for Java artifacts也位于SpringSource Maven仓库与Maven Central中。其依赖是spring-amqp、spring-core与spring-context。如果消息broker使用的是RabbitMQ,那么还要引入spring-rabbit。你还可以试一下位于GitHub上的Spring AMQP示例。这些示例都是基于Maven的项目,需要用到RabbitMQ与Erlang。请阅读与示例代码一同发布的readme.md文件以了解完整的构建命令。

对于Cloud Foundry用户来说,VMware还发布了RabbitMQ on Cloud Foundry免费的公开Beta版。你可以使用AMQP连接RabbitMQ on Cloud Foundry,通过这些示例可以帮助你快速上手。对于Spring Integration用户来说,版本2.1 M1提供了AMQP支持。

除了VMware的RabbitMQ外,其他基于AMQP面向消息的中间件还有Apache QpidRed Hat Enterprise MRGStormMQ(托管)。iMatrix的OpenAMQ已经不再支持了,因此也没有成为一个选择。

要想了解关于Spring AMQP的更多信息,请查看Spring AMQP Reference for JavaSpring AMQP Reference for .NET参考页面。

查看英文原文:Spring AMQP 1.0 GA

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

不会和臭名昭著的 org.springframework.jms.core.JmsTemplate 一样吧 by Yang Yang

不会和臭名昭著的 org.springframework.jms.core.JmsTemplate 一样吧。 开着开着就漏消息。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT