עיצוב נגדי: השארת שרתי proxy של NodeJS API שאינם בשימוש

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

אחת התכונות הייחודיות והשימושיות של Apigee Edge היא היכולת לעטוף אפליקציית NodeJS בשרת proxy של API. כך המפתחים יכולים ליצור אפליקציות מבוססות-אירועים בצד השרת באמצעות Edge.

תבנית אנטי

פריסה של שרתי proxy ל-API היא התהליך של הפיכתם לזמינים כדי לטפל בבקשות API. כל שרתי ה-proxy ל-API שנפרסו נטענים לזיכרון זמן הריצה של מעבד ההודעות כדי שיוכלו לטפל בבקשות ה-API של שרת ה-proxy הספציפי ל-API. לכן, השימוש בזיכרון בזמן הריצה גדל ככל שמספר שרתי ה-API הפרוקסי שמוצבים גדל. השארת שרתי proxy של API שלא נעשה בהם שימוש עלולה לגרום לשימוש מיותר בזיכרון זמן הריצה.

במקרה של NodeJS API Proxies, יש השלכה נוספת.

הפלטפורמה מפעילה 'אפליקציית Node' לכל פרוקסי של NodeJS API שנפרס. אפליקציית Node דומה למופע של שרת Node עצמאי בתהליך JVM של מעבד ההודעות.

למעשה, לכל שרת proxy של NodeJS API שנפרס, Edge מפעיל שרת צמתים כדי לעבד בקשות עבור שרתי ה-proxy המתאימים. אם אותו NodeJS API Proxy נפרס בכמה סביבות, מופעלת אפליקציית צומת תואמת לכל סביבה. במצבים שבהם יש הרבה שרתי proxy של NodeJS API שנפרסו אבל לא נמצאים בשימוש, מופעלות כמה אפליקציות Node. שרתי proxy של NodeJS שאינם בשימוש מתורגמים לאפליקציות Node במצב בלי פעילות שצורכות זיכרון ומשפיעות על זמני ההפעלה של תהליך האפליקציה.

דמויות Proxy בשימוש Unused Proxies
# Proxies # Deployed Environments ‫# nodeapps Launched # Proxies # Deployed Environments # אפליקציות Node שהופעלו
10 dev, test, prod (3) 10x3=30 12 dev, test, prod (3) ‫12x3=36

באיור שלמעלה, מופעלות 36 אפליקציות nodeapp שלא נמצאות בשימוש, מה שגורם לניצול של זיכרון המערכת ומשפיע לרעה על זמני ההפעלה של התהליך.

השפעה

  • שימוש גבוה בזיכרון ואפקט מדורג על היכולת של האפליקציה לעבד בקשות נוספות
  • ההשפעה האפשרית על הביצועים של שרתי ה-proxy ל-API שמשרתים בפועל תנועה

שיטה מומלצת

  • ביטול הפריסה של שרתי proxy ל-API שלא נעשה בהם שימוש
  • משתמשים בלוח הבקרה Analytics Proxy Performance כדי לקבוע אילו שרתי proxy לא משרתים תנועה, ומבטלים את הפריסה של אלה שלא צריך.

קריאה נוספת