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: مسار الرمز مع سلسلة الخادم الوكيل

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