Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerRuntime Manager の [Queues (キュー)] タブから、仮想マシン (VM) または段階的なイベント駆動型アーキテクチャ ( SEDA) のキューを、デプロイされたアプリケーションのフロー内で表示および制御できます。
キューは、CloudHub ワーカーにデプロイされたアプリケーションでのみ使用可能です。Runtime Manager からローカルサーバーにデプロイするアプリケーションでは使用できません。詳細は、「デプロイメントオプション」を参照してください。
CloudHub では、フロー内から自動的にキューが検出され、[Queues (キュー)] タブにリストされます。
基になるアプリケーションに一切変更を加えずに、以下を行うことができます。
各キューでキューに格納されているメッセージと送信中のメッセージの数を確認する。
過去 24 時間のキューのスループットをスナップショットとして表示する。
キューで待機中のすべてのメッセージをクリアする。
また、永続的なキューの保存データの暗号化を有効にすることもできます。これにより、永続的なキューに書き出される共有アプリケーションデータは必ず暗号化されます。
[Queues (キュー)] タブは、次のようなユースケースで役立ちます。
アプリケーションのキューを実行時に可視化したい。
メッセージが期待どおりにキューを通過しているかどうかを確認するためにアプリケーションをテストする。
アプリケーションがメッセージの処理で停滞しており、問題を解決するためにそのキューだけメッセージを消去したい。
キューを有効にする手順は、次のとおりです。
1 つ以上のキューが含まれる CloudHub にアプリケーションをデプロイします。
「VM Connector」を参照してください。
Runtime Manager で、アプリケーションをクリックし、[Manage Application (アプリケーションを管理)] をクリックします。
[Persistent queues (永続的なキュー)] のチェックボックスをクリックします。
アプリケーションをデプロイするときにこの設定を有効にする場合は、[Deploy Application (アプリケーションをデプロイ)] をクリックします。
既存のアプリケーションを更新する場合は、[Apply Changes (変更を適用)] をクリックします。
[Persistent queues (永続的なキュー)] を有効にした後、左ナビゲーションメニューの [Queues (キュー)] をクリックします。アプリケーション内のキューがアプリケーションに表示される順序でリストされます。
各キューの名前は、関連付けられた VM エンドポイントの path
属性によって、または SEDA キューの場合はフロー名から判断されます。
[Queued (キュー内)] 列には、アプリケーションの各キューで現在待機中のメッセージ数が表示されます。
[In-Flight (インフライト)] 列には、そのキューの後にフローで処理中のメッセージ数が表示されます。
インフライトメッセージは処理が完了するまでまだキュー内にあり、完了後にキューから削除されます。
[Processed Messages (処理済みメッセージ)] 列には、過去 24 時間に各キューを通過して処理されたメッセージ数を表すサムネイルグラフが表示されます。
[Queued (キュー内)] 列と [In-Flight (インフライト)] 列は 5 秒ごとに更新され、[Processed Messages (処理済みメッセージ)] のグラフは 5 分ごとに更新されます。
1 つまたは複数のキューをクリアするには、クリアするキューのチェックボックスをオンにしてから [Clear (クリア)] をクリックします。
Runtime Manager は、クリアするキューとこのプロセスの所要時間を確認する警告メッセージを表示します。[Clear Queues (キューをクリア)] をクリックして続行します。
確認した後、選択したキューにはクリアプロセスが完了するまで「Clearing queue in progress (キューをクリアしています)」メッセージが表示されます。
キューをクリアすると、キュー内の待機中メッセージとインフライトメッセージがすべて消去されます。キューがクリアされると、キューは直ちにメッセージの受け入れを再開します。
すべての永続的なキューで保存時のデータの暗号化を有効にできます。この機能を有効にすると、永続的なキューに書き込まれる共有アプリケーションデータが暗号化され、セキュリティとコンプライアンスのニーズを満たすことができます。
暗号化を有効にして、その後無効にすると、以前に暗号化されているメッセージは読み取り不可になります。 |
Mule アプリケーションで Batch コンポーネントおよび永続的なキューを使用している場合、バッチレコードが複数回処理されることがあります。 すべてのバッチレコードは Amazon SQS に保存され、デフォルトではメッセージの表示が 70 秒に設定されています。 バッチプロセスの実行時間が 70 秒を超える場合、バッチプロセスは同じメッセージを再度認識して、メッセージを複数回処理することがあります。
この問題を回避するには、アプリケーションの [Settings (設定)] ページの [Properties (プロパティ)] タブで persistent.queue.min.timeout
システムパラメーターを大きな値に設定します。
たとえば、バッチプロセスの完了まで 30 分かかる場合、値を persistent.queue.min.timeout=2700000
ミリ秒 (45 分) に設定します。
最大値は 43000000 ミリ秒 (12 時間) です。
アプリケーションで永続的なキューを有効にする場合は、次の点に注意してください。
永続的なキューでは 1 回のみのメッセージ配信は保証されません。重複するメッセージが送信される場合もあります。1 回のみのメッセージ配信が重要なユースケースの場合、永続的なキューを有効にしないでください。
[Queues (キュー)] タブを使用してキューをクリアする場合、キューのクリアプロセス中にキューに送信された新しいメッセージは失われる可能性があります。
永続的なキューを有効にすると、パフォーマンスへの影響があります。小さなメッセージ (50kb 以下) をキューに追加するには 10 ~ 20 ミリ秒 (ms) かかります。一方で、同じメッセージをキューから削除するのには 70 ~ 100ms かかることがあります。