您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
Apigee Edge 的一項獨特且實用的功能,就是能夠在 API Proxy 中包裝 NodeJS 應用程式。這可讓開發人員使用 Edge 建立事件驅動的伺服器端應用程式。
反模式
部署 API Proxy 是指讓 API Proxy 可處理 API 要求的程序。每個已部署的 API Proxy 都會載入至訊息處理器的執行階段記憶體,以便為特定 API Proxy 提供 API 要求。因此,隨著部署的 API Proxy 數量增加,執行階段記憶體用量也會增加。保留已部署但未使用的 API Proxy,可能會導致不必要地使用執行階段記憶體。
在 NodeJS API Proxy 的情況下,還有其他影響。
平台會為每個已部署的 NodeJS API Proxy 啟動「Node 應用程式」。Node 應用程式類似於 Message Processor JVM 程序中的獨立節點伺服器例項。
實際上,Edge 會為每個已部署的 NodeJS API Proxy 啟動一個節點伺服器,以便處理相應 Proxy 的要求。如果在多個環境中部署相同的 NodeJS API Proxy,則會為每個環境啟動對應的節點應用程式。如果有許多已部署但未使用的 NodeJS API Proxy,系統就會啟動多個 Node 應用程式。未使用的 NodeJS Proxy 會轉換為閒置的 Node 應用程式,這會耗用記憶體,並影響應用程式程序的啟動時間。
已使用的 Proxy | 未使用的 Proxy | ||||
---|---|---|---|---|---|
# Proxy | # 已部署的環境 | # nodeapps Launched | # Proxy | # 已部署的環境 | # 已啟動的節點應用程式 |
10 | dev、test、prod (3) | 10x3=30 | 12 | dev、test、prod (3) | 12x3=36 |
在上方插圖中,系統會啟動 36 個未使用的 nodeapps,導致系統記憶體用盡,並對程序的啟動時間造成不利影響。
影響
- 記憶體用量偏高,且會連帶影響應用程式處理後續要求的能力
- 對實際提供流量的 API Proxy 可能造成的效能影響
最佳做法
- 取消部署所有未使用的 API Proxy
- 使用 Analytics Proxy Performance 資訊主頁,判斷哪些 Proxy 無法提供流量;取消部署不需要的 Proxy