私は最近、Fabric8 HTTP gatewayの使い方を紹介するプロジェクトを Githubにまとめました。サンプルプロジェクトを使い、HTTP Gatewayを試していただけます。Fabric8に含まれるexample/camel/cxfプロファイルを使うことで、基本的には同等のことができます。
Fabric8 Gateway
Fabric8プロジェクト -fabricateと発音します- は、JVM上で動作するサービス用の実践的な DevOps フレームワークです。自動デプロイメントや各種設定を集中管理することができ、あなたが使われているJVMコンテナ(マイクロサービスのようなコンテナではないものも含む)がいずれのものであれ対応します。Fabric8がその他に提供するクールな機能といえば、あなたのサービス(MQ、REST/http SOAP/http、etc) を動的にルックアップ(dynamically lookup)し、負荷分散し、バージョニングすることができます。「fabric8」により生成された「fabric」の管轄下にいるクライアントは、自動的にこの恩恵を受けることができます。管轄外のクライアントも、Fabric8 Gateway機能によりこの恩恵を受けることができます。CXFを公開する Apache Camel ルートと組み合わせた場合、Fabric8を利用したとてもパワフルなサービス検索機能を手に入れることができます。
サンプルプロジェクトには、3つのシンプルな REST実装とデプロイメントが含まれています。これらを使い、Gatewayをあなた自身でテストしていただくことができます。
How To
まず、Fabric8を入手してください。もしくは、ダウンストリームの Red Hatによりサポートされる イトコ:JBoss Fuseを入手してください。起動する:
fabric8-home$ ./bin/fabric8JBoss Fuseの場合:
fuse-home$ ./bin/fuse次に、このプロジェクトをビルドする必要があります:
project-home$ mvn clean installそして、サンプルプロジェクトに含まれるいずれかのサブプロジェクトに移動します(例: beer-service)
今度は、fabric8-maven-plugin を実行し、プロファイルを Fabric8/JBoss Fuseにインストールする必要があります。詳細や設定方法に関しては、fabric8-maven-pluginをご覧ください:
beer-service$ mvn fabric8:deploy
次に、ウェブコンソール(http://localhost:8181)を開き、Wikiタブに移動します。
loadbalancer グループ配下に、あなたのプロファイルをご確認いただけるはずです:
これらプロファイルには、JVMコンテナへデプロイする際に必要なリソースが宣言されています。さらに理解を深めたい方は、Fabric8 Profile について読むことができます。今回は、Camelルートをいくつかデプロイし、機能上の依存関係を記述してます。記述された機能により、CXFエンドポイントは自動的に APIレジストリに登録されます。
今度は、そのプロファイルを使い新しくコンテナを作ります。
この新しくできたコンテナは、Restサービス機能を実装した Camelルートをホストします。beerコンテナが作成されているはずです:
次に、新しいコンテナを追加し、http gatewayプロファイルを付与します:
beerコンテナと http gatewayコンテナが作成されているはずです:
gatewayを通して beerサービスに pingすることができます。URLはこちら:
http://localhost:9000/cxf/beer :
スクリーンショットが撮られていない箇所について質問がある場合、コメント欄に記述しお知らせください。
HTTP Gatewayは Fabric8が提供するとても強力な機能です。JBoss Fuseでは、この機能は tech previewとして提供されています。
原文: Fabric8 HTTP Gateway by Christian Posta(http://www.christianposta.com/blog/)
個人的に大注目している Fabic8に関するエントリです。Fabricがさらに利用しやすくなる Fabric8 Http gatewayを試せるだけでなく、Fabricの基本的な使い方も理解できます。スクリーンショットが豊富で助かりますね。
返信削除今回の記事で Fabric8に興味を持たれた方は、こちらの記事もご覧ください。プロジェクトのコンセプトが理解できます: http://playintegration.blogspot.jp/2014/06/fuse.html