Order APIは、バックエンドの在庫データベースで注文の商品の詳細を参照するための一連のAPI呼び出しをトリガーします。Order APIはOrderItemsプロセスAPIを呼び出し、OrderItemsプロセスAPIはInventoryシステムAPIを呼び出します。InventoryシステムAPIは、バックエンドの在庫データベースでデータベース操作を実行します。 Inventory システム API とデータベース間のネットワーク接続は信頼性が低く、予期しない時間にハングすることが知られています。 Order API が Orderltems プロセス API からの応答を 2 秒以上待たないように、API 処理シーケンスのどこに 2 秒のタイムアウトを構成する必要がありますか?
正解:A
API フローとタイムアウト要件を理解する: Order API は OrderItems プロセス API への呼び出しを開始し、次に Inventory システム API を呼び出して在庫データベースから詳細を取得します。 この要件では、チェーンのさらに下流 (在庫システム API とデータベースの間) で遅延が発生した場合でも、Order API は OrderItems プロセス API からの応答を 2 秒以上待機してはならないと規定されています。 適切なタイムアウト場所の選択: OrderItemsプロセスAPIレベルでタイムアウトを設定することで、在庫システムAPIの応答に2秒以上かかる場合、OrderItemsプロセスAPIはリクエストを終了し、タイムアウト応答をOrder APIに返します。これにより、データベースへの接続が不安定なためにOrder APIが無期限に待機し続けることを防ぎます。 在庫システム API またはデータベースでタイムアウトが設定されている場合、OrderItems プロセス API は依然として応答を待機しているため、Order API に直接役立つことはありません。 各オプションの詳細な分析: オプションA(正解):OrderItemsプロセスAPIにタイムアウトを設定することで、在庫システムAPIからの応答を待つ時間を制御できます。在庫システムAPIが2秒以内に応答しない場合、OrderItemsプロセスAPIは呼び出しを終了し、Order APIにタイムアウト応答を返すことで要件を満たします。 オプション B: Order API でタイムアウトを設定しても、OrderItems プロセス API レベルでの待機時間は制限されません。つまり、OrderItems プロセス API は依然として Inventory システム API を無期限に待機することになり、遅延が長くなります。 オプション C: 在庫システム API でタイムアウトを設定すると、データベースへの接続にのみ影響し、OrderItems プロセス API が在庫システム API の応答を待機する時間には影響しません。 オプション D: データベース タイムアウトは通常、データベース操作用に構成され、API チェーン全体の API 応答時間を直接制御しないため、このコンテキストではデータベースにタイムアウトを設定することは実現できません。 結論: オプションAは最適な選択肢です。これにより、データベースへのダウンストリーム接続がハングした場合でも、OrderItemsプロセスAPIがOrder APIを必要な2秒以上保持することがなくなります。この構成は、APIオーケストレーションにおけるタイムアウト設定に関するMuleSoftのベストプラクティスに準拠しており、依存関係を管理し、一連のAPI呼び出しにおける遅延を防止します。 タイムアウト設定の詳細については、タイムアウトの処理と API オーケストレーションのベスト プラクティスに関する MuleSoft のドキュメントを参照してください。