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

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

تتيح لك 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 أنّه يجب توجيه الطلب من خلال المسار التقليدي (أي جهاز التوجيه > معالج الرسائل) في وقت التشغيل. سيكون ذلك مشابهًا لاستدعاء واجهة برمجة تطبيقات من جهاز عميل، ما يؤدي إلى إجراء عدة عمليات نقل عبر الشبكة تزيد من وقت الاستجابة. هذه الخطوات غير ضرورية لأنّ طلب الخادم الوكيل 1 قد "وصل" إلى الشريك الإعلاني.

التأثير

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

أفضل ممارسة

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

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

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

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

    الشكل 2: مسار الرمز البرمجي مع ربط الخوادم الوكيلة

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