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

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

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

تشير مهلة I/O على جهاز التوجيه إلى الوقت الذي ينتظره جهاز التوجيه لاستلام استجابة من معالج الرسائل، بعد إنشاء الاتصال وإرسال الطلب إلى معالج الرسائل. تبلغ القيمة التلقائية لمهلة وحدات الإدخال والإخراج على جهاز التوجيه 57 ثانية.

يمكن زيادة مهلة الإدخال/الإخراج لأجهزة التوجيه أو خفضها من القيمة التلقائية التي تبلغ 57 ثانية. وفقًا لاحتياجاتك. يمكن إعداده بالطرق التالية:

  • في مضيف افتراضي
  • على جهاز التوجيه

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

اسم الموقع الموقع الجغرافي الوصف
proxy_read_timeout المضيف الافتراضي

تحدِّد هذه السياسة الحدّ الأقصى للوقت الذي ينتظره جهاز التوجيه لتلقّي ردّ من معالج الرسائل، بعد إنشاء الاتصال وإرسال الطلب إلى معالج الرسائل.

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

بشكل افتراضي، تأخذ هذه الخاصية القيمة المعينة سمة "conf_load_balancing_load.balancing.driver.proxy.read.timeout" على جهاز التوجيه تشير رسالة الأشكال البيانية القيمة التلقائية هي 57 ثانية.

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

conf_load_balancing_load.balancing.driver.proxy.read.timeout جهاز التوجيه

تحدِّد هذه السياسة الحدّ الأقصى للوقت الذي ينتظره جهاز التوجيه لتلقّي ردّ من معالج الرسائل، بعد إنشاء الاتصال وإرسال الطلب إلى معالج الرسائل.

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

تُستخدم هذه الخاصية لجميع المضيفات الظاهرية على جهاز التوجيه هذا.

القيمة التلقائية لهذا الموقع هي 57 ثانية.

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

يمكنك تحديد الفاصل الزمني لهذه السمة كشيء غير الثواني باستخدام الترميز التالي:

ms: milliseconds
s:  seconds (default)
m:  minutes
h:  hours
d:  days
w:  weeks
M:  months (length of 30 days)
y:  years (length of 365 days)
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout جهاز التوجيه

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

يسري ذلك عندما يتضمن تثبيت Edge العديد من معالِجات الرسائل يتم تفعيل إعادة المحاولة عند حدوث أخطاء. تكون له قيمة إحدى القيم التالية:

  • القيمة الحالية لـ conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • القيمة التلقائية التي تبلغ 57 ثانية

كما هي الحال مع conf_load_balancing_load.balancing.driver.proxy.read.timeout يمكنك تحديد فواصل زمنية غير المدة الافتراضية (بالثواني).

قبل البدء

قبل استخدام الخطوات الواردة في هذا المستند، احرص على فهم المواضيع التالية:

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

يوضح هذا القسم كيفية ضبط مهلة وحدات الإدخال والإخراج في المضيف الافتراضي المرتبط بـ التنظيم والبيئة. يمكن تهيئة مهلة الإدخال/الإخراج في المضيف الظاهري من خلال الخاصية proxy_read_timeout، التي تُمثل قيمة مهلة الإدخال/الإخراج بالثواني.

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

  • واجهة مستخدم Edge
  • واجهة برمجة تطبيقات Edge

واجهة مستخدم Edge

لإعداد المضيف الافتراضي باستخدام واجهة مستخدم Edge، قم بما يلي:

  1. سجِّل الدخول إلى Edge UI.
  2. انتقِل إلى المشرف >. المضيفون الافتراضيون:
  3. اختَر بيئة معيّنة تريد إجراء هذا التغيير فيها.
  4. حدد المضيف الظاهري المحدد الذي تريد تهيئة المضيف الجديد له قيمة مهلة الإدخال/الإخراج.
  5. ضمن الخصائص، عدِّل قيمة مهلة قراءة الخادم الوكيل بالثواني.

    على سبيل المثال، إذا أردت تغيير المهلة إلى 120 ثانية، فاكتب 120 كما هو موضح في قسم الشكل التالي:

    قيمة مهلة قراءة الخادم الوكيل 120

  6. احفظ التغيير.

واجهة برمجة تطبيقات Edge

لإعداد المضيف الافتراضي باستخدام واجهة برمجة تطبيقات Edge، قم بما يلي:

  1. الحصول على الإعدادات الحالية للمضيف الظاهري باستخدام احصل على واجهة برمجة تطبيقات المضيف الافتراضي كما هو موضح أدناه:

    مستخدم Cloud عام

    curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    مستخدم Cloud خاص

    curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    المكان:

    "{organization-name}" هو اسم المؤسسة.

    {environment-name} هو اسم البيئة.

    {virtualhost-name} هو اسم المضيف الظاهري

    نموذج ضبط المضيف الافتراضي

        {
          "hostAliases": [
            "api.myCompany,com"
          ],
          "interfaces": [],
          "listenOptions": [],
          "name": "secure",
          "port": "443",
          "retryOptions": [],
          "sSLInfo": {
            "ciphers": [],
            "clientAuthEnabled": "false",
            "enabled": "true",
            "ignoreValidationErrors": false,
            "keyAlias": "myCompanyKeyAlias",
            "keyStore": "ref://myCompanyKeystoreref",
            "protocols": []
          },
          "useBuiltInFreeTrialCert": false
        }
    
  2. إضافة الموقع proxy_read_timeout إلى إعدادات المضيف الافتراضي الحالية حمولة JSON أقل من properties والقيمة بالثواني.

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

    نموذج الإعدادات المعدَّلة للمضيف الظاهري

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    
  3. احفظ إعدادات المضيف الظاهري المعدّلة في ملف. على سبيل المثال: virtualhost-payload.json
  4. يمكنك تعديل إعدادات virtualhost من خلال إجراء هذا التغيير باستخدام حدِّث واجهة برمجة تطبيقات المضيف الافتراضي على النحو التالي:

    مستخدم Cloud عام

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    مستخدم Cloud خاص

    curl -v -X POST Content-Type: application/json
    http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    المكان:

    "{organization-name}" هو اسم المؤسسة.

    {environment-name} هو اسم البيئة.

    {virtualhost-name} هو اسم المضيف الظاهري

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

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

  1. نفِّذ احصل على واجهة برمجة تطبيقات المضيف الافتراضي للحصول على إعدادات virtualhost كما هو موضح أدناه:

    مستخدم Cloud عام

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    مستخدم Cloud خاص

    curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    المكان:

    "{organization-name}" هو اسم المؤسسة.

    {environment-name} هو اسم البيئة.

    {virtualhost-name} هو اسم المضيف الظاهري

  2. تأكّد من ضبط الموقع proxy_read_timeout على القيمة الجديدة.

    نموذج الإعدادات المعدَّلة للمضيف الظاهري

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    

    في المثال أعلاه، لاحظ أنه تم ضبط proxy_read_timeout باستخدام القيمة الجديدة 120 ثانية.

  3. إذا استمر ظهور القيمة القديمة للسمة proxy_read_timeout,، يجب إثبات أنّك جميع الخطوات الموضحة في ضبط مهلة وحدات الإدخال والإخراج في المضيف الظاهري بشكل صحيح. إذا فاتتك أي خطوة، فكرر جميع الخطوات مرة أخرى بشكل صحيح.
  4. إذا كنت لا تزال غير قادر على تعديل مهلة وحدات الإدخال والإخراج، يُرجى التواصل مع فريق دعم Apigee Edge.

تهيئة مهلة الإدخال/الإخراج على أجهزة التوجيه

يشرح هذا القسم كيفية ضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه. يمكن أن تكون مهلة الإدخال/الإخراج تم إعداده من خلال خاصية جهاز التوجيه conf_load_balancing_load.balancing.driver.proxy.read.timeout، الذي يمثل قيمة مهلة الإدخال/الإخراج بالثواني.

لضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه، يمكنك اتّباع الخطوات التالية:

  1. على جهاز التوجيه، افتح الملف التالي في محرِّر. إذا لم تكن موجودة، أنشئها.
    /opt/apigee/customer/application/router.properties
    

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

    vi /opt/apigee/customer/application/router.properties
    
  2. أضف سطرًا بالتنسيق التالي إلى ملف properties، مع استبدال قيمة time_in_seconds:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
    

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

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    

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

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
    
  4. احفظ التغييرات.
  5. تأكد من أن ملف الخصائص هذا ملك لمستخدم apigee كما هو موضح أدناه:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  6. أعِد تشغيل جهاز التوجيه كما هو موضّح أدناه:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  7. إذا كان لديك أكثر من جهاز توجيه، كرِّر الخطوات المذكورة أعلاه على جميع أجهزة التوجيه.

التحقق من مهلة الإدخال/الإخراج على أجهزة التوجيه

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

وعلى الرغم من استخدام الرمز المميّز conf_load_balancing_load.balancing.driver.proxy.read.timeout لضبط مهلة وحدات الإدخال والإخراج عليك التأكّد مما إذا كان الموقع الإلكتروني proxy_read_timeout على القيمة الجديدة.

  1. البحث عن الموقع proxy_read_timeout في دليل /opt/nginx/conf.d، وتحقَّق مما إذا تم ضبطه باستخدام علامة القيمة الجديدة على النحو التالي:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. إذا تم تعيين قيمة مهلة I/O الجديدة بنجاح على جهاز التوجيه، فعندئذ سيؤدي الأمر أعلاه تعرض القيمة الجديدة في جميع ملفات إعداد المضيف الظاهري.

    وفي ما يلي نموذج النتيجة من الأمر grep أعلاه عند مهلة وحدات الإدخال والإخراج هي 120 ثانية:

    /opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120;
    /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
    

    في مثال الإخراج أعلاه، لاحِظ أنّ السمة proxy_read_timeout تم ضبط القيمة الجديدة 120 في 0-default.conf وهي ملف الإعداد للمضيف الظاهري الافتراضي. وهذا يشير إلى انتهاء مهلة وحدات الإدخال والإخراج بنجاح على 120 ثانية على جهاز التوجيه.

  3. إذا استمر ظهور القيمة القديمة للسمة proxy_read_timeout، من أنك قد اتبعت جميع الخطوات الموضحة في ضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه بشكل صحيح. إذا كان لديك أي خطوة فائتة، فقم بتكرار جميع الخطوات مرة أخرى بشكل صحيح.
  4. إذا كنت لا تزال غير قادر على تعديل مهلة وحدات الإدخال والإخراج، يُرجى التواصل مع فريق دعم Apigee Edge.

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

تعرَّف على معلومات حول ضبط مهلة الإدخال/الإخراج في معالج الرسائل.