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

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

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

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

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

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

  • בשרת ה-proxy ל-API
    • נקודת קצה של היעד
    • ‫ServiceCallout policy
  • במעבד ההודעות

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

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

proxy ל-API:

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

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

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

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

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

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

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

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

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

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

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

ערך ברירת המחדל של המאפיין הזה הוא 55 seconds.

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

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

לפני שמשתמשים בשלבים שמתוארים במאמר הזה, חשוב להבין את הנושאים הבאים:

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

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

  • נקודת קצה של היעד
  • ‫ServiceCallout policy

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

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

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

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

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

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

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

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

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

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

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

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

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

    דוגמה להגדרת מדיניות ServiceCallout באמצעות שרת יעד

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

מה הלאה?

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