جریان درخواست ها و پاسخ ها

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

آنچه در این مبحث خواهید آموخت

بعد از خواندن این تاپیک خواهید دانست:

  • استریم درخواست و پاسخ در Apigee Edge چیست؟
  • چه زمانی از جریان درخواست و پاسخ استفاده کنیم
  • نحوه فعال کردن جریان درخواست و پاسخ

جریان درخواست و پاسخ چیست؟

به طور پیش‌فرض، جریان HTTP غیرفعال است و بارهای درخواست و پاسخ HTTP قبل از پردازش توسط خط لوله پروکسی API، در یک بافر در حافظه نوشته می‌شوند. شما می‌توانید این رفتار را با فعال کردن جریان تغییر دهید. با فعال کردن جریان، بارهای درخواست و پاسخ بدون تغییر به برنامه کلاینت (برای پاسخ‌ها) و نقطه پایانی هدف (برای درخواست‌ها) جریان می‌یابند.

چه زمانی باید استریمینگ را فعال کنم؟

اگر پروکسی API شما درخواست‌ها و/یا پاسخ‌های بسیار بزرگی را مدیریت می‌کند (برای محدودیت‌های اندازه، به موارد دیگری که باید در مورد استریمینگ بدانم در زیر مراجعه کنید)، ممکن است بخواهید استریمینگ را فعال کنید.

چه چیز دیگری باید در مورد استریمینگ بدانم؟

اندازه بار پیام در Edge Cloud و Private Cloud، حتی با فعال بودن قابلیت پخش، به 10 مگابایت محدود شده است. در درخواست‌ها و پاسخ‌های غیر پخش، تجاوز از این اندازه منجر به خطای protocol.http.TooBigBody می‌شود.

در پیاده‌سازی‌های Edge برای ابر خصوصی، می‌توانید محدودیت اندازه درخواست/پاسخ غیر استریم‌شده را تغییر دهید. حتماً قبل از اعمال تغییر در محیط عملیاتی، آن را آزمایش کنید.

  • برای نسخه‌های Edge for Private Cloud قبل از ۴.۱۶.۰۱:

    در تمام پردازنده‌های پیام، فایل http.properties را ویرایش کنید تا محدودیت موجود در پارامتر HTTPResponse.body.buffer.limit افزایش یابد و سپس پردازنده پیام را مجدداً راه‌اندازی کنید.
  • برای Edge برای Private Cloud نسخه ۴.۱۶.۰۱ و بالاتر:
    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 راه‌اندازی مجدد

    4. این کار را برای همه پردازنده‌های پیام تکرار کنید.

نحوه فعال کردن جریان درخواست و پاسخ

برای فعال کردن استریمینگ درخواست، باید ویژگی request.streaming.enabled را به تعاریف ProxyEndpoint و TargetEndpoint در بسته پروکسی اضافه کنید و آن را روی true تنظیم کنید. به طور مشابه، ویژگی response.streaming.enabled را برای فعال کردن استریمینگ پاسخ تنظیم کنید.

می‌توانید این فایل‌های پیکربندی را در رابط کاربری مدیریت در نمای توسعه برای پروکسی خود پیدا کنید. اگر به صورت محلی در حال توسعه هستید، این فایل‌های تعریف در 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>

برای اطلاعات بیشتر در مورد پیکربندی تعاریف نقطه پایانی، به مرجع ویژگی‌های نقطه پایانی مراجعه کنید.

نمونه‌های کد مرتبط

نمونه‌های پروکسی API در GitHub به راحتی قابل دانلود و استفاده هستند. برای اطلاعات بیشتر در مورد دانلود و استفاده از نمونه‌ها ، به بخش «استفاده از نمونه پروکسی‌های API» مراجعه کنید.

نمونه پروکسی‌هایی که قابلیت پخش جریانی دارند عبارتند از:

  • streaming - یک پروکسی API پیکربندی شده برای پخش HTTP را نشان می‌دهد.
  • Edge Callout: تولیدکننده URL امضا شده - بهترین روش تولید URL امضا شده برای دسترسی به فایل‌های بزرگ به جای تلاش برای پخش آنها در یک درخواست/پاسخ را نشان می‌دهد.