反模式:保留已部署且未使用的 NodeJS API Proxy

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

Apigee Edge 其中一項獨特且實用的功能,就是能將 NodeJS 應用程式納入 API Proxy 中。這可讓開發人員使用 Edge 建立事件導向的伺服器端應用程式。

反模式

部署 API Proxy 是讓這類 Proxy 提供 API 要求的過程。每個部署的 API Proxy 都會載入至訊息處理器的執行階段記憶體,以便為特定 API Proxy 提供 API 要求。因此,執行階段記憶體用量會隨著已部署 API Proxy 數量增加而增加。如果未部署任何未使用的 API Proxy,可能會導致不必要的執行階段記憶體使用。

以 NodeJS API Proxies 而言,會產生進一步的影響。

平台會為每個部署的 NodeJS API Proxy 啟動「節點應用程式」。節點應用程式類似訊息處理器 JVM 程序中的獨立節點伺服器執行個體。

實際上,針對每個已部署的 NodeJS API Proxy,Edge 會啟動每個節點伺服器,以處理對應 Proxy 的要求。如果同一個 NodeJS API Proxy 部署在多個環境中,系統會為每個環境啟動對應的節點應用程式。如果有許多部署但未使用的 NodeJS API Proxy,就會啟動多個節點應用程式。未使用的 NodeJS Proxy 會轉譯為閒置的節點應用程式,這類應用程式會耗用記憶體,並影響應用程式程序的啟動時間。

已使用的 Proxy 未使用的 Proxy
# 個 Proxy # 個已部署的環境 已啟動 # 個節點應用程式 # 個 Proxy # 個已部署的環境 已啟動 # 個節點應用程式
10 開發、測試、實際工作環境 (3) 10x3=30 12 開發、測試、實際工作環境 (3) 12x3=36

在上圖中,我們啟動了 36 個未使用的節點應用程式,該應用程式會佔用系統記憶體,並對程序啟動時間造成不良影響。

影響程度

  • 高記憶體用量與串聯影響影響應用程式處理後續要求的能力
  • 可能對實際提供流量的 API Proxy 造成效能影響

最佳做法

  • 取消部署任何未使用的 API Proxy
  • 使用 Analytics Proxy 效能資訊主頁判斷哪些 Proxy 不提供流量,取消部署您不需要的 Proxy

其他資訊