پیکربندی وقفه I/O در روترها

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

این سند نحوه پیکربندی وقفه ورودی/خروجی را در روترهای Apigee Edge توضیح می‌دهد.

زمان I/O روی روتر نشان دهنده زمانی است که روتر پس از برقراری اتصال و ارسال درخواست به پردازشگر پیام، منتظر دریافت پاسخ از پردازشگر پیام است. مقدار پیش فرض زمان I/O در روتر 57 ثانیه است.

زمان I/O برای روترها را می توان از مقدار پیش فرض 57 ثانیه بر اساس نیاز شما افزایش یا کاهش داد. می توان آن را به روش های زیر پیکربندی کرد:

  • در هاست مجازی
  • روی روتر

ویژگی های زیر زمان I/O را در روترها کنترل می کنند:

نام ملک مکان توضیحات
proxy_read_timeout میزبان مجازی

حداکثر زمانی را مشخص می کند که روتر پس از برقراری اتصال و ارسال درخواست به پردازشگر پیام، منتظر دریافت پاسخ از پردازشگر پیام است.

اگر در این بازه زمانی هیچ پاسخی از سوی پردازشگر پیام دریافت نشد، زمان روتر تمام می شود.

به طور پیش فرض، این ویژگی مقدار تنظیم شده برای ویژگی conf_load_balancing_load.balancing.driver.proxy.read.timeout را در روتر می گیرد. مقدار پیش فرض 57 ثانیه است.

اگر این ویژگی با یک مقدار مهلت زمانی جدید برای یک میزبان مجازی خاص اصلاح شود، تنها پروکسی های API که از آن میزبان مجازی خاص استفاده می کنند تحت تأثیر قرار می گیرند.

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 ، می توانید بازه های زمانی غیر از حالت پیش فرض (ثانیه) را مشخص کنید.

قبل از شروع

قبل از استفاده از مراحل این سند، مطمئن شوید که موضوعات زیر را درک کرده اید:

پیکربندی وقفه I/O در میزبان مجازی

این بخش نحوه پیکربندی زمان I/O در میزبان مجازی مرتبط با یک سازمان و محیط را توضیح می دهد. زمان I/O را می توان در میزبان مجازی از طریق ویژگی proxy_read_timeout پیکربندی کرد، که مقدار وقفه ورودی/خروجی را در چند ثانیه نشان می دهد.

می توانید میزبان مجازی را با استفاده از یکی از روش های زیر پیکربندی کنید:

  • رابط کاربری لبه
  • Edge API

رابط کاربری لبه

برای پیکربندی میزبان مجازی با استفاده از رابط کاربری Edge، موارد زیر را انجام دهید:

  1. به Edge UI وارد شوید.
  2. به Admin > Virtual Hosts بروید.
  3. محیط خاصی را که می‌خواهید این تغییر را در آنجا ایجاد کنید، انتخاب کنید.
  4. میزبان مجازی خاصی را که می‌خواهید مقدار وقفه ورودی/خروجی جدید را برای آن پیکربندی کنید، انتخاب کنید.
  5. در قسمت Properties ، مقدار Proxy Read Timeout را در چند ثانیه به‌روزرسانی کنید.

    به عنوان مثال، اگر می‌خواهید تایم اوت را به 120 ثانیه تغییر دهید، 120 را مطابق شکل زیر تایپ کنید:

    Proxy read timeout value of 120

  6. تغییر را ذخیره کنید.

Edge API

برای پیکربندی میزبان مجازی با استفاده از API Edge، موارد زیر را انجام دهید:

  1. پیکربندی میزبان مجازی فعلی را با استفاده از Get virtual host API مطابق شکل زیر دریافت کنید:

    کاربر عمومی ابر

    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 با مقدار در ثانیه اضافه کنید.

    به عنوان مثال، برای تغییر زمان I/O به 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 را با تغییر با استفاده از به‌روزرسانی API میزبان مجازی به صورت زیر به‌روزرسانی کنید:

    کاربر عمومی ابر

    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 در میزبان های مجازی

این بخش توضیح می‌دهد که چگونه می‌توان تأیید کرد که مهلت زمانی I/O با موفقیت در میزبان مجازی با استفاده از Edge API اصلاح شده است.

  1. Get virtual host API را اجرا کنید تا پیکربندی virtualhost مطابق شکل زیر دریافت کنید:

    کاربر عمومی ابر

    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 تماس بگیرید.

پیکربندی وقفه I/O در روترها

این بخش نحوه پیکربندی زمان I/O در روترها را توضیح می دهد. زمان I/O را می توان از طریق ویژگی Router conf_load_balancing_load.balancing.driver.proxy.read.timeout پیکربندی کرد، که مقدار زمان I/O را در چند ثانیه نشان می دهد.

برای پیکربندی زمان I/O روی روترها، موارد زیر را انجام دهید:

  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
    

    به عنوان مثال، برای تغییر زمان I/O در روتر به 120 ثانیه، خط زیر را اضافه کنید:

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

    شما همچنین می توانید زمان I/O را در چند دقیقه تغییر دهید. به عنوان مثال، برای تغییر مدت زمان به دو دقیقه، خط زیر را اضافه کنید:

    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 در روترها

این بخش نحوه تأیید اینکه زمان I/O با موفقیت در روترها اصلاح شده است را توضیح می دهد.

حتی اگر از token conf_load_balancing_load.balancing.driver.proxy.read.timeout برای تنظیم زمان I/O در روتر استفاده می کنید، باید بررسی کنید که آیا ویژگی واقعی proxy_read_timeout با مقدار جدید تنظیم شده است یا خیر.

  1. ویژگی proxy_read_timeout را در پوشه /opt/nginx/conf.d جستجو کنید و بررسی کنید که آیا با مقدار جدید به صورت زیر تنظیم شده است:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. اگر مقدار جدید I/O timeout با موفقیت روی روتر تنظیم شود، دستور بالا مقدار جدید را در تمام فایل‌های پیکربندی میزبان مجازی نشان می‌دهد.

    در زیر نمونه ای از نتیجه دستور grep در بالا زمانی که زمان I/O 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 تنظیم شده است که فایل پیکربندی میزبان مجازی پیش فرض است. این نشان می دهد که زمان I/O با موفقیت روی 120 ثانیه روی روتر پیکربندی شده است.

  3. اگر همچنان مقدار قدیمی ویژگی proxy_read_timeout را می‌بینید، بررسی کنید که تمام مراحل ذکر شده در پیکربندی مهلت زمانی ورودی/خروجی روی روترها را به درستی دنبال کرده‌اید. اگر هر مرحله ای را از دست داده اید، تمام مراحل را دوباره به درستی تکرار کنید.
  4. اگر هنوز نمی‌توانید مهلت زمانی ورودی/خروجی را تغییر دهید، با پشتیبانی Apigee Edge تماس بگیرید.

بعدش چی؟

درباره پیکربندی وقفه ورودی/خروجی در پردازشگر پیام بیاموزید