6.2. camel-jms


camel-jms、camel-sjms、および camel-sjms2 エンドポイントをリモート AMQ 7 ブローカーに接続するサポート対象の方法は 2 つあります。

  1. JBoss EAPConfiguring Messaging の Configuring the Artemis Resource Adapter to Connect to Red Hat JBoss AMQ 7 セクションで説明されているように、pooled-connection-factory で remote-connector を設定する。
  2. connection-factory を使用した remote-connector の設定で説明されているように、connection-factory を使用して remote-connector を設定する。

接続プールと XA トランザクションのサポートを提供するため、最初のオプションが推奨される方法です。

永続サブスクライバーを使用するメッセージングシナリオでは、JavaEE 7 仕様による制約があるため、pooled-connection-factory は JBoss EAP の Fuse 7.8 ではサポートされません。このようなシナリオでは、標準のプール化されていない connection-factory を設定することが推奨されます。

connection-factory を使用した remote-connector の設定

  1. リモートメッセージングサーバーを指す outbound-socket-binding を作成します。

    /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=messaging-remote-throughput:add(host=localhost, port=61616)
  2. ステップ 1 で作成した outbound-socket-binding を参照する remote-connector を作成します。

    /subsystem=messaging-activemq/server=default/remote-connector=netty-remote-throughput:add(socket-binding=messaging-remote-throughput)
  3. ステップ 2 で作成した remote-connector を参照する connection-factory を作成します。

    /subsystem=messaging-activemq/server=default/connection-factory=simple-remote-artemis-connection-factory:add(entries=[java:/jms/RemoteJms],connectors=[netty-remote-throughput])

6.2.1. メッセージングブローカーおよびクライアント

概要

Fuse 7.8 にはデフォルトの内部メッセージングブローカーが含まれていませんが、外部 JMS ブローカーとインターフェイスするように設計されています。

Fuse 7.8 on JBoss EAP は、Configuring Messaging on JBoss EAP で説明されているリソースアダプターを使用して外部メッセージングブローカーにアクセスします。

Fuse 7.8 on JBoss EAP のメッセージングで使用できる外部ブローカー、JCA アダプター、および Camel コンポーネントの組み合わせに関する詳細は、Red Hat Fuse で サポートされる設定 を参照してください。

JMS を使用して Fuse on JBoss EAP を使用して外部ブローカーに接続する方法は、「camel-jms」を参照してください。

camel-jms クイックスタート

クイックスタートは、Fuse on JBoss EAP で camel-jms コンポーネントを使用して JMS メッセージを生成および消費する方法を示すために提供されます。

このクイックスタートでは、Camel ルートは EAP_HOME/standalone/data/orders からファイルを消費し、コンテンツを OrdersQueue という名前のインメモリー ActiveMQ Artemis キューに配置します。別の Camel ルートは OrdersQueue の内容を使用し、EAP_HOME/standalone/data/orders/processed 内で個別の国ディレクトリーへの注文を並べ替えます。

アプリケーションがデプロイおよびアンデプロイされるときに、JMS OrdersQueue の作成および削除を処理する OrdersQueue CLI スクリプトが CLI コマンドによって作成および削除されます。これらのスクリプトは EAP_HOME/quickstarts/camel-jms/src/main/resources/cli ディレクトリー内にあります。

前提条件

このクイックスタートを実行するには、作業バージョンの Fuse 7.8 が必要です。

外部 AMQ 7 ブローカーに接続するには、Using JBoss AMQ for remote JMS Communication の手順にも従う必要があります。続いて、デフォルトの接続ファクトリーと同じように、接続ファクトリーを注入できます。

@Resource(mappedName = "java:jboss/RemoteJmsXA")
ConnectionFactory connectionFactory;

クイックスタートの設定

  1. JBOSS EAP をスタンドアロンモードで起動します。
  2. EAP_HOME/quickstarts/camel/camel-jms に移動します。
  3. mvn clean install -Pdeploy` を入力して、クイックスタートをビルドおよびデプロイします。
  4. http://localhost:8080/example-camel-jms を参照します。

'Orders Received' というタイトルのページが表示されるはずです。サンプルアプリケーションに注文を送信すると、国ごとの注文一覧がこのページに表示されます。

クイックスタートの実行

EAP_HOME/quickstarts/camel/camel-jms/src/main/resources ディレクトリー内の順序 XML ファイルの例があります。Camel は 5 秒ごとにランダムにファイルを選択し、処理のために EAP_HOME/standalone/data/orders にコピーします。

コンソールには、各注文で何が発生したかを説明するメッセージが出力されます。出力は以下のようになります。

JmsConsumer[OrdersQueue]) Sending order to the UK
JmsConsumer[OrdersQueue]) Sending order to another country
JmsConsumer[OrdersQueue]) Sending order to the US

ファイルが消費されると、http://localhost:8080/example-camel-jms/orders に戻ることができます。各国の受注の数が 1 増えているはずです。

処理されたすべての注文は、以下の宛先に分割されます。

EAP_HOME/standalone/data/orders/processed/uk
EAP_HOME/standalone/data/orders/processed/us
EAP_HOME/standalone/data/orders/processed/other

アンデプロイ

例をアンデプロイするには、EAP_HOME/quickstarts/camel/camel-jmsmvn clean -Pdeploy を実行するようにします。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.