מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
Edge מאפשר להפעיל שרת Proxy אחד ל-API משרת Proxy אחר ל-API. תכונה זו שימושית במיוחד כאשר יש לכם שרת Proxy ל-API שמכיל קוד לשימוש חוזר שיכול לשמש שרתי proxy אחרים ל-API.
נגד דוגמת עיצוב
הפעלת שרת Proxy אחד ל-API באמצעות HTTPTargetConnection בנקודת הקצה של היעד, או קוד JavaScript מותאם אישית יגרום לצעד נוסף ברשת.
הפעלת שרת Proxy 2 מ-Proxy 1 באמצעות HTTPTargetConnection
דוגמת הקוד הבאה מפעילה את שרת Proxy 2 מ-Proxy 1 באמצעות HTTPTargetConnection:
<!-- /antipatterns/examples/2-1.xml --> <HTTPTargetConnection> <URL>http://myorg-test.apigee.net/proxy2</URL> </HTTPTargetConnection>
הפעלת שרת Proxy 2 מ-Proxy 1 מקוד JavaScript
דוגמת הקוד הבאה מפעילה את Proxy 2 מ-Proxy 1 באמצעות JavaScript:
<!-- /antipatterns/examples/2-2.xml --> var response = httpClient.send('http://myorg-test.apigee.net/proxy2); response.waitForComplete();
זרימת קוד
כדי להבין למה יש לכך חיסרון מהותי, אנחנו צריכים להבין את המסלול של הבקשה לפי התרשים הבא:
כפי שמוצג בדיאגרמה, בקשה חוצה מספר רכיבים מבוזרים, כולל הנתב ומעבד ההודעות.
בדוגמאות הקוד שלמעלה, הפעלת שרת Proxy 2 מ-Proxy 1 פירושה שצריך לנתב את הבקשה במסלול המסורתי (למשל 'נתב' > 'MP') בזמן הריצה. הפעולה הזו דומה להפעלת API מהלקוח, כך שעושים כמה צעדי רשת שנוספים לזמן האחזור. הצעדות האלה אין צורך מאחר שהבקשה של Proxy 1 כבר "הגיעה"
השפעה
הפעלת שרת Proxy אחד של API משרת Proxy אחר ל-API גורמת לפעולות רשת מיותרות, וכתוצאה מכך הבקשה צריכה לעבור ממעבד הודעות אחד למעבד הודעות אחר.
שיטה מומלצת
- שימוש בשרשראות שרת proxy
להפעלת שרת Proxy של API אחד לאחר. שרשרת שרת ה-proxy היא יותר
השיטה יעילה כי היא משתמשת בחיבור מקומי כדי להפנות לנקודת הקצה של היעד (שרת Proxy אחר ל-API).
דוגמת הקוד מציגה שרשור של שרתי proxy באמצעות LocalTargetConnection בנקודת הקצה הגדרה:
<!-- /antipatterns/examples/2-3.xml --> <LocalTargetConnection> <APIProxy>proxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
שרת ה-proxy ל-API שמופעל על ידי ה-API מופעל באותו מעבד הודעות. כתוצאה מכך, צעד הרשת, כפי שמוצג באיור הבא: