הגדרת זמן קצוב לתפוגה של קלט/פלט בנתבים

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

מסמך זה מסביר איך להגדיר את הזמן הקצוב לתפוגה של קלט/פלט בנתבים של Apigee Edge.

הזמן הקצוב לתפוגה של קלט/פלט בנתב מייצג את משך הזמן שבו הנתב ימתין לקבלת תגובה ממעבד ההודעות, לאחר יצירת החיבור ושליחת הבקשה למעבד ההודעות. ערך ברירת המחדל של הזמן הקצוב לתפוגה של קלט/פלט בנתב הוא 57 שניות.

לפי הצרכים שלך, אפשר להגדיל או להקטין את הזמן הקצוב לתפוגה של קלט/פלט (I/O) מערך ברירת המחדל של 57 שניות. אפשר להגדיר אותו בדרכים הבאות:

  • במארח וירטואלי
  • בנתב

המאפיינים הבאים שולטים בזמן הקצוב לתפוגה של קלט/פלט בנתבים:

שם הנכס מיקום התיאור
proxy_read_timeout מארח וירטואלי

ההגדרה מציינת את משך הזמן המקסימלי שבו הנתב ימתין לקבלת תשובה ממעבד ההודעות, אחרי יצירת החיבור ושליחת הבקשה למעבד ההודעות.

אם לא תתקבל תגובה ממעבד ההודעות במהלך פרק הזמן הקצוב לתפוגה, הזמן הקצוב לתפוגה של הנתב פג.

כברירת מחדל, המאפיין הזה לוקח את הערך שהוגדר למאפיין conf_load_balancing_load.balancing.driver.proxy.read.timeout בנתב. ערך ברירת המחדל הוא 57 שניות.

אם המאפיין הזה משתנה עם ערך חדש של זמן קצוב לתפוגה עבור מארח וירטואלי ספציפי, רק שרתי ה-proxy של ה-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) במארח הווירטואלי שמשויך לארגון ולסביבה. ניתן להגדיר את הזמן הקצוב לתפוגה של קלט/פלט במארח הווירטואלי באמצעות המאפיין proxy_read_timeout, שמייצג את ערך הזמן הקצוב לתפוגה של קלט/פלט בשניות.

ניתן להגדיר את המארח הווירטואלי באחת מהשיטות הבאות:

  • ממשק המשתמש של Edge
  • ממשק API של Edge

ממשק המשתמש של Edge

כדי להגדיר את המארח הווירטואלי באמצעות ממשק המשתמש של Edge צריך לבצע את הפעולות הבאות:

  1. מתחברים ל-Edge UI.
  2. עוברים אל ניהול > מארחים וירטואליים.
  3. בוחרים סביבה ספציפית שבה רוצים לבצע את השינוי הזה.
  4. בחר את המארח הווירטואלי הספציפי שעבורו ברצונך להגדיר את ערך הזמן הקצוב החדש של קלט/פלט (I/O).
  5. בקטע מאפיינים, מעדכנים בשניות את הערך תם הזמן הקצוב לתפוגה של קריאת שרת proxy.

    לדוגמה, אם רוצים לשנות את הזמן הקצוב לתפוגה של 120 שניות, מקלידים 120 כפי שמוצג באיור הבא:

    ערך הזמן הקצוב לתפוגה של קריאה לשרת ה-proxy הוא 120

  6. שומרים את השינוי.

ממשק API של Edge

כדי להגדיר את המארח הווירטואלי באמצעות Edge API צריך לבצע את הפעולות הבאות:

  1. משיגים את התצורה הנוכחית של המארח הווירטואלי באמצעות ממשק ה-API Get Computer host, כפי שמוצג למטה:

    משתמש ב-Public Cloud

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

    משתמש בענן פרטי

    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 למטען הייעודי (payload) הקיים של 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 של עדכון מארח וירטואלי באופן הבא:

    משתמש ב-Public 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>
                

    משתמש בענן פרטי

    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. מפעילים את ה-API של קבלת מארח וירטואלי כדי לקבל את ההגדרות של virtualhost, כמו שמוצג בהמשך:

    משתמש ב-Public Cloud

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

    משתמש בענן פרטי

    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, עדיין מופיע, צריך לוודא שביצעת את כל השלבים שמפורטים במאמר הגדרת הזמן הקצוב לתפוגה של קלט/פלט (I/O) במארח וירטואלי בצורה נכונה. אם החמצתם שלב כלשהו, יש לחזור על כל השלבים בצורה נכונה.
  4. אם אין לכם עדיין אפשרות לשנות את הזמן הקצוב לתפוגה של קלט/פלט, פנו לתמיכה של Apigee Edge.

הגדרת זמן קצוב לתפוגה של קלט/פלט (I/O) בנתבים

הקטע הזה מסביר איך להגדיר זמן קצוב לתפוגה של קלט/פלט בנתבים. ניתן להגדיר את הזמן הקצוב לתפוגה של קלט/פלט באמצעות מאפיין הנתב 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
    

    ניתן גם לשנות את הזמן הקצוב לתפוגה של קלט/פלט (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) בנתבים

בקטע הזה מוסבר איך לוודא שהזמן הקצוב לתפוגה של קלט/פלט השתנה בהצלחה בנתבים.

למרות שמשתמשים באסימון 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, שהוא קובץ התצורה של המארח הווירטואלי שמוגדר כברירת מחדל. האפשרות הזו מציינת שהזמן הקצוב לתפוגה של קלט/פלט (I/O) הוגדר בהצלחה ל-120 שניות בנתב.

  3. אם הערך הישן של המאפיין proxy_read_timeout עדיין מופיע, עליכם לוודא שביצעתם את כל השלבים המפורטים בקטע הגדרת הזמן הקצוב לתפוגה של קלט/פלט בנתבים. אם החמצת שלב כלשהו, יש לחזור על כל השלבים בצורה נכונה.
  4. אם אין לכם עדיין אפשרות לשנות את הזמן הקצוב לתפוגה של קלט/פלט, פנו לתמיכה של Apigee Edge.

מה השלב הבא?

איך מגדירים זמן קצוב לתפוגה של קלט/פלט במעבד ההודעות