안티패턴: 사용하지 않는 NodeJS API 프록시를 배포된 상태로 유지

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

Apigee Edge의 독특하고 유용한 기능 중 하나는 API 프록시에 NodeJS 애플리케이션을 래핑하는 것입니다. 이를 통해 개발자는 Edge를 사용하여 이벤트 기반 서버 측 애플리케이션을 만들 수 있습니다.

안티패턴

API 프록시 배포는 API 요청을 처리할 수 있도록 하는 프로세스입니다. 배포된 각 API 프록시는 특정 API 프록시에 대한 API 요청을 처리할 수 있도록 메시지 프로세서의 런타임 메모리에 로드됩니다. 따라서 배포된 API 프록시 수가 증가하면 런타임 메모리 사용량도 증가합니다. 사용하지 않는 API 프록시를 배포한 상태로 두면 런타임 메모리가 불필요하게 사용될 수 있습니다.

NodeJS API 프록시의 경우, 또 다른 함의가 있습니다.

플랫폼은 배포된 모든 NodeJS API 프록시에 대해 '노드 앱'을 시작합니다. 노드 앱은 메시지 프로세서 JVM 프로세스의 독립형 노드 서버 인스턴스와 유사합니다.

실제로, 배포된 모든 NodeJS API 프록시에 대해 Edge는 각각 노드 서버를 시작하여 해당 프록시에 대한 요청을 처리합니다. 동일한 NodeJS API 프록시가 여러 환경에 배포되면 각 환경에 해당하는 노드 앱이 실행됩니다. 배포되었지만 사용하지 않는 NodeJS API 프록시가 많은 상황에서는 여러 노드 앱이 실행됩니다. 미사용 NodeJS 프록시는 메모리를 소비하고 애플리케이션 프로세스의 시작 시간에 영향을 미치는 유휴 노드 앱으로 변환됩니다.

사용된 프록시 사용되지 않은 프록시
프록시 #개 배포된 환경 #개 nodeapps #개 실행됨 프록시 #개 배포된 환경 #개 노드 앱 #개 출시됨
10 개발, 테스트, 프로덕션 (3) 10x3=30 12 개발, 테스트, 프로덕션 (3) 12x3=36

위 그림에서는 사용하지 않는 36개의 노드 앱이 실행되어 시스템 메모리를 사용하고 프로세스 시작 시간에 부정적인 영향을 미칩니다.

영향

  • 높은 메모리 사용량 및 애플리케이션의 추가 요청 처리 능력에 연쇄적 영향
  • 실제로 트래픽을 제공하는 API 프록시에 성능에 영향을 미칠 가능성이 높음

권장사항

  • 사용하지 않는 API 프록시 배포 취소
  • 애널리틱스 프록시 성능 대시보드를 사용하여 트래픽을 제공하지 않는 프록시를 확인하고 필요하지 않은 프록시는 배포 취소합니다.

추가 자료