第8章 Camel アプリケーションの A-MQ ブローカーとの統合


このチュートリアルでは、A-MQ イメージを使用してクイックスタートをデプロイする方法を説明します。

8.1. Spring Boot Camel A-MQ クイックスタートのビルドおよびデプロイ

この例では、JBoss A-MQ 6 イメージとデプロイメントテンプレートが必要になります。CDK 3.1.1 以降 を使用する場合、JBoss AM-Q 6 イメージおよびテンプレートはすでにデフォルトで openshift namespace にインストールされているはずです。

前提条件

  • OpenShift が適切に稼働し、Fuse イメージストリームがすでに OpenShift にインストールされている。管理者向けの基本情報 を参照してください。
  • Maven リポジトリーが Fuse に対して設定されているようにしてください。詳細は Maven リポジトリーの設定 を参照してください。

手順

  1. クイックスタートをビルドおよびデプロイするために準備します。

    1. OpenShift に開発者としてログインします。

      oc login -u developer -p developer
    2. 新しいプロジェクト amq-quickstart を作成します。

      oc new-project amq-quickstart
    3. インストールした AーMQ 6 イメージおよびテンプレートのバージョンを確認します。

      $ oc get template -n openshift

      amqXX-basic という名前のテンプレートが見つかるはずです。XX は Openshift にインストールされている A-MQ のバージョンです。

  2. A-MQ 6 イメージを amq-quickstart 名前空間にデプロイします (XX を 前の手順で見つかった A-MQ の実際のバージョンに置き換えます)。

    $ oc process openshift//amqXX-basic -p APPLICATION_NAME=broker -p MQ_USERNAME=admin -p MQ_PASSWORD=admin -p MQ_QUEUES=test -p MQ_PROTOCOL=amqp -n amq-quickstart | oc create -f -
    注記

    古いバージョンの oc を使用すると、oc コマンドが失敗することがあります。この構文は、oc のバージョン 3.5.x (Kubernetes 1.5.x がベース) で動作します。

  3. メッシュエンドポイントの検出に必要なユーザーロールを追加します (Kubernetes REST API 経由)。

    $ oc policy add-role-to-user view system:serviceaccount:amq-quickstart:default
  4. Maven ワークフローを使用して、クイックスタートプロジェクトを作成します。

    $ mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \
    -DarchetypeCatalog=https://maven.repository.redhat.com/ga/io/fabric8/archetypes/archetypes-catalog/2.2.0.fuse-740017-redhat-00003/archetypes-catalog-2.2.0.fuse-740017-redhat-00003-archetype-catalog.xml \
    -DarchetypeGroupId=org.jboss.fuse.fis.archetypes \
    -DarchetypeArtifactId=spring-boot-camel-amq-archetype \
    -DarchetypeVersion=2.2.0.fuse-740017-redhat-00003
  5. archetype プラグインが対話モードに切り替わり、残りのフィールドの入力を要求されます。

    Define value for property 'groupId': : org.example.fis
    Define value for property 'artifactId': : fuse74-spring-boot-camel-amq
    Define value for property 'version':  1.0-SNAPSHOT: :
    Define value for property 'package':  org.example.fis: :
    [INFO] Using property: spring-boot-version = 1.5.17.RELEASE
    Confirm properties configuration:
    groupId: org.example.fis
    artifactId: fuse74-spring-boot-camel-amq
    version: 1.0-SNAPSHOT
    package: org.example.fis
    spring-boot-version: 1.5.17.RELEASE
     Y: :

    プロンプトが表示されたら、groupId 値に org.example.fis を入力し、artifactId 値に fuse74-Spring-boot-camel-amq を 入力します。残りのフィールドにはデフォルト値を使用します。

  6. クイックスタートディレクトリー fuse74-Spring-boot-camel-amq に移動します。

    $ cd fuse74-spring-boot-camel-amq
  7. ACTIVEMQ_BROKER_USERNAME および ACTIVEMQ_BROKER_PASSWORD 環境変数を設定して、ブローカーにログオンするためのクライアントクレデンシャルをカスタマイズします。fuse74-Spring-boot-camel-amq プロジェクトで、src/main/fabric8/deployment.yml ファイルを次のように編集します。

    spec:
      template:
        spec:
          containers:
            -
              resources:
                requests:
                  cpu: "0.2"
    #              memory: 256Mi
                limits:
                  cpu: "1.0"
    #              memory: 256Mi
              env:
              - name: AMQP_HOST
                value: broker-amq-amqp
              - name: SPRING_APPLICATION_JSON
                value: '{"server":{"undertow":{"io-threads":1, "worker-threads":2 }}}'
              - name: AMQP_USERNAME
                value: admin
              - name: AMQP_PASSWORD
                value: admin
  8. mvn コマンドを実行し、クイックスタートを OpenShift サーバーにデプロイします。

    mvn fabric8:deploy -Popenshift
  9. クイックスタートが正常に実行されていることを確認するには、以下を行います。

    1. OpenShift コンソールに移動します。
    2. プロジェクト amq-quickstart を選択します。
    3. Applications をクリックします。
    4. Pods を選択します。
    5. fis-spring-boot-camel-am-1-xxxxx をクリックします。
    6. Logs をクリックします。

      出力にはメッセージが正常に送信されたことが表示されます。

      10:17:59.825 [Camel (camel) thread #10 - timer://order] INFO  generate-order-route - Generating order order1379.xml
      10:17:59.829 [Camel (camel) thread #8 - JmsConsumer[incomingOrders]] INFO  jms-cbr-route - Sending order order1379.xml to the UK
      10:17:59.829 [Camel (camel) thread #8 - JmsConsumer[incomingOrders]] INFO  jms-cbr-route - Done processing order1379.xml
      10:18:02.825 [Camel (camel) thread #10 - timer://order] INFO  generate-order-route - Generating order order1380.xml
      10:18:02.829 [Camel (camel) thread #7 - JmsConsumer[incomingOrders]] INFO  jms-cbr-route - Sending order order1380.xml to another country
      10:18:02.829 [Camel (camel) thread #7 - JmsConsumer[incomingOrders]] INFO jms-cbr-route - Done processing order1380.xml
  10. Web インターフェイスでルートを表示するには、Open Java Console をクリックし、A-MQ キューのメッセージをチェックします。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.