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

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

המסמך הזה מסביר איך להגדיר את הזמן הקצוב לתפוגה של קלט/פלט (I/O) למעבדי הודעות של Apigee Edge.

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

ערך ברירת המחדל של זמן קצוב לתפוגה של קלט/פלט במעבד ההודעות הוא 55 seconds. הזמן הקצוב לתפוגה התקופה חלה לשרתי הקצה העורפי שהוגדרו בתצורה של נקודת הקצה (endpoint) של היעד וב-ServiceCallout המדיניות של שרת ה-proxy ל-API.

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

  • ב-proxy ל-API
    • נקודת קצה כיעד
    • המדיניות בנושא ServiceCallout
  • במעבד ההודעות

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

שם הנכס מיקום תיאור
io.timeout.millis

Proxy ל-API:

  • נקודת קצה של יעד
  • המדיניות בנושא יתרונות מרכזיים בשירות

זהו משך הזמן המקסימלי שבו מעבד ההודעות מבצע את הפעולות הבאות:

  • ימתין לקבלת תשובה משרת הקצה העורפי, לאחר יצירת ושולחים את הבקשה לשרת העורפי, או
  • ממתין שהשקע יהיה מוכן שמעבד ההודעות ישלח את הבקשה אל את השרת העורפי.

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

כברירת מחדל, הנכס הזה מקבל את הערך שהוגדר עבור המאפיין HTTPTransport.io.timeout.millis במעבד ההודעות. ערך ברירת המחדל הוא 55 seconds.

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

HTTPTransport.io.timeout.millis מעבד בקשות

זהו משך הזמן המקסימלי שבו מעבד ההודעות מבצע את הפעולות הבאות:

  • בהמתנה לקבלת תשובה משרת הקצה העורפי לאחר יצירת החיבור והמערכת שולחת את הבקשה לשרת העורפי
  • ממתין שהשקע יהיה מוכן שמעבד ההודעות ישלח את הבקשה אל את השרת העורפי.

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

המאפיין הזה משמש לכל שרתי ה-proxy ל-API שפועלים במעבד ההודעות הזה.

ערך ברירת המחדל של הנכס הזה הוא 55 seconds.

אפשר לשנות את המאפיין הזה כמו שמוסבר ב להגדיר זמן קצוב לתפוגה של קלט/פלט במעבדי הודעות, או שאפשר להחליף את הערך הזה על ידי הגדרה של המאפיין io.timeout.millis ב-API ברמת שרת ה-proxy.

לפני שמתחילים

לפני שתשתמשו בשלבים שבמסמך הזה, חשוב שתוודאו שאתם מבינים את הנושאים הבאים:

הגדרת זמן קצוב לתפוגה של קלט/פלט בשרת proxy ל-API

אפשר להגדיר את הזמן הקצוב לתפוגה של קלט/פלט במקומות הבאים בשרת ה-proxy של ה-API:

  • נקודת קצה כיעד
  • המדיניות בנושא ServiceCallout

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

בקטע הזה מוסבר איך להגדיר זמן קצוב לתפוגה של קלט/פלט בנקודת הקצה ביעד של שרת ה-proxy ל-API. אפשר להגדיר את הזמן הקצוב לתפוגה של קלט/פלט באמצעות המאפיין io.timeout.millis, מייצג את ערך הזמן הקצוב לתפוגה של קלט/פלט באלפיות השנייה.

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

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    מכיוון שהמאפיין io.timeout.millis נמצא באלפיות שנייה, הערך של הערך של 120 שניות הוא 120000.

    הדוגמאות הבאות מראות איך להגדיר את הזמן הקצוב לתפוגה של קלט/פלט בנקודת הקצה של היעד של ה-Proxy ל-API:

    דוגמה להגדרה של נקודת קצה ביעד באמצעות כתובת 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. שומרים את השינויים שבוצעו בשרת ה-proxy של ה-API.

הגדרת זמן קצוב לתפוגה של קלט/פלט במדיניות ServiceCallout של שרת ה-proxy ל-API

בקטע הזה מוסבר איך להגדיר את הזמן הקצוב לתפוגה של קלט/פלט במדיניות ServiceCallout של שרת proxy ל-API. אפשר להגדיר את הזמן הקצוב לתפוגה של קלט/פלט דרך הרכיב <Timeout> או המאפיין io.timeout.millis. גם הרכיב <Timeout> וגם המאפיין io.timeout.millis מייצג את ערכי הזמן הקצוב לתפוגה של קלט/פלט באלפיות השנייה.

אפשר להגדיר את הזמן הקצוב לתפוגה של קלט/פלט במדיניות ServiceCallout באמצעות אחת מהשיטות הבאות:

  • רכיב <Timeout>.
  • נכס io.timeout.millis.

רכיב הזמן הקצוב לתפוגה

כדי להגדיר את הזמן הקצוב לתפוגה של קלט/פלט במדיניות ServiceCallout באמצעות <Timeout> בצעו את הפעולות הבאות:

  1. בממשק המשתמש של Edge, בוחרים את שרת ה-proxy הספציפי ל-API שבו רוצים להגדיר את הערך החדש של הזמן הקצוב לתפוגה של קלט/פלט במדיניות ServiceCallout.
  2. בוחרים את המדיניות הספציפית של ServiceCallout שרוצים לשנות.
  3. צריך להוסיף את הרכיב <Timeout> עם ערך מתאים מתחת הגדרה של <ServiceCallout>.

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

נכס io.timeout.millis

כדי להגדיר את הזמן הקצוב לתפוגה של קלט/פלט במדיניות ServiceCallout באמצעות נכס io.timeout.millis, צריך לבצע את הפעולות הבאות:

  1. בממשק המשתמש של Edge, בוחרים את שרת ה-proxy הספציפי ל-API שבו רוצים להגדיר הערך החדש של הזמן הקצוב לתפוגת קלט/פלט (I/O) במדיניות של ServiceCallout.
  2. בוחרים את המדיניות הספציפית של ServiceCallout שרוצים לשנות.
  3. מוסיפים את הנכס io.timeout.millis עם ערך מתאים מתחת רכיב <HTTPTargetConnection> בהגדרה של נקודת הקצה של יעד.

    לדוגמה, כדי לשנות את הזמן הקצוב לתפוגה של קלט/פלט (I/O) ל-120 שניות, מוסיפים את הבלוק הבא של הקוד:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    מכיוון שהמאפיין io.timeout.millis נמצא באלפיות שנייה, הערך של הערך של 120 שניות הוא 120000.

    הדוגמאות הבאות מראות איך להגדיר את הזמן הקצוב לתפוגה של קלט/פלט בנקודת הקצה של היעד של ה-Proxy ל-API:

    דוגמה להגדרה של מדיניות 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>
    

    דוגמה להגדרה של מדיניות Serviceיתרונות מרכזיים באמצעות שרת יעד

    <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. שומרים את השינויים שבוצעו בשרת ה-proxy של ה-API.

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

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

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

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

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

מה השלב הבא?

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