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

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

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

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

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

يمكن زيادة مهلة I/O لمعالجات الرسائل أو تقليلها من القيمة الافتراضية 55 seconds حسب احتياجاتك يمكن ضبطه في الأماكن التالية:

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

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

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

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

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

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

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

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

بشكل افتراضي، تأخذ هذه الخاصية القيمة المعينة السمة HTTPTransport.io.timeout.millis في "معالج الرسائل". القيمة التلقائية هي 55 seconds.

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

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

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

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

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

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

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

يمكنك تعديل هذه السمة كما هو موضّح في تهيئة مهلة I/O على معالِجات معالجة الرسائل، أو يمكنك استبدال هذه القيمة من خلال ضبط السمة 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 قيم مهلة وحدات الإدخال والإخراج بالمللي ثانية.

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

  • العنصر <Timeout>.
  • الموقع: io.timeout.millis.

عنصر المُهل

لضبط مهلة وحدات الإدخال والإخراج في سياسة ServiceCallout باستخدام <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

لضبط مهلة وحدات الإدخال والإخراج في سياسة ServiceCallout باستخدام 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. إذا كان لديك أكثر من معالج رسائل واحد، فكرر الخطوات المذكورة أعلاه في جميع عمليات المعالِجات:

التحقق من انتهاء مهلة الإدخال/الإخراج على معالِجات معالجة الرسائل

يوضح هذا القسم كيفية التحقق من أن مهلة I/O قد تم تعديلها بنجاح على معالِجات الرسائل.

وعلى الرغم من استخدامك للرمز المميز 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

ما هي الخطوة التالية؟

معلومات عن ضبط مهلة الإدخال/الإخراج على أجهزة التوجيه