5.5. AMQP コンポーネントの設定
Camel 2.16.1 以降では AMQPComponent#amqp10Component(String connectionURI)
ファクトリーメソッドを使用して、事前設定されたトピックの接頭辞を付けて AMQP 1.0 コンポーネントを返すこともできます。
AMQP 1.0 コンポーネントの作成
AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");
Camel 2.17 以降、AMQPComponent#amqp10Component(String connectionURI)
ファクトリーメソッドが非推奨になり、AMQPComponent#amqpComponent(String connectionURI)
が後継となったことに注意してください。
AMQP 1.0 コンポーネントの作成
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672"); AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
Camel 2.17 以降、AMQP コンポーネントを自動的に設定するために、org.apache.camel.component.amqp.AMQPConnectionDetails
のインスタンスをレジストリーに追加することもできます。たとえば、Spring Boot の場合、Bean を定義するだけです。
AMQP 接続の詳細の自動設定
@Bean AMQPConnectionDetails amqpConnection() { return new AMQPConnectionDetails("amqp://localhost:5672"); } @Bean AMQPConnectionDetails securedAmqpConnection() { return new AMQPConnectionDetails("amqp://localhost:5672", "username", "password"); }
同様に、Camel-CDI を使用する場合は、CDI プロデューサーメソッドも使用できます。
CDI の AMQP 接続の詳細の自動設定
@Produces AMQPConnectionDetails amqpConnection() { return new AMQPConnectionDetails("amqp://localhost:5672"); }
Camel プロパティー を利用して、AMQP 接続の詳細を読み取ることもできます。ファクトリーメソッド AMQPConnectionDetails.discoverAMQP()
は、以下のスニペットで示されているように、Kubernetes に似た規則で Camel プロパティーを読み取ろうとします。
AMQP 接続の詳細の自動設定
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(); }
AMQP 固有のオプションを有効にする
たとえば、amqp.traceFrames
を有効にする必要がある場合は、次の例のように、オプションを URI に追加することで有効にできます。
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672?amqp.traceFrames=true");
参考までに、QPID JMS クライアント設定 を参照してください。