InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

Spring AMQP 1.0 GA

作者 Bienvenido David III , 翻訳者 編集部N 投稿日 2011年9月14日

セクション
デベロップメント
トピック
AMQP ,
メッセージング ,
Spring ,
Java ,
Dependency Injection ,
SpringSource ,
Webサービス ,
.NET ,
言語 ,
デザインパターン ,
VMWare ,
SOA ,
エンタープライズアーキテクチャ ,
プログラミング ,
設計 ,
Patterns ,
Object Oriented Design ,
Architecture

原文(投稿日: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 のリファレンスページを見て欲しい。