フィードバックを送信
アンチパターン: 未使用の NodeJS API プロキシをデプロイしたままにする
Apigee Edge 独自の便利な機能の 1 つに、NodeJS アプリケーションを API プロキシでラップする機能があります。この機能を使うと、Edge を使用してイベント ドリブンのサーバー側アプリケーションを作成できます。
アンチパターン
API プロキシのデプロイとは、API プロキシを API リクエストの処理に利用できるようにするプロセスです。デプロイされた各 API プロキシは Message Processor のランタイム メモリに読み込まれることで、特定の API プロキシの API リクエストを処理できるようになります。そのため、デプロイされた API プロキシの数が増えると、ランタイム メモリの使用量が増加します。使用していない API プロキシをデプロイしたままにすると、ランタイム メモリが無駄に使用される可能性があります。
NodeJS API プロキシの場合、影響が増大します。
このプラットフォームでは、デプロイされたすべての NodeJS API プロキシに対して「Node アプリ」が起動します。Node アプリは、Message Processor JVM プロセス上のスタンドアロン ノードサーバー インスタンスに似ています。
実際に Edge では、デプロイされたそれぞれの NodeJS API プロキシに対してノードサーバーを起動し、対応するプロキシのリクエストを処理します。同じ NodeJS API プロキシが複数の環境にデプロイされている場合、対応するノードアプリがそれぞれの環境用に起動されます。デプロイされているものの使用されていない NodeJS API プロキシが多数ある状況では、多数の Node アプリが起動します。未使用の NodeJS プロキシはアイドル状態の Node アプリとなり、メモリを消費し、アプリケーション プロセスの起動時間に影響を及ぼします。
使用済みプロキシ
未使用プロキシ
プロキシ数
デプロイされた環境数
起動された Node アプリ数
プロキシ数
デプロイされた環境数
起動された Node アプリ数
10
開発、テスト、本番(3)
10x3=30
12
開発、テスト、本番(3)
12x3=36
上の図では、36 個の未使用の Node アプリが起動し、これによりシステムメモリが使い果たされて、プロセスの起動時間に悪影響が及びます。
影響
メモリ使用率が高くなり、さらなるリクエストを処理するアプリケーションの能力に対してカスケード効果が生じる
実際にトラフィックを処理している API プロキシのパフォーマンスに影響が生じる可能性がある
ベスト プラクティス
未使用の API プロキシをデプロイ解除します
Analytics Proxy Performance ダッシュボードを使用して、トラフィックを処理していないプロキシを特定し、不要なプロキシをデプロイ解除します
関連情報
フィードバックを送信
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンス により使用許諾されます。コードサンプルは Apache 2.0 ライセンス により使用許諾されます。詳しくは、Google Developers サイトのポリシー をご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2020-07-09 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
ご意見をお聞かせください
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2020-07-09 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2020-07-09 UTC。"],[],[]]