סטרימינג של בקשות ותגובות

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

מה תלמדו בנושא הזה

אחרי שתקראו את הנושא הזה, תדעו:

  • מהו סטרימינג של בקשות ותגובות ב-Apigee Edge
  • מתי כדאי להשתמש בהעברה בסטרימינג של בקשות ותגובות
  • איך מפעילים סטרימינג של בקשות ותשובות

מהו סטרימינג של בקשות ותגובות?

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

מתי כדאי להפעיל סטרימינג?

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

מה עוד חשוב לדעת על סטרימינג?

גודל המטען הייעודי (payload) של ההודעה מוגבל ל-10MB ב-Edge Cloud וב-Private Cloud, גם אם הסטרימינג מופעל. בבקשות ותגובות שלא מועברות בסטרימינג, חריגה מהגודל הזה גורמת לשגיאה protocol.http.TooBigBody.

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

  • ב-Edge for Private Cloud בגרסאות קודמות ל-4.16.01:

    בכל מעבדי ההודעות, עורכים את הקובץ http.properties כדי להגדיל את המגבלה בפרמטר HTTPResponse.body.buffer.limit, ואז מפעילים מחדש את מעבד ההודעות.
  • ב-Edge for Private Cloud מגרסה 4.16.01 ואילך:
    1. עורכים את הקובץ /<inst_root>/apigee/customer/application/message-processor.properties. אם הקובץ לא קיים, צריך ליצור אותו.

    2. מגדירים את המאפיין conf_http_HTTPResponse.body.buffer.limit ב-message-processor.properties. לדוגמה:
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. מפעילים מחדש את מעבד ההודעות:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    4. חוזרים על הפעולה לכל מעבדי ההודעות.

איך מפעילים סטרימינג של בקשות ותשובות

כדי להפעיל סטרימינג של בקשות, צריך להוסיף את המאפיין request.streaming.enabled להגדרות של ProxyEndpoint ו-TargetEndpoint בחבילת ה-proxy, ולהגדיר אותו לערך true. באופן דומה, מגדירים את המאפיין response.streaming.enabled כדי להפעיל סטרימינג של תשובות.

אפשר למצוא את קובצי ההגדרות האלה בממשק המשתמש לניהול בתצוגת הפיתוח של ה-proxy. אם אתם מפתחים באופן מקומי, קובצי ההגדרה האלה נמצאים בנתיבים apiproxy/proxies וapiproxy/targets.

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

<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
      <Property name="supports.http10">true</Property>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
  </HTTPTargetConnection>
</TargetEndpoint>

בדוגמה הזו אפשר לראות איך להפעיל סטרימינג של תגובות ובקשות בהגדרה של ProxyEndpoint:

<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="allow.http10">true</Property>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
  </HTTPProxyConnection>
</ProxyEndpoint>

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

דוגמאות קוד קשורות

קל להוריד ולהשתמש בדוגמאות של שרתי proxy ל-API ב-GitHub. במאמר שימוש בשרתי proxy לדוגמה של API מפורט מידע על הורדה ושימוש בדוגמאות.

דוגמאות לשרתי proxy עם תכונת סטרימינג: