Antipattern: استدعاء خادم وكيل داخل خادم وكيل باستخدام رمز مخصص أو كهدف

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

يتيح لك Edge استدعاء خادم وكيل لواجهة برمجة التطبيقات من خادم وكيل آخر لواجهة برمجة التطبيقات. وهذه الميزة مفيدة على وجه الخصوص إذا كان لديك خادم وكيل لواجهة برمجة التطبيقات يحتوي على رمز قابل لإعادة الاستخدام يمكن استخدامه من خلال الخوادم الوكيلة الأخرى لواجهة برمجة التطبيقات.

مضادة للأنماط

يؤدي استدعاء خادم وكيل لواجهة برمجة تطبيقات من خادم آخر باستخدام HTTPTargetConnection في نقطة النهاية المستهدفة أو باستخدام رمز JavaScript مخصّص إلى قفزة إضافية في الشبكة.

استدعاء الخادم الوكيل 2 من الخادم الوكيل 1 باستخدام HTTPTargetConnection

يستدعي نموذج الرمز البرمجي التالي الخادم الوكيل 2 من الخادم الوكيل 1 باستخدام HTTPTargetConnection:

<!-- /antipatterns/examples/2-1.xml -->
<HTTPTargetConnection>
  <URL>http://myorg-test.apigee.net/proxy2</URL>
</HTTPTargetConnection>

استدعِ الخادم الوكيل 2 من الخادم الوكيل 1 من رمز JavaScript.

يستدعي نموذج الرمز التالي الخادم الوكيل 2 من الخادم الوكيل 1 باستخدام JavaScript:

<!-- /antipatterns/examples/2-2.xml -->
var response = httpClient.send('http://myorg-test.apigee.net/proxy2);
response.waitForComplete();

مسار الرمز

لفهم سبب وجود عيب متأصل في ذلك، نحتاج إلى فهم المسار الذي يتخذه الطلب كما هو موضح في الرسم التخطيطي أدناه:

الشكل 1: مسار الرمز

كما هو موضح في الرسم التخطيطي، يجتاز الطلب عدة مكونات موزعة، بما في ذلك جهاز التوجيه ومعالج الرسائل.

في نماذج التعليمات البرمجية أعلاه، يعني استدعاء الوكيل 2 من الخادم الوكيل 1 أنه يجب توجيه الطلب من خلال المسار التقليدي (أي جهاز التوجيه > MP) في وقت التشغيل. سيكون هذا أشبه باستدعاء واجهة برمجة تطبيقات من أحد العملاء وبالتالي إجراء قفزات متعددة في الشبكة تؤدي إلى زيادة وقت الاستجابة. هذه القفزات غير ضرورية نظرًا إلى أن طلب الخادم الوكيل 1 "وصل" إلى نائب الرئيس.

التأثير

يؤدي استدعاء خادم وكيل لواجهة برمجة التطبيقات من خادم وكيل آخر لواجهة برمجة التطبيقات إلى قفزات غير ضرورية على الشبكة، حيث يجب تمرير الطلب من معالج رسائل إلى معالج رسائل آخر.

أفضل ممارسة

  • استخدِم ميزة تسلسل الخادم الوكيل لاستدعاء خادم وكيل لواجهة برمجة التطبيقات عن الآخر. تُعدّ تسلسل الخادم الوكيل أكثر فعالية لأنّها تستخدم الاتصال المحلي للإشارة إلى نقطة النهاية المستهدفة (خادم وكيل آخر لواجهة برمجة التطبيقات).

    يعرض نموذج الرمز تسلسل الخادم الوكيل باستخدام LocalTargetConnection في تعريف نقطة النهاية:

    <!-- /antipatterns/examples/2-3.xml -->
    <LocalTargetConnection>
      <APIProxy>proxy2</APIProxy>
      <ProxyEndpoint>default</ProxyEndpoint>
    </LocalTargetConnection>
    

    ويتم تنفيذ الخادم الوكيل لواجهة برمجة التطبيقات الذي تم استدعاؤه داخل معالج الرسائل نفسه، ونتيجةً لذلك، يتجنّب قفزة الشبكة كما هو موضح في الشكل التالي:

    الشكل 2: مسار الرموز مع تسلسل الخادم الوكيل

محتوى إضافي للقراءة