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 にデプロイする方法について説明します。
1.1. Camel Quarkus の概要
Camel Quarkus プロジェクトは、Apache Camel の統合機能と、Quarkus ランタイムに適合するコンポーネントライブラリーを提供します。
Camel Quarkus を使用する利点には、以下が含まれます。
- ユーザーはパフォーマンス上の利点、Developer Joy、および Quarkus が提供するコンテナーの最初の ethos を利用できるようにします。
- Apache 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 秒ごとにタイマーコンポーネントをトリガーし、無作為にブックデータを生成し、一時ディレクトリーにエントリーを 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