第6章 メッセージングチャネル
概要
メッセージングチャネルは、メッセージングアプリケーションの組み込みを提供します。本章では、メッセージングシステムで利用可能なメッセージングチャネルの種類と、それらのチャネルのロールについて説明します。
6.1. Point-to-Point Channel
概要
図6.1「Point to Point Channel パターン」 に示されている Point-to-Point Channel は、1 つの受信側のみが指定のメッセージを消費することを保証するメッセージチャネル です。これは、複数の受信側が同じメッセージを消費できる Publish-Subscribe Channel とは対照的です。特に、Publish-Subscribe Channel では、複数の受信側が同じチャネルにサブスクライブすることが可能です。複数の受信側がメッセージの消費で競合する場合、1 つの受信側のみがメッセージを消費するようにするのはメッセージチャネルのロールです。
図6.1 Point to Point Channel パターン
Point to Point Channel をサポートするコンポーネント
以下の Apache Camel コンポーネントは、Point to Point Channel パターンをサポートします。
JMS
JMS では、Point to Point Channel は キュー で表されます。たとえば、Foo.Bar
という JMS キューのエンドポイント URI を指定できます。
jms:queue:Foo.Bar
JMS コンポーネントはデフォルトでキューエンドポイントを作成するため、修飾子 queue:
は任意です。そのため、以下の同等のエンドポイント URI を指定することもできます。
jms:Foo.Bar
詳細は、Apache Camel コンポーネントリファレンスガイド の Jms を参照してください。
ActiveMQ
ActiveMQ では、Point to Point Channel はキューで表されます。たとえば、以下のように Foo.Bar
という ActiveMQ キューのエンドポイント URI を指定できます。
activemq:queue:Foo.Bar
詳細は、Apache Camel コンポーネントリファレンスガイド の ActiveMQ を参照してください。
SEDA
Apache Camel Staged Event-Driven Architecture (SEDA) コンポーネントは、ブロッキングキューを使用して実装されます。Apache Camel アプリケーションの 内部 にある軽量のポイントツーポイントチャネルを作成する場合は、SEDA コンポーネントを使用します。たとえば、以下のように SedaQueue
という SEDA キューのエンドポイント URI を指定できます。
seda:SedaQueue
JPA
Java Persistence API (JPA) コンポーネントは、エンティティー Bean をデータベースに書き出すために使用される EJB 3 永続化の規格です。詳細は、Apache Camel コンポーネントリファレンスガイド の JPA を参照してください。
XMPP
XMPP (Jabber) コンポーネントは、通信でパーソンツーパーソン (Person-to-Person) モードが使用される場合に、Point to Point Channel パターンをサポートします。詳細は、Apache Camel コンポーネントリファレンスガイド の Xmpp を参照してください。