JBoss Fuseを使ってみる その4:A-MQ
デモの実行
では早速、このデモを動かしてみましょう。デモの動作は、大まかには以下のようになります。
- File Listenerが監視するディレクトリにメッセージを送信
- 管理画面上でメッセージが処理されたことを確認
- ログ管理画面で出力結果を確認
- データベースにログが生成されていることを確認
File Listenerマイクロサービスは、特定のファイルディレクトリを監視していますので、そこにメッセージを送ってみます。まずはWikiページでfsi/file.listener プロファイルを選択すると、図21の画面が表示されますので、左ペインから「data」ディレクトリをクリックします。
data/inputディレクトリから「message1.xml」ファイルをクリックします。これはグローバルファンドのリクエストを表すテストデータです(図22)。
このメッセージを、File Listenerが監視しているfileエンドポイントへ送信してみましょう。まず、Containerページから、filelistenerコンテナの右端にある矢印のアイコンをクリックして接続します(図23)。
次にCamelタブをクリックして、filelistenerマイクロサービスの処理状況を確認するページを開きます(図24)。左ペインからEndpointsをクリックし、filelistenerのエンドポイントを表示します。
表示されたエンドポイントの中から、file://src/data/input エンドポイントをクリックします(図25)。
その後、図26の要領で「Sendメニューをクリック」、「Chooseメニューをクリック」、「data/input/message1.xmlを選択」、「Send the fileボタンをクリック」の順に操作して、テストメッセージを送信します。
送信後、Routes以下のfileConsumerをクリックし、右側のメニューバーから「Diagram」をクリックすることで、このルートの実行状態を確認します。図27のように、「1」というカウントが表示されていれば成功です。
rootコンテナに戻り、実行中のブローカーコンテナに接続します。接続するためには、画面の右端にある矢印をクリックしてください。なお実行中かどうかは、右側のアイコンが小さなダイアグラムになっているかどうかで、判別できます(図28)。
次に、「ActiveMQ」タブを開きTopicを展開します(図29)。
TopicのページでAttributesメニューをクリックして、以下のサマリ情報を確認します(図30)。リストの一番下を見ると、アプリケーションで使用している「events.newfund」というTopicが処理されている状況が分かります。
その他のコンテナにも接続して、ルートの動きを確認してみます。コンテナ一覧からfund-persisterコンテナに接続後、Camelタブをクリックして図31のダイアグラムを確認してください。fund-processorコンテナの確認も同様に行います。
fund-persisterのダイアグラムをスクロールダウンすると、Derbyへの更新処理が実行されていることが分かります(図32)。
fund-persisterコンテナのLogsページを表示し、ルート内で実行されたログが表示されていることを確認してください(図33)。
最後に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を用いたメッセージブローカーの設定などが、容易に構築できることを実感できたと思います。