BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Spring AMQP 1.0 GA

Spring AMQP 1.0 GA

原文(投稿日:2011/09/09)へのリンク

VMwareの一部門であるSpringSourceが 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"(SpringSource の Advanced Message Queuing Protocol サポートの入門)を読むとよい。

Spring AMQPは、メッセージの送信と受信に org.springframework.amqp.core.AmqpTemplateを提供している。 AMQP templateの実装は、 javax.jms.Messageインスタンスではなく、POJOの送受信をサポートする。また Objectのマーシャリングに使われる MessageConverterをカスタマイズする方法も提供する。 Spring + JMSのユーザーは、 JmsTemplate と新しい AmqpTemplate間の類似性に気がつくだろう。

以下のコード片は、 RabbitMQと一緒にSpring AMQPを使って、背後でどのように同期メッセージングが動くのかを示している。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を生成し、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モジュールは、 SpringSource Mavenリポジトリと Maven Centralからも入手できる。依存関係は、spring-amqp, spring-core, spring-context である。もしメッセージブローカーとしてRabbitMQ を使っているなら、spring-rabbit を含まなければならない。 GitHubから入手できる Spring AMQP 例 を試すこともできる。これらの例は、 Mavenベースのプロジェクトであり、 RabbitMQと Erlang が要る。完全なビルド手順がサンプルコードについている readme.mdファイルに書かれている。

Cloud Foundryユーザーへ、 VMwareは、Cloud Foundry上で動くRabbitMQ の無料公開ベータ版を アナウンスした 。 Cloud Foundry上のRabbitMQに接続するために Spring AMQPを使うことができる。 が直ぐ始めるのに役に立つ。Spring Integration ユーザーには、AMQPサポートは、バージョン 2.1 M1で始まる。

VMwareの RabbitMQの他に、 AMQPベースのメッセージ指向ミドルウェアには、Apache QpidRed Hat Enterprise MRGStormMQ (ホストされる)がある。iMatrixの OpenAMQ は、もはやサポートされないので、代替ではない。

Spring AMQPに関する更なる情報は、Spring AMQP Reference for JavaSpring AMQP Reference for .NET のリファレンスページを見て欲しい。

この記事に星をつける

おすすめ度
スタイル

BT