Camel Quarkus エクステンションのスタートガイド
テクノロジープレビュー - Camel Quarkus エクステンションのスタートガイド
概要
第1章 テクノロジープレビュー - Camel Quarkus エクステンションのスタートガイド
Camel Quarkus はテクノロジープレビューの機能です。テクノロジープレビュー機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。Red Hat は、実稼働環境でこれらを使用することを推奨していません。
テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
本ガイドでは、Red Hat Integration - Camel Quarkus エクステンションについて紹介し、クイックスタート Camel Quarkus アプリケーションのビルド方法およびアプリケーションを OpenShift にデプロイする方法について説明します。
Red Hat は、Red Hat 製品に同梱されたコンテンツをホストする Maven リポジトリーを提供します。これらのリポジトリーは、ソフトウェアのダウンロードページからダウンロードできます。
Camel Quarkus の場合、以下のリポジトリーが必要です。
- rhi-common
- rhi-camel-quarkus
本リリースでは、Camel Quarkus をオフラインモードでインストールすることはサポートされません。
1.1. Camel Quarkus の概要
Camel Quarkus プロジェクトは、Apache Camel の統合機能と、Quarkus ランタイムに適合するコンポーネントライブラリーを提供します。
Camel Quarkus を使用する利点には、以下が含まれます。
- ユーザーはパフォーマンス上の利点、Developer Joy、および Quarkus が提供するコンテナーの最初の ethos を利用できるようにします。
- 多くの Camel コンポーネント用の Quarkus エクステンションを利用できます。
- Camel 3 で行われた多くのパフォーマンスの改善を利用して、メモリーフットプリントを削減し、リフレクションへの依存を減らし、起動時間を短縮できます。
Java DSL を使用して Camel ルートを定義できます。
1.2. OpenShift での Quarkus アプリケーションのデプロイ
Camel Quarkus アプリケーションを OpenShift にデプロイする方法については、Deploying your Quarkus applications on Red Hat OpenShift Container Platform を参照してください。
1.3. ファイルコンシューマークイックスタートサンプルの使用
Camel Quarkus Examples Git リポジトリーからクイックスタートをダウンロードまたはクローン作成することができます。この例は file-bindy-ftp
ディレクトリーにあります。
zip ファイルの内容を抽出するか、リポジトリーのクローンをローカルディレクトリー (例: quickstarts
) にデプロイメントします。
この Camel Quarkus のサンプルは、ローカルマシンのコマンドラインで実行できます。開発モードを使用すると、開発段階にてインテグレーションで繰り返しを迅速に行うことができ、コードに関するフィードバックを即座に受け取ることができます。詳細は、Camel Quarkus User Guide の Development Mode セクションを参照してください。
コンテナーのリソース制限を設定したり、Quarkus Kubernetes クライアントが自己署名証明書を信頼できるようにする必要がある場合は、これらの設定オプションを src/main/resources/application.properties
ファイルで確認できます。
前提条件
-
OpenShift クラスターにアクセス可能な
cluster admin
権限がある。 -
SFTP サーバーにアクセスでき、アプリケーションプロパティー設定ファイル
src/main/resources/application.properties
に (接頭辞ftp
が付いた) サーバープロパティーが設定されている。
手順
Maven を使用して、開発モードでサンプルアプリケーションをビルドします。
$ cd quickstarts/file-bindy-ftp $ mvn clean compile quarkus:dev
アプリケーションは 10 秒ごとにタイマーコンポーネントをトリガーし、ランダムな "book" データを生成して、100 個のエントリーを含む CSV ファイルを一時ディレクトリーに作成します。コンソールに以下のメッセージが表示されます。
[route1] (Camel (camel-1) thread #3 - timer://generateBooks) Generating randomized books CSV data
次に、CSV ファイルがファイルコンシューマーによって読み取られ、Bindy を使用して個々のデータ行が Book オブジェクトにマーシャリングされます。
[route2] (Camel (camel-1) thread #1 - file:///tmp/books) Reading books CSV data from 89A0EE24CB03A69-0000000000000000
続いて、Book オブジェクトのコレクションが個別の項目に分割され、genre プロパティーに基づいて集約されます。
[route3] (Camel (camel-1) thread #0 - AggregateTimeoutChecker) Processed 34 books for genre 'Action' [route3] (Camel (camel-1) thread #0 - AggregateTimeoutChecker) Processed 31 books for genre 'Crime' [route3] (Camel (camel-1) thread #0 - AggregateTimeoutChecker) Processed 35 books for genre 'Horror'
最後に、集約されたブックコレクションが CSV 形式にアンマーシャリングされ、テスト FTP サーバーにアップロードされます。
[route4] (Camel (camel-1) thread #2 - seda://processed) Uploaded books-Action-89A0EE24CB03A69-0000000000000069.csv [route4] (Camel (camel-1) thread #2 - seda://processed) Uploaded books-Crime-89A0EE24CB03A69-0000000000000069.csv [route4] (Camel (camel-1) thread #2 - seda://processed) Uploaded books-Horror-89A0EE24CB03A69-0000000000000069.csv
JVM モードでアプリケーションを実行するには、以下のコマンドを入力します。
$ mvn clean package -DskipTests $ java -jar target/*-runner.jar
以下のコマンドを入力し、サンプルアプリケーションをビルドして OpenShift にデプロイできます。
$ mvn clean package -DskipTests -Dquarkus.kubernetes.deploy=true
Pod が実行されていることを確認します。
$oc get pods NAME READY STATUS RESTARTS AGE camel-quarkus-examples-file-bindy-ftp-1-d72mb 1/1 Running 0 5m15s ssh-server-deployment-5f6f685658-jtr9n 1/1 Running 0 5m28s
オプション: 以下のコマンドを入力してアプリケーションログを監視します。
oc logs -f camel-quarkus-examples-file-bindy-ftp-5d48f4d85c-sjl8k