JBoss Fuseを使ってみる その4:A-MQ

2015年6月4日(木)
駒澤 健一郎

デモの実行

では早速、このデモを動かしてみましょう。デモの動作は、大まかには以下のようになります。

  • File Listenerが監視するディレクトリにメッセージを送信
  • 管理画面上でメッセージが処理されたことを確認
  • ログ管理画面で出力結果を確認
  • データベースにログが生成されていることを確認

File Listenerマイクロサービスは、特定のファイルディレクトリを監視していますので、そこにメッセージを送ってみます。まずはWikiページでfsi/file.listener プロファイルを選択すると、図21の画面が表示されますので、左ペインから「data」ディレクトリをクリックします。

File Listenerマイクロサービスにデータを送る

図21:File Listenerマイクロサービスにデータを送る

data/inputディレクトリから「message1.xml」ファイルをクリックします。これはグローバルファンドのリクエストを表すテストデータです(図22)。

テストデータを表示

図22:テストデータを表示

このメッセージを、File Listenerが監視しているfileエンドポイントへ送信してみましょう。まず、Containerページから、filelistenerコンテナの右端にある矢印のアイコンをクリックして接続します(図23)。

テストメッセージをエンドポイントに送信

図23:テストメッセージをエンドポイントに送信

次にCamelタブをクリックして、filelistenerマイクロサービスの処理状況を確認するページを開きます(図24)。左ペインからEndpointsをクリックし、filelistenerのエンドポイントを表示します。

filelistenerのエンドポイントを表示する

図24:filelistenerのエンドポイントを表示する

表示されたエンドポイントの中から、file://src/data/input エンドポイントをクリックします(図25)。

file://src/data/inputエンドポイントをクリック

図25:file://src/data/inputエンドポイントをクリック

その後、図26の要領で「Sendメニューをクリック」、「Chooseメニューをクリック」、「data/input/message1.xmlを選択」、「Send the fileボタンをクリック」の順に操作して、テストメッセージを送信します。

テストメッセージの送信

図26:テストメッセージの送信

送信後、Routes以下のfileConsumerをクリックし、右側のメニューバーから「Diagram」をクリックすることで、このルートの実行状態を確認します。図27のように、「1」というカウントが表示されていれば成功です。

テストメッセージが送られたことを確認する

図27:テストメッセージが送られたことを確認する

rootコンテナに戻り、実行中のブローカーコンテナに接続します。接続するためには、画面の右端にある矢印をクリックしてください。なお実行中かどうかは、右側のアイコンが小さなダイアグラムになっているかどうかで、判別できます(図28)。

アイコンにより、最下段のmybrokercontainer2 は実行中であることが分かる

図28:アイコンにより、最下段のmybrokercontainer2 は実行中であることが分かる

次に、「ActiveMQ」タブを開きTopicを展開します(図29)。

「ActiveMQ」タブ内でTopicを展開

図29:「ActiveMQ」タブ内でTopicを展開

TopicのページでAttributesメニューをクリックして、以下のサマリ情報を確認します(図30)。リストの一番下を見ると、アプリケーションで使用している「events.newfund」というTopicが処理されている状況が分かります。

「events.newfund」Topicの処理内容を確認

図30:「events.newfund」Topicの処理内容を確認

その他のコンテナにも接続して、ルートの動きを確認してみます。コンテナ一覧からfund-persisterコンテナに接続後、Camelタブをクリックして図31のダイアグラムを確認してください。fund-processorコンテナの確認も同様に行います。

fund-persisterのルートの動作を確認

図31:fund-persisterのルートの動作を確認

fund-persisterのダイアグラムをスクロールダウンすると、Derbyへの更新処理が実行されていることが分かります(図32)。

fund-persisterでDerbyへの更新処理を確認する

図32:fund-persisterでDerbyへの更新処理を確認する

fund-persisterコンテナのLogsページを表示し、ルート内で実行されたログが表示されていることを確認してください(図33)。

fund-persisterコンテナのログを確認

図33:fund-persisterコンテナのログを確認

最後にDerbyデータベースにデータが保存されていることも確認します。

$ $DERBY_HOME/bin/ij
ij> connect 'jdbc:derby://localhost:1527//Users/kkomazaw/temp/opp.db';
ij> show tables;
ij> select * from funds;
FUNDNUMBER |TRANSACTI&|FUNDNAME
-----------------------------------------------------
1          |WITHDRAWL |Global

1行が選択されました
ij>

いかがでしたでしょうか。Fuse Management Consoleからのマイクロサービスのデプロイ、またA-MQを用いたメッセージブローカーの設定などが、容易に構築できることを実感できたと思います。

レッドハット株式会社

サービス事業統括本部 ソリューション・アーキテクト部
シニアソリューションアーキテクト
データベース管理を始め、ビジネスプロセス管理、ビジネスルール管理、システム運用管理と、一貫してミドルウェアのプリセールスエンジニアとしてITに携わる。 2013年オープンソースミドルウェアに魅せられてレッドハットに入社。少林寺拳法をたまにやりながら、お腹が出ないよう格闘している。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています