ضبط مهلة I/O على معالجات الرسائل

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

يشرح هذا المستند كيفية إعداد مهلة وحدات الإدخال والإخراج لمعالجات الرسائل Apigee Edge.

تمثّل مهلة وحدات الإدخال والإخراج في معالج الرسائل الوقت الذي ينتظره معالج الرسائل إما لتلقّي استجابة من الخادم الخلفية أو حتى يكون المقبس جاهزًا لكتابة طلب إلى خادم الخلفية قبل انتهاء المهلة.

القيمة التلقائية لمهلة وحدات الإدخال والإخراج لمعالج الرسائل هي 55 seconds. تسري فترة المهلة هذه على خوادم الخلفية التي تم إعدادها في إعداد نقطة النهاية المستهدفة وفي سياسة ServiceCallout في الخادم الوكيل لواجهة برمجة التطبيقات.

يمكن زيادة مهلة وحدات الإدخال والإخراج لمعالجات الرسائل أو خفضها من القيمة التلقائية التي تبلغ 55 seconds بناءً على احتياجاتك. ويمكن ضبطه في الأماكن التالية:

  • في الخادم الوكيل لواجهة برمجة التطبيقات:
    • نقطة النهاية المستهدفة
    • سياسة وسيلة شرح الخدمة
  • في معالج الرسائل

تتحكم الخصائص التالية في مهلة وحدات الإدخال والإخراج في معالجات الرسائل:

اسم الموقع الموقع الجغرافي الوصف
io.timeout.millis

الخادم الوكيل لواجهة برمجة التطبيقات:

  • نقطة النهاية المستهدفة
  • سياسة وسائل شرح الخدمة

هذا هو الحد الأقصى للوقت الذي يُجري فيه معالج الرسائل ما يلي:

  • تنتظر تلقي استجابة من خادم الخلفية بعد إنشاء الاتصال وإرسال الطلب إلى خادم الخلفية أو
  • تنتظر إلى أن يصبح المقبس جاهزًا إلى أن يرسل "معالج الرسائل" الطلب إلى الخادم الخلفي.

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

تأخذ هذه السمة تلقائيًا القيمة المحدّدة للسمة HTTPTransport.io.timeout.millis في معالج الرسائل. القيمة التلقائية هي 55 seconds.

إذا تم تعديل هذه السمة باستخدام قيمة مهلة جديدة لخادم وكيل محدّد لواجهة برمجة التطبيقات، لن يتأثر سوى الخادم الوكيل لواجهة برمجة التطبيقات هذا.

HTTPTransport.io.timeout.millis معالج الرسائل

هذا هو الحد الأقصى للوقت الذي يُجري فيه معالج الرسائل ما يلي:

  • تنتظر تلقي استجابة من خادم الخلفية، بعد إنشاء الاتصال وإرسال الطلب إلى خادم الخلفية أو
  • تنتظر إلى أن يصبح المقبس جاهزًا إلى أن يرسل "معالج الرسائل" الطلب إلى الخادم الخلفي.

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

يتم استخدام هذه الخاصية لجميع الخوادم الوكيلة لواجهة برمجة التطبيقات التي تعمل على معالج الرسائل هذا.

القيمة التلقائية لهذه السمة هي 55 seconds.

يمكنك تعديل هذه السمة كما هو موضّح في ضبط مهلة وحدات الإدخال والإخراج على معالجات الرسائل أو يمكنك استبدال هذه القيمة من خلال ضبط السمة io.timeout.millis على مستوى الخادم الوكيل لواجهة برمجة التطبيقات.

قبل البدء

قبل استخدام الخطوات الواردة في هذا المستند، تأكَّد من فهم المواضيع التالية:

ضبط مهلة وحدات الإدخال والإخراج في الخادم الوكيل لواجهة برمجة التطبيقات

يمكن ضبط مهلة وحدات الإدخال والإخراج في أماكن الخادم الوكيل لواجهة برمجة التطبيقات التالية:

  • نقطة النهاية المستهدفة
  • سياسة وسيلة شرح الخدمة

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

يوضِّح هذا القسم كيفية ضبط مهلة وحدات الإدخال والإخراج في نقطة النهاية المستهدفة للخادم الوكيل لواجهة برمجة التطبيقات. يمكن ضبط مهلة وحدات الإدخال والإخراج من خلال السمة io.timeout.millis التي تمثّل قيمة مهلة وحدات الإدخال والإخراج بالملي ثانية.

  1. في واجهة مستخدم Edge، اختَر الخادم الوكيل لواجهة برمجة التطبيقات الذي تريد ضبط قيمة مهلة الإدخال/الإخراج الجديدة فيه.
  2. اختَر نقطة النهاية المستهدَفة المحددة التي تريد تعديلها.
  3. أضِف السمة io.timeout.millis باستخدام قيمة مناسبة ضمن العنصر <HTTPTargetConnection> في إعدادات TargetEndpoint.
  4. على سبيل المثال، لتغيير مهلة الإدخال/الإخراج إلى 120 ثانية، أضِف مجموعة الرموز التالية:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    بما أنّ السمة io.timeout.millis بالمللي ثانية، تكون قيمة 120 ثانية هي 120000.

    توضّح الأمثلة التالية كيفية ضبط مهلة وحدات الإدخال والإخراج من خلال إعدادات نقطة النهاية المستهدفة للخادم الوكيل لواجهة برمجة التطبيقات:

    مثال على إعداد نقطة النهاية المستهدفة باستخدام عنوان URL لخادم الخلفية

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>
    

    مثال على ضبط نقطة النهاية المستهدفة باستخدام الخادم الهدف

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
    
  5. احفظ التغييرات التي أجريتها على الخادم الوكيل لواجهة برمجة التطبيقات.

ضبط مهلة وحدات الإدخال والإخراج في سياسة ServiceCallout للخادم الوكيل لواجهة برمجة التطبيقات

يوضِّح هذا القسم كيفية ضبط مهلة وحدات الإدخال والإخراج في سياسة ServiceCallout على الخادم الوكيل لواجهة برمجة التطبيقات. يمكن ضبط مهلة وحدات الإدخال والإخراج من خلال العنصر <Timeout> أو السمة io.timeout.millis. يمثّل كل من العنصر <Timeout> والسمة io.timeout.millis قيم مهلة وحدات الإدخال والإخراج بالمللي ثانية.

يمكنك ضبط مهلة وحدات الإدخال والإخراج في سياسة طريقة شرح الخدمة باستخدام إحدى الطرق التالية:

  • عنصر <Timeout>.
  • السمة io.timeout.millis.

عنصر المهلة

لضبط مهلة وحدات الإدخال والإخراج في سياسة طريقة شرح الخدمة باستخدام العنصر <Timeout>، يمكنك اتّباع الخطوات التالية:

  1. في واجهة مستخدم Edge، اختَر الخادم الوكيل لواجهة برمجة التطبيقات المحدّد الذي تريد ضبط قيمة مهلة وحدات الإدخال والإخراج الجديدة فيه لسياسة ServiceCallout.
  2. اختَر سياسة ServiceCallout المحدّدة التي تريد تعديلها.
  3. أضِف العنصر <Timeout> باستخدام قيمة مناسبة ضمن إعدادات <ServiceCallout>.

    على سبيل المثال، لتغيير مهلة وحدات الإدخال والإخراج إلى 120 ثانية، أضِف سطر الرمز التالي:

        <Timeout>120000</Timeout>
    

    بما أنّ مدة العنصر <Timeout> بالملي ثانية، تكون قيمة 120 ثانية هي 120000.

    يوضح المثال التالي كيفية ضبط مهلة وحدات الإدخال والإخراج في سياسة ServiceCallout باستخدام العنصر <Timeout>:

    مثال على ضبط سياسة ServiceCallout باستخدام عنوان URL لخادم الخلفية

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. احفظ التغييرات التي أجريتها على الخادم الوكيل لواجهة برمجة التطبيقات.

سمة io.timeout.millis

لضبط مهلة وحدات الإدخال والإخراج في سياسة طريقة عرض الخدمة باستخدام السمة io.timeout.millis، عليك اتّباع الخطوات التالية:

  1. في واجهة مستخدم Edge، اختَر الخادم الوكيل لواجهة برمجة التطبيقات الذي تريد ضبط قيمة مهلة إدخال/إخراجه الجديدة لسياسة ServiceCallout.
  2. اختَر سياسة ServiceCallout المحدّدة التي تريد تعديلها.
  3. أضِف السمة io.timeout.millis باستخدام قيمة مناسبة أسفل العنصر <HTTPTargetConnection> في إعدادات TargetEndpoint.

    على سبيل المثال، لتغيير مهلة وحدات الإدخال والإخراج إلى 120 ثانية، أضِف مجموعة الرموز التالية:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    بما أنّ السمة io.timeout.millis بالمللي ثانية، تكون قيمة 120 ثانية هي 120000.

    توضّح الأمثلة التالية كيفية ضبط مهلة وحدات الإدخال والإخراج من خلال إعدادات نقطة النهاية المستهدفة للخادم الوكيل لواجهة برمجة التطبيقات:

    مثال على ضبط سياسة ServiceCallout باستخدام عنوان URL لخادم الخلفية

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <HTTPTargetConnection>
          <Properties>
            <Property name="io.timeout.millis">120000</Property>
          </Properties>
          <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    

    مثال على ضبط سياسة ServiceCallout باستخدام الخادم الهدف

    <ServiceCallout enabled="true" name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Response>calloutResponse</Response>
        <HTTPTargetConnection>
            <LoadBalancer>
                <Server name="target1" />
                <Server name="target2" />
            </LoadBalancer>
            <Properties>
                <Property name="io.timeout.millis">120000</Property>
            </Properties>
            <Path>/test</Path>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. احفظ التغييرات التي أجريتها على الخادم الوكيل لواجهة برمجة التطبيقات.

ضبط مهلة وحدات الإدخال والإخراج على معالجات الرسائل

يوضح هذا القسم كيفية تهيئة مهلة وحدات الإدخال والإخراج على معالجات الرسائل. يمكن ضبط مهلة وحدات الإدخال والإخراج من خلال السمة HTTPTransport.io.timeout.millis التي تمثّل قيمة مهلة وحدات الإدخال والإخراج بالملي ثانية في مكوّن معالج الرسائل، باستخدام الرمز المميّز وفقًا للبنية الموضّحة في مقالة كيفية إعداد Edge.

لإعداد مهلة وحدات الإدخال والإخراج في معالجات الرسائل، يمكنك إجراء ما يلي:

  1. على الجهاز الذي يعمل به معالج الرسائل، افتح الملف التالي في أحد المحرِّرين. إذا لم يكن متوفّرًا حاليًا، يجب إنشاؤه.
    /opt/apigee/customer/application/message-processor.properties
    

    على سبيل المثال، لفتح الملف باستخدام vi، أدخِل الأمر التالي:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. أضِف سطرًا بالتنسيق التالي إلى ملف السمات، مع استبدال قيمة TIME_IN_MILLISECONDS:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    على سبيل المثال، لتغيير مهلة وحدات الإدخال والإخراج في معالج الرسائل إلى 120 ثانية، أضِف السطر التالي:

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. احفظ التغييرات.
  4. تأكَّد من أنّ ملف السمات يملكه مستخدم apigee كما هو موضّح أدناه:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. أعِد تشغيل معالج الرسائل كما هو موضَّح أدناه:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. إذا كان لديك أكثر من معالج رسائل واحد، كرِّر الخطوات السابقة في كل معالِجات الرسائل.

التحقق من مهلة وحدات الإدخال والإخراج في معالجات الرسائل

يوضّح هذا القسم كيفية التحقق من تعديل مهلة وحدات الإدخال والإخراج بنجاح على معالجات الرسائل.

على الرغم من استخدام الرمز المميّز conf_http_HTTPTransport.io.timeout.millis لضبط مهلة وحدات الإدخال والإخراج على معالج الرسائل، عليك التأكّد مما إذا كان قد تم ضبط القيمة الجديدة للسمة HTTPTransport.io.timeout.millis.

  1. في جهاز معالجة الرسائل، ابحث عن السمة HTTPTransport.io.timeout.millis في الدليل /opt/apigee/edge-message-processor/conf وتحقّق من ضبطها باستخدام القيمة الجديدة كما هو موضّح أدناه:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. إذا تم ضبط قيمة المهلة الجديدة لـ I/O على معالج الرسائل بنجاح، سيعرض الأمر أعلاه القيمة الجديدة في ملف http.properties.
  3. في ما يلي نموذج النتيجة من الأمر الوارد أعلاه بعد ضبط مهلة وحدات الإدخال والإخراج على 120 ثانية:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
    

    في مثال الإخراج أعلاه، لاحظ أنّه قد تم ضبط السمة HTTPTransport.io.timeout.millis على القيمة الجديدة 120000 في http.properties. ويشير هذا إلى أنّه تم ضبط مهلة وحدات الإدخال والإخراج بنجاح على 120 ثانية على "معالج الرسائل".

  4. إذا كانت القيمة القديمة للسمة HTTPTransport.io.timeout.millis لا تزال ظاهرة، تأكَّد من أنّك اتّبعت جميع الخطوات الموضّحة في ضبط مهلة وحدات الإدخال والإخراج في معالجات الرسائل بشكلٍ صحيح. إذا فاتتك أي خطوة، كرِّر جميع الخطوات مرّة أخرى بشكل صحيح.
  5. إذا كنت لا تزال غير قادر على تعديل مهلة وحدات الإدخال والإخراج، يُرجى التواصل مع فريق دعم Apigee Edge.

الخطوات التالية

تعرَّف على معلومات حول ضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه