Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule 4 では実行エンジンが改良され、Mule アプリケーションを簡単に開発および拡張できるようになりました。根幹的なエンジンは、非ブロック型のリアクティブアーキテクチャに基づきます。このタスク指向の実行モデルでは、非ブロック IO コールを活用して、処理方式の不適切な設定に起因するパフォーマンスの問題を回避できます。
開発面では、いくつかの大きな変更が行われています。
エクスチェンジパターンが廃止されました。どのコネクタも応答を受信します。メッセージを非同期処理する場合は、非同期コンポーネントを使用します。
どのフローでも常に非ブロック処理方式が使用されるため、今後は処理方式を設定する必要がありません。
すべてのフローを対象とする 1 つのグローバルスレッドプールがあります。詳細は、「実行エンジン」を参照してください。
Mule 4 では、スレッド設定が同時実行管理から切り離されています。フロー上、または同時実行をサポートするコンポーネント上の同時実行を制御するには、maxConcurrency
属性を使用して、そのコンポーネントが任意の時点で受信できる同時呼び出し数を設定します。
<flow maxConcurrency=“1”>
<http:listener>
<scatter-gather maxConcurrency=“3”>
<route/>
<route/>
</scatter-gather>
</flow>
Mule 4.3 には、UBER プールと呼ばれる一意のスレッドプールが 1 つ含まれています。このスレッドプールは Mule によって管理され、同じ Mule インスタンス内のすべてのアプリケーションで共有されます。Mule は、起動時にシステム内で使用可能なリソース (メモリや CPU コアなど) を調査し、Mule が実行されている環境に合わせて自動的に調整します。このアルゴリズムはパフォーマンステストによって確立されたもので、ほとんどの状況で最適な値になっています。
1 つのスレッドプールを使用することで Mule の効率が向上し、Mule 3 に比べて、同じ量のワークロードを処理するために必要なスレッド数 (およびそれに伴うメモリフットプリント) が大幅に削減されました。
Mule イベントプロセッサーは、CPU Intensive (CPU 負荷大)、CPU Light (CPU 負荷小)、IO Intensive (IO 負荷大) のいずれの操作を行うかを Mule に示します。これらのワークロード種別によって、Mule はさまざまなワークロードを調整することができ、最適なパフォーマンスを実現するためにユーザーがスレッドプールを手動で管理する必要がなくなります。Mule は、システム内で使用可能なリソース (メモリや CPU コアなど) を調査し、スレッドプールを自動的に調整します。
新しいスレッドモデルおよびアップグレード手順についての詳細は、「実行エンジン」を参照してください。
Mule 4.2.x または 4.1.x から Mule 4.3.x にアップグレードする場合は、次のアクションを実行します。
適用されるカスタムスレッド設定がない場合 (scheduler-pools.conf
ファイルを使用、または Mule アプリケーションで直接)、アクションは必要ありません。
適用されるカスタムスレッド設定がある場合、デフォルト設定を使用して Mule アプリケーションをテストします。
UBER プール戦略をはじめとする Mule 4.3 で実装されたパフォーマンス更新のために、カスタムスレッド設定が不要な場合もあります。
テストでカスタム設定がまだ必要であることが確認された場合は、アプリケーションのリソース管理、いずれかのアプリケーション連動関係、または Mule インスタンスに問題があることが考えられます。カスタム設定を使用すると、リソースの使用が不十分になる場合があり、基盤となる問題が見えてこないこともあります。