第5章 AMQP


AMQP

AMQP コンポーネントは、Qpid プロジェクトを介して AMQP プロトコル をサポートします。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-amqp</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

URI 形式

amqp:[queue:|topic:]destinationName[?options]
Copy to Clipboard Toggle word wrap
宛先名の後に、JMS コンポーネントのさまざまな設定オプションをすべて指定できます。

AMQP オプション

宛先名の後に、JMS コンポーネントのさまざまな設定オプションをすべて指定できます。

使用方法

AMQP コンポーネントは JMS コンポーネントから継承されるため、前者の使用は後者とほぼ同じになります。
// Consuming from AMQP queue
from("amqp:queue:incoming").
  to(...);
 
// Sending message to the AMQP topic
from(...).
  to("amqp:topic:notify");
Copy to Clipboard Toggle word wrap

AMQP コンポーネントの設定

Camel 2.16.1 以降では、AMQPComponent#amqp10Component(String connectionURI) ファクトリーメソッドを使用して、事前設定されたトピック接頭辞で AMQP 1.0 コンポーネントを返すこともできます。
 AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");
Copy to Clipboard Toggle word wrap
Camel 2.17 以降、AMQPComponent#amqp10Component(String connectionURI)AMQPComponent#amqpComponent(String connectionURI) の代わりに ファクトリーメソッドが非推奨になりました。
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672");
 
AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
Copy to Clipboard Toggle word wrap
Camel 2.17 以降、AMQP コンポーネントを自動的に設定するために、org.apache.camel.component.amqp.AMQPConnectionDetails のインスタンスをレジストリーに追加することもできます。たとえば、Spring Boot の場合、Bean を定義する必要があります。
@Bean
AMQPConnectionDetails amqpConnection() {
  return new AMQPConnectionDetails("amqp://lcoalhost:5672"); 
}
 
@Bean
AMQPConnectionDetails securedAmqpConnection() {
  return new AMQPConnectionDetails("amqp://lcoalhost:5672", "username", "password"); 
}
Copy to Clipboard Toggle word wrap
Camel プロパティーに依存して AMQP コネクションの詳細を読み取ることもできます。ファクトリーメソッド AMQPConnectionDetails.discoverAMQP() は、以下のスニペットが示すように、Kubernetes のような慣例で Camel プロパティーの読み取りを試みます。
export AMQP_SERVICE_HOST = "mybroker.com"
export AMQP_SERVICE_PORT = "6666"
export AMQP_SERVICE_USERNAME = "username"
export AMQP_SERVICE_PASSWORD = "password"
 
...
 
@Bean
AMQPConnectionDetails amqpConnection() {
  return AMQPConnectionDetails.discoverAMQP(); 
}
Copy to Clipboard Toggle word wrap

トピックの使用

camel-amqp と連携するトピックを使用するには、以下のように topic:// をトピック接頭辞として使用するようコンポーネントを設定する必要があります。
 <bean id="amqp" class="org.apache.camel.component.amqp.AmqpComponent">
        <property name="connectionFactory">
          <bean class="org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl" factory-method="createFromURL">
            <constructor-arg index="0" type="java.lang.String" value="amqp://localhost:5672" />
            <property name="topicPrefix" value="topic://" />  <!-- only necessary when connecting to ActiveMQ over AMQP 1.0 -->
          </bean>
        </property>
 </bean>
Copy to Clipboard Toggle word wrap
AMQPComponent#amqpComponent() メソッドと AMQPConnectionDetails の両方で、トピック接頭辞でコンポーネントを事前に設定するため、明示的に設定する必要はありません。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat