Phản mẫu: Để triển khai các Proxy API NodeJS không sử dụng

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Một trong những tính năng độc đáo và hữu ích của Apigee Edge là khả năng bao bọc một ứng dụng NodeJS trong một API Proxy. Điều này cho phép nhà phát triển tạo các ứng dụng phía máy chủ dựa trên sự kiện bằng Edge.

Antipattern

Triển khai API Proxy là quá trình cung cấp các API Proxy để phân phát yêu cầu API. Mỗi API Proxy được triển khai sẽ được tải vào bộ nhớ thời gian chạy của Message Processor để có thể phân phát các yêu cầu API cho API Proxy cụ thể. Do đó, mức sử dụng bộ nhớ trong thời gian chạy sẽ tăng lên khi số lượng API Proxy được triển khai tăng lên. Việc để lại bất kỳ API Proxy nào chưa dùng đến đã triển khai có thể gây ra tình trạng sử dụng bộ nhớ thời gian chạy không cần thiết.

Trong trường hợp của NodeJS API Proxies, có một hàm ý khác.

Nền tảng này sẽ chạy một "ứng dụng Node" cho mọi Proxy API NodeJS đã triển khai. Ứng dụng Node tương tự như một phiên bản máy chủ nút độc lập trên quy trình JVM của Trình xử lý tin nhắn.

Trên thực tế, đối với mỗi Proxy API NodeJS được triển khai, Edge sẽ khởi chạy một máy chủ nút cho mỗi Proxy để xử lý các yêu cầu cho các proxy tương ứng. Nếu cùng một NodeJS API Proxy được triển khai trong nhiều môi trường, thì một ứng dụng nút tương ứng sẽ được khởi chạy cho mỗi môi trường. Trong trường hợp có nhiều Proxy API NodeJS đã triển khai nhưng không dùng đến, nhiều ứng dụng Node sẽ được khởi chạy. Các proxy NodeJS không dùng đến sẽ chuyển thành các ứng dụng Node ở trạng thái chờ, tiêu thụ bộ nhớ và ảnh hưởng đến thời gian khởi động của quy trình ứng dụng.

Proxy đã dùng Proxy không dùng đến
# Proxies # Deployed Environments Đã ra mắt # nodeapps # Proxies # Deployed Environments # Ứng dụng Node đã ra mắt
10 dev, test, prod (3) 10x3=30 12 dev, test, prod (3) 12x3=36

Trong hình minh hoạ ở trên, 36 nodeapp không dùng đến đã được khởi chạy, điều này làm tiêu hao bộ nhớ hệ thống và ảnh hưởng xấu đến thời gian khởi động của quy trình.

Tác động

  • Mức sử dụng bộ nhớ cao và hiệu ứng xếp tầng ảnh hưởng đến khả năng xử lý các yêu cầu tiếp theo của ứng dụng
  • Tác động có thể xảy ra đối với hiệu suất của các API Proxy thực sự đang phân phát lưu lượng truy cập

Phương pháp hay nhất

  • Huỷ triển khai mọi API Proxy không dùng đến
  • Sử dụng trang tổng quan Hiệu suất của proxy Analytics để xác định những proxy không phân phát lưu lượng truy cập; huỷ triển khai những proxy bạn không cần

Tài liệu đọc thêm