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

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

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

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

אפשר להגדיל או להקטין את הזמן הקצוב לתפוגה של קלט/פלט בנתבי תנועה (Routers) מהערך שמוגדר כברירת מחדל של 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 נתב

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

אם לא מתקבלת תגובה ממעבד ההודעות במהלך פסק הזמן הזה, הנתב מפסיק את הפעולה.

המאפיין הזה משמש לכל המארחים הווירטואליים בנתב הזה.

ערך ברירת המחדל של המאפיין הזה הוא 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 API

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

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

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

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

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

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

Edge API

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

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

    משתמש בענן ציבורי

    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} הוא השם של המארח הווירטואלי

    דוגמה להגדרת virtualhost

        {
          "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 עם הערך בשניות.

    לדוגמה, כדי לשנות את הזמן הקצוב לתפוגה של קלט/פלט ל-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 Update a virtual host באופן הבא:

    משתמש בענן ציבורי

    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} הוא השם של המארח הווירטואלי

אימות של פסק זמן לקלט/פלט במארחים וירטואליים

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

  1. מריצים את ה-API‏ Get virtual host כדי לקבל את ההגדרה של virtualhost כמו שמוצג למטה:

    משתמש בענן ציבורי

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

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

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

    אפשר גם לשנות את הזמן הקצוב לתפוגה של קלט/פלט בדקות. לדוגמה, כדי לשנות את הזמן הקצוב לתפוגה ל-2 דקות, מוסיפים את השורה הבאה:

    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. אם יש לכם יותר מנתב אחד, צריך לחזור על השלבים שלמעלה בכל הנתבים.

אימות פסק זמן של קלט/פלט בנתבים

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

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

    זוהי דוגמה לתוצאה של הפקודה 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.

מה הלאה?

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